Страница 2 из 2

Часы DS1302 сильно отстают

Добавлено: 25 май 2020, 13:24
AlexRyg
Alias писал(а): 25 май 2020, 11:33 Я имел в виду то, что блок вывода на экран можно вынести на отдельную плату
Я понял. Я так тоже делал.

Часы DS1302 сильно отстают

Добавлено: 25 май 2020, 14:30
Alias
av писал(а): 25 май 2020, 14:02 Вот в этот момент потери и происходят
Я не программист, но очень любопытен до хотя бы поверхностного понимания сути вещей. Как мне кажется, задержка работы по шине конечно же может приводить к устаревшим получаемым данным с часов, но, как я понял, речь идет о набегающей, накапливающейся ошибке, то есть проблема не в задержке ответа RTC, а отставании времени в них. Разве часы не живут своей жизнью, передавая запрашиваемые значений через регистры в изолированном шлюзе?

Часы DS1302 сильно отстают

Добавлено: 25 май 2020, 17:59
seri0shka
max38 писал(а): 23 май 2020, 13:36 Столкнулся с той же проблемой в своей "звонилке"...
Меня интересует "звонилка", если это то , о чём я подумал.

Часы DS1302 сильно отстают

Добавлено: 25 май 2020, 19:33
AlexRyg
av писал(а): 25 май 2020, 15:27 Явно есть связь между тем что когда шина занята модуль часов тормозит
Да связь явно есть, и это считаю недостаток огромный. Считаю смысл модуля в том, чтоб получать реальное время, нее зависимо от сложности кода программы.
И то, что модуль стал корректно работать после использования текстовой библиотеки для дисплея... Звучит как бред, но получается текстовая библиотека более лояльна к модулю и дает ему выполнять свою работу корректно и вовремя

Часы DS1302 сильно отстают

Добавлено: 25 май 2020, 20:19
Labu559
av писал(а): 25 май 2020, 14:02 Специфика шины I2C как раз тормозит работу ведомого
DS1302 использует интерфейс 3Ware, который больше похож на интерфейс SPI (см.Datasheet ниже).
av писал(а): 25 май 2020, 15:27 А схема формирующая запись в регистр секунд ожидает разрешения записи
Я тоже так предполагаю, хотя для DS1307 или DS3231, при появлении сигнала старт, что-бы сравнительно медленная передача данных по шине I2C не мешала обновлению регистров времени, данные копируются в буфер, и от-туда считываются в шину. Но вполне возможно что опрос 4 раза в секунду "слегка" избыточен о чем писал в теме по указаной ссылке под спойлером ниже, или в сообщении №13 здесь. [spoiler title=В DS1302 похоже буфера нет,]
DS1302.png
[/spoiler] что явно должно усугублять проблему обновления регистров одновременной двойной попыткой доступа. Эта версия подходит для отставания, но если спешат как в теме ниже? Короче это другая тема, кому интересно,- заходите.
AlexRyg писал(а): 23 май 2020, 12:41Этот модуль подключается к I2C (пин 20 и 21), но они заняты дисплеем OLED I2C 0,96″. Можно было бы заморочиться и подключить параллельно. Но будет ли толк? Или тоже будет отставать из-за работы программы?
По поводу применения DS1307 или DS3231 с I2C: Устройства I2C имеют адресацию, или можно применить софтовый I2C (Bit-banging или т.н. "ногодрыг" ) на любых цифровых выводах Ардуино, но...
[spoiler title= Проблема с нарушением точности хода часов], если хотите верить сообщениям от сюда возникает и на DS1307 и на DS3231, при чем с дисплеем HD44780 (2004 /1602) c паралельным подключением (не I2C). Потому я дал ссылку на похожую тему, где в сообщении №26, ТС утверждает следующее: "...получатся, что вывод информации на дисплей как-то влияет на работу с модулем времени...". Более месяца пытался собрать собственную статистику, но столкнулся с самопроизвольным сбросом всех регистров 1-го модуля DS3231 и 2-х модулей DS1307 в результате обнаружил непостоянное замыкание минусового контакта держателя батареи на шину I2C, которое совершенно не влияет на работу модулей от батареи (когда не задействуется I2C). Я не смог получить существенное отличие хода часов с дисплеем и без дисплея, зато точно могу утверждать, что есть незначительное влияние на точность хода частота опроса модулей. Это же подтвердил ТС в указанной теме. [/spoiler]