Дисплей tm1637 и rtc ds3231 на одной шине i2c не работают :(

Тема в разделе "Arduino & Shields", создана пользователем Tomasina, 14 окт 2020.

Метки:
  1. Tomasina

    Tomasina Сушитель лампочек Модератор

    Собственно, если они оба на одной шине, то при обращении к RTC на дисплее портится вывод цифр в одном из знакомест, и текущее время не выдается.

    По отдельности (второй физически отключить) все работает нормально.

    И обнаружилось это уже после изготовления платы :(

    Свободный пин на МК остался только один, поэтому вопросик таков - какую линию из SDA/SCL можно безболезненно использовать как общую и для индикатора, и для RTC, чтобы оба устройства работали корректно?
     
    Последнее редактирование: 14 окт 2020
  2. Nekto_nikto

    Nekto_nikto Гик

    Я думаю раз у вас портится вывод цифр в одном месте на дисплее, но дисплей работает, то это говорит о том, что идут помехи, в порядке бреда могу предложить подключать вашу периферию к SCL через диоды, т.к. если часы реального времени генерируют помехи там, то диоды думаю смогут это исправить, т.к. тактирующий сигнал то задает мастер. Но это только предположение.

    Плюс как я понимаю у вас и индикатор и RTC питаются от платы МК, если так, то просто попробуйте запитать их отдельно, возможно просто не хватает энергии или МК или индикатору.
     
    Последнее редактирование: 14 окт 2020
  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    Там получаются не помехи, а то, что ответ от RTC вносит дополнительные данные в протокол обмена TM1637 и искажает количество передаваемых байт.
    Хотя такие искажения тоже можно считать помехами. :D
     
  4. Nekto_nikto

    Nekto_nikto Гик

    Ну тогда исходя из того что свободный пин остался всего 1, то вам думаю нужно юзать программный I2C, на 2 линии, да так чтоб у этих линий был общий пин SCL, и назначены разные пины SDA, т.к. по SCL тупо идет тактирование, что там ч то там, а по SDA и мастер и слэйв кидают друг другу данные. Так получится что они друг другу шину данных забивать не будут, т.к. они у них будут разные. Но это не точно.
     
  5. Tomasina

    Tomasina Сушитель лампочек Модератор

    Уже нашел решение - два входных канала перекинул на A6 и A7 (они могут только как аналоговые входы работать), а освободившиеся пины занял дисплеем.
    Всё работает.
     
  6. akl

    akl Гуру

    в порядке бреда например можно использовать буферный элемент с ногой енабле типа такого
    https://static.chipdip.ru/lib/233/DOC005233711.pdf
    через него на экранчик подавать одну из линий (или даже обе если взять больше элементов), а свободной ногой управлять енабледом

    Но я не очень понял - в чем собственно причина такого эффекта? у экрана адрес совпадает с часами? или какие-то команды он принимает на свой счет?
     
  7. parovoZZ

    parovoZZ Гуру

    проще полевичок поставить.
     
    akl нравится это.
  8. Un_ka

    Un_ka Гик

    Что за МК, у которого пины подключённые к АЦП, как I/O не работают?
     
  9. issaom

    issaom Гуру

    ATmega328P который ставят в Arduino Nano - вопрос почему нельзя помигать светодиодом подключенным к пинам A6, A7 периодически возникает на разных форумах.....
    Nano.JPG
     
    Un_ka нравится это.
  10. parovoZZ

    parovoZZ Гуру

    У старой 328 AtMega так)) У модернизированной AtMega328PB это выводы порта E PE3 и PE2.
    Не знаю как делают ардуинщики, я черчу схему в обнимку с даташитом. И ещё обязательно в файле с программой разрисовываю все выводы, чтобы при написании программы не переключаться туда-сюда.
     
  11. issaom

    issaom Гуру

    Арудуинщики обычно пользуются схемой распиновки, на которой все и так понятно без обнимашек с даташитом.
    Nano1.JPG
     
    vvr нравится это.
  12. parovoZZ

    parovoZZ Гуру

    я, как профессионал, пользуюсь даташитом
    328.png
     
  13. Igor68

    Igor68 Гуру

    Конечно простите за вмешательство. Сразу говорю - прощу прощения! Похоже тут уже не I2C я что-то другое. Помню и радиоканал, и модуль цветности, и телетекст, и коррекция растра, и две МС памяти... и даже модуль управления (клавиатура + IR приёмник) спокойно висели на одной I2C (телевизор САДКО 7000 серии и еще "Витязи" и "Горизонты", из пятёрок и шестёрок). А тут точно I2C или просто физический уровень для I2C? Насколько помню каждое устройство откликается только на свой адрес. Знаю только SPI требует CS.
    Простите! Похоже тут уже I2C совсем не I2C, а только одно воспоминание.
    Простите!
     
  14. Un_ka

    Un_ka Гик

    В советских телевизорах i2c?!
    Или
     
  15. Igor68

    Igor68 Гуру

    Это были уже не советские (90-е годы... точнее 1996г). "Садко 7000" я понимаю так седьмого поколения (с полной цифровой обработкой сигнала на основе ITT), а "Горизонт" и "Витязь" Белорусские - пятого и шестого поколений. С аналоговой обработкой. "Садко" не имел моточных изделий, кроме строчной и кадровой развертки... ну ещё в радиоканале и блоке питания. Даже в кассете обработки сигнала (видео + аудио + телетекст + память + коррекция геометрии). Умел стоп-кадр. Сейчас в соседней комнате стоит как реликвия... прошивает ТДКС при тёмном кадре ( на ярком нормально). Кинескоп 63 см по диагонали. На пульте кнопка "?" при нажатии на которую выводит Российский флаг и реквизиты предприятия. Меню как на современных ТВ сверху экрана типа "Изображение", "Звук", "Настройки" и прочее.
    Если на пульте нажать кнопку "сервис" и одноимённую на кассете обработки сигналов то телек переходит в сервисный режим (коррекция растра, динамический и статический цвет по каждому из лучей(RGB) и прочее). Имеется и эквалайзер на 8 каналов, телетекст на 128 страниц... ну и всякая мелочь, только "кадр в кадре" нет.
     
    Последнее редактирование: 16 окт 2020
    SOLOway и Andrey12 нравится это.
  16. vvr

    vvr Инженерище

    дык все уже знают, окромя тебя - профессионала, что это любительский форум.
    для профессионалов есть свои профессиональные...
     
    Feofan и SergeiL нравится это.