Точность таймера

Тема в разделе "Микроконтроллеры AVR", создана пользователем ostrov, 14 июн 2017.

  1. ostrov

    ostrov Гуру

    Скорее из спортивного интереса, чем из желания увеличить срок жизни батарейки ЧРВ сделал часы на внутреннем таймере МК. Подопытным выступил UNO (оригинальный, когда то давно куплен в Амперке). Принцип такой: запускается таймер с тиком раз в секунду, в прерывании часы увеличивают значение на эту самую секунду. Понятное дело, что секунды складываются в минуты, те в часы и так по кругу. Инициализация таймера такая:
    Код (C++):
      TCCR1A = 0;           // сброс
      OCR1A = 0x3D08;       // 1s
      TCCR1B = 0b00001101;  // 1024
      TIMSK1 = 0b00000010;  // прерывание А*/
    Запустил поработать на двое суток. Внутренние часы отстали за это время от реальности на 21 секунду. То есть расхождение составило примерно 0,5 сек в час. Наверное внутренний кварц на таких долгих, с точки зрения МК, временных отрезках точен не идеально. Стало быть, чтобы поддерживать точность в пределах одной секунды, требуется синхронизировать таймер с ЧРВ (или другим внешним источником точного времени) примерно раз в два часа. Значит, что дергать ЧРВ можно не каждую секунду, а в 7200 раз реже. Гаджетостроителям на заметку.
     
  2. Tomasina

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

    Точность ещё от температуры плавает.
     
  3. Unixon

    Unixon Оракул Модератор

    На Uno керамика с точностью ~1000ppm против 20~30ppm у обычного кварца и 2-3ppm у лучших образцов.
     
  4. ostrov

    ostrov Гуру

    Разве у кварца тоже?
     
  5. ostrov

    ostrov Гуру

    Как отличить керамику от обычного кварца? Можно ли купить точный резонатор в принципе?
     
  6. Unixon

    Unixon Оракул Модератор

    Да. Обычно указывается точность в разных диапазонах температур, реже именно температурный коэффициент.
     
  7. rkit

    rkit Гуру

    Батарейка часов в принципе не должна потребляться, когда активно основное питание.
    Плюс в ардуино уже есть millis(). от которых можно отталкиваться, не гоняя лишний таймер.
    Сомнительная экономия, короче.
     
  8. Unixon

    Unixon Оракул Модератор

    Уже установленную - только по пересечению характеристик с каталогами, т.е. корпус, посадочное место, маркировка.
    Кварц - да, можно. Термокомпенсированные кварцы до единиц ppm или даже чуть лучше, не помню насколько, дальше только термостабилизированные и всякие стандарты частоты на других принципах..
     
  9. ostrov

    ostrov Гуру

    Батарейку высосало за 3 месяца при дергании ЧРВ каждую секунду. Такие же ЧРВ лежащие в тумбочке второй год практически не разрядились. Из чего делаю вывод, что она таки разряжается при запросах вне зависимости от внешнего питания.

    millis() не даст и такой точности, работы на МК довольно много, миллисекунды будут пропускаться мешками.
     
  10. Unixon

    Unixon Оракул Модератор

  11. Unixon

    Unixon Оракул Модератор

    ostrov нравится это.
  12. ostrov

    ostrov Гуру

  13. Unixon

    Unixon Оракул Модератор

  14. Unixon

    Unixon Оракул Модератор

    Ну, там довольно большой зоопарк в этом "Кварце"...
     
  15. ostrov

    ostrov Гуру

    У DS3231SN, насколько вижу 3,5ppm. Тоже неплохо.
     
  16. Unixon

    Unixon Оракул Модератор

  17. ostrov

    ostrov Гуру

    Ну перфекционизма пока что не требуется. ))
    Точности DS3231SN вполне хватает, для устройства будет достаточно синхронизироваться с ним раз в два часа, чтобы показания не уплыли за пределы допустимого. Раз в полгода можно и подвести на пару секунд.

    Кстати, попадались некачественные ЧРВ, обсуждали уже где то тут, маркировка чипа бледноватая на вид. Уплывали еще больше чем ардуиновский кварц.
     
  18. DetSimen

    DetSimen Guest

    у ds3231 есть термокомпенсация аптамушто
     
  19. koteika

    koteika Гик

    Точность кристалла кварца повышается со временем. Раньше на заводах делали запланированное старение кварца для резонаторов, для повышения точности. Сейчас.. Увы, кому нужно это?
     
  20. Onkel

    Onkel Гуру

    а сброс предделителя не забываете?