Дисплей tm1637 и rtc ds3231 на одной шине i2c не работают :(
- Войдите на сайт для отправки комментариев
Ср, 14/10/2020 - 20:57
Собственно, если они оба на одной шине, то при обращении к RTC на дисплее портится вывод цифр в одном из знакомест, и текущее время не выдается.
По отдельности (второй физически отключить) все работает нормально.
И обнаружилось это уже после изготовления платы
Свободный пин на МК остался только один, поэтому вопросик таков - какую линию из SDA/SCL можно безболезненно использовать как общую и для индикатора, и для RTC, чтобы оба устройства работали корректно?
Подпишусь
Да.
Им выдумывают всякие Ардуино, макетки и проводки дюпонт, а у них все равно сначала "плата уже изготовлена" , а потом "не работают совместно два устройства".
По делу:
Можно с платы убрать какой нить "светодиод индикации", который маловероятно, что на самом деле нужен, а есть почти всегда.
Томасина, Ваш аккаунт взломали?
Не понял вопрос про освобождения одного из пинов SCL SDA - если дисплей и RTC работают по I2c, то перенести его на другие пины не получится
Не понял вопрос про освобождения одного из пинов SCL SDA - если дисплей и RTC работают по I2c, то перенести его на другие пины не получится
Для TM1637 I2C аппаратный нафиг не нужен, как в прочем и для RTC.
В общем думаю и проблема то вся в этом и заключается.
Подключили к iic , а используют библиотеки, которым он не требуется
Не работают, в том и суть.
Купился на описание на многих сайтах, что TM1637 упоминается совместно с I2C.
Как оказалось, там близкие, но разные протоколы и на одной шине мешают друг другу:
"TM1637 не работает, если единица реализуется через подтягивающие резисторы, как в I2C. Подаёшь нормальную единицу с выхода МК – работают все. Да и заливка данных с другого конца байта идёт. "
Уже нашел решение - два входных канала перекинул на A6 и A7, а освободившиеся пины занял дисплеем.
Tomasina, рекомендую. На одних и тех же проводах тоже не заведётся, канеш, но удобнее (надеюсь).
Спасибо, но у меня шестизнаковый индикатор, там слишком много переделать придется.
поменяй в *.h файле на 6
А потести на своём, интересно жеж :)
А потести на своём, интересно жеж :)
ыыы, не все так просто, там местные приколы входят в комплект. Не знаю чем руководствовались китайцы при разводке платы, но если на вывод отправить 123456, то на индикаторе будет 456123. В ихней библиотеке перестановка в массиве уже реализована.
нихрена себе. Тогда да, я такого себе даже прецтавить не мог, когда писал биб-ку. Надо заказать тогда модули на 6-8 цыфр, пащюпать. :)
Придётся добавить метод, типа setCommon(table);)