Сбивается время на RTC DS1307

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Mr. DeWitt, 2 фев 2019.

  1. Mr. DeWitt

    Mr. DeWitt Нуб

    Всем доброго времени суток.
    Собирал электронные часы на Arduino UNO с использованием RTC-модуля на DS1307; для отображения даты/времени использован 4-разрядный семисегментный индикатор KEM-5645AB (ОК, соединение через токоограничивающие резисторы по 5.1 кОм. Опрос RTC-модуля производится с периодичностью ~1000 мс (за вычетом времени отображения цифр на экране). В первый день эксплуатации столкнулся со следующей проблемой: изначально схема работает исправно (время исправной работы может доходить до ~40 минут). В неопределенный момент времени индикатор гаснет (в т.ч. и двоеточие, как будто выполнение программы полностью останавливается, т.к. информация должна выводиться на экран в каждой итерации void loop). Работа восстанавливается лишь после перезагрузки Arduino, однако счет времени сбивается (индикатор показывает ерунду: ЧЧ = 52, ММ = 35), для восстановления работы часов необходима повторная настройка через порт.
    Причина прекращения работы неясна. Может возникать без явной причины или при прикосновении к плате RTC-модуля (хотя все входы изолированы, батарейка не люфтит, обрывов в подключении к плате визуально не наблюдается). Более того, замечена большая ошибка в счете времени (~30-60 сек вперед за 2 суток) при том, что батарейка новая и ранее не эксплуатировалась (CR2032, фирма-производитель SONY).
    Скетчи для отображения времени и настройки/проверки часов прилагаются. Схема подключения индикатора аналогична представленной по ссылке http://codius.ru/articles/Arduino_UNO_4разрядный_7сегментный_идикатор_12_pin_3641BS_red (с точностью до полярности). В чем может заключаться проблема?
    Каковы шансы купить бракованный RTC-модуль или повредить его при установке батарейки?
    Заранее благодарен
     

    Вложения:

  2. Tomasina

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

    Замените кварц на DS1307 (ставят самый дешевый), а лучше замените RTC на DS3231.
     
    Mr. DeWitt нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    А какой нормальный?
     
  4. Tomasina

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

    На кварцах очень малые токи, любая грязь, несмытый флюс будут их тупить.
    "Двуногий" кварц паяется максимально близко к выводам микросхемы, причем обязательно с конденсаторами, посаженными на землю. Дорожка земли на эти конденсаторы должна быть отдельной, на нее ничего нельзя цеплять. Конденсаторы выбираются в районе 20 пик, одинаковые должны быть. Точность будет зависеть от них и от кварца. Кварцы разной точности бывают - чем меньше число ppm, тем лучше.
    В итоге стоимость доработок превысит стоимость DS3231, где все это уже встроено в корпус.
    [​IMG]
     
    ostrov и Mr. DeWitt нравится это.
  5. Mr. DeWitt

    Mr. DeWitt Нуб

    Учитывая высокую чувствительность RTC к малым токам, есть ли риск внесения погрешности в подсчет времени при частом (>1 Гц) опросе модуля по I2C?
     
  6. DetSimen

    DetSimen Guest

    Частый, это < 1Гц