RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/radiofan/measuring_technics/chronometer.html

Хронометр

Предлагаемая вниманию читателей конструкция представляет собой высокоточный прибор для измерения времени, иначе говоря - хронометр, выполненный в габаритах наручных часов с автономным питанием. Он содержит сравнительно небольшое число общедоступных компонентов. Печатные платы изготовлены в домашних условиях.

Чтобы вписаться в габариты наручных часов, компоненты хронометра размещены на двух печатных платах. На нижней плате, схема которой изображена на рис. 1, находятся микросхема прецизионных часов реального времени DS3231M+ (DD1) и микроконтроллер ATtiny2313A-SU (DD2). Микроконтроллер тактирован от внутреннего RC-генератора, что освободило его выводы PA0 и Pa1 для связи с часовой микросхемой по интерфейсу I2C.

Микросхема прецизионных часов

Рис. 1. Микросхема прецизионных часов

 

Порт B микроконтроллера управляет элементами цифр, изображаемых светодиодным индикатором, а к выводам порта D подключены аноды разрядов индикатора и кнопки управления. Хронометр питают от одного литиевого элемента CR2032 напряжением 3 В. На микросхему DD1 основное напряжение питания поступает с вывода PD0 микроконтроллера, а резервное (Vb) - через диод Шотки VD1 от литиевого элемента. Этим обеспечен переход микросхемы DD1 в режим с малым потреблением тока при работе микроконтроллера DD2 в "спящем" режиме.

Резистор R4 защищает выход PD0 от возможного замыкания на общий провод при нажатии наподключённую к нему же кнопку, находящуюся надругой плате.

Чертёж нижней печатной платы изображён на рис. 2. Она рассчитана на установку элементов для поверхностного монтажа - резисторов и конденсаторов типоразмера 1206, микросхем в корпусах SOIC. На плате предусмотрены контакты для связи микроконтроллера с программатором.

Чертёж нижней печатной платы

Рис. 2. Чертёж нижней печатной платы

 

Схема верхней платы показана на рис. 3. На ней расположены четырёхразрядный светодиодный индикатор HG1, элемент питания G1 и кнопки SB1-SB3. Чертёж платы - на рис. 4. Резисторы на ней - типоразмера 0805. Элемент питания помещён в держатель CH224-2032.

Схема верхней платы

Рис. 3. Схема верхней платы

 

Чертёж платы

Рис. 4. Чертёж платы

 

Платы изготовлены из фольгированного с двух сторон стеклотекстолита толщиной 1 мм. После изготовления необходимо тщательно проверить печатные проводники на обрыв и замыкание. Межплатные перемычки впаивают в нижнюю плату после монтажа деталей. Учитывая высокую плотность монтажа и малую ширину проводников, перед соединением плат между собой обязательно следует ещё раз убедиться в отсутствии на них обрывов и замыканий. Между платами должна быть вставлена изолирующая прокладка из тонкого плотного картона.

После включения питания программа переводит микроконтроллер в режим микропотребления и отключает основное питание часовой микросхемы. В отсутствие основного питания эта микросхема также переходит в экономичный режим. "Просыпается" микроконтроллер по внешним запросам прерываний. По прерыванию INT0 от кнопки SB1 начинается вывод текущего времени на индикатор, по прерыванию INT1 от кнопки SB2 - установка времени. В режиме установки времени нажатия на кнопкуSB1 изменяют содержимое регистра часов, а на кнопку SB2 - содержимое регистра минут. Изменение возможно только в сторону увеличения.

Из режима установки времени выходят нажатием на кнопку SB3. При выходе программа обнуляет регистр секунд часовой микросхемы. Для работы этой кнопки программа в режиме установки времени переключает линию PD0 с вывода на ввод и обратно.

Индикатором HG1 программа управляет с помощью восьмиразрядного таймера T0. По запросам прерывания от таймера информация выводится на индикатор, одновременно идёт подсчёт времени работы индикатора. Максимальная продолжительность его непрерывной работы задана константой TimeDisp и по умолчанию равна 4,7 с. Отсчёт времени работы индикатора (показа текущего времени) начинается с момента нажатия на кнопку SB1.

Для удобства проверки хода часов в программе может быть активирован фрагмент, позволяющий включать и выключать индикатор кнопкой SB1. Для этого достаточно в начале файла исходного текста программы Chronometer1 .asm раскомментировать (удалить символ точки с запятой в первой позиции) строку

;#define No_time_limit_for_dispiay

После проверки часов эту строку необходимо закомментировать вновь, так как случайное длительное включение индикатора приводит к быстрой разрядке элемента питания. К статье приложены два варианта загрузочного файла программы. При создании одного (Chronometer1 .hex) указанная строка была закомментирована, а при создании другого (Chronometer1NoUmit.hex) она действовала.

Мигание разделительного двоеточия реализовано программно. Предусмотрено также гашение незначащего нуля в разряде десятков часов. В режиме установки времени ограничение по продолжительности работы индикатора отсутствует, двоеточие выключено.

Интерфейс I2C работает на частоте 100 кГц, его программная реализация взята из книги В. Трамперта "AVR-RISC микроконтроллеры" (Киев: МК-Пресс, 2006). Таблица коммутации разрядов индикатора и таблица кодов цифр находятся в программной памяти микроконтроллера.

В микросхеме DS3231M+ предусмотрена коррекция ухода частоты кварцевого резонатора по мере его старения. Поправка хранится в регистре компенсации старения (Aging Offset Register) микросхемы. В программе хронометра такая коррекция не предусмотрена, а в упомянутый регистр записан 0 (константа SIGN=0). При необходимости можно изменить эту константу. Если часы спешат, ей должно быть присвоено положительное значение (старший двоичный разряд равен нулю), если отстают - отрицательное значение (старший двоичный разряд равен единице). Единица младшего 

разряда константы изменяет частоту кварцевого генератора часов приблизительно на 0,1 ppm. После изменения константы следует повторно транслировать программу и загрузить полученный HEX-файл в микроконтроллер.

Конфигурация микроконтроллера ATtiny2313A-sU должна соответствовать таблице. Расширенный байт конфигурации остаётся неизменным.

Таблица

Старший байт

Младший байт

Разряд

Знач.

Разряд

Знач.

DWEN

1

CKDIV8

0

EESAVE

1

CKOUT

1

SPIEN

0

SLJT1

1

WDTON

1

SUT0

0

BODLEVEL2

1

CKSEL3

0

BODLEVEL1

1

CKSEL2

1

BODLEVELO

1

CKSEL1

0

RSTDISBL

1

CKSEL0

0

Изготовленный хронометр при включённом индикаторе и напряжении питания 3 В потребляет средний ток 5 мА, в "спящем" режиме - 1 мкА. Температурная коррекция частоты генератора производится каждые 64 с, длительность процесса измерения температуры - 125...200 мс, потребляемый ток в это время - 575 мкА. За год выполняется 492750 измерений температуры и коррекций частоты, на что расходуется около 16 мА·ч электроэнергии. При ёмкости элемента питания 200 мА·ч его хватит для работы хронометра как минимум в течение двух лет.

После сборки хронометр необходимо подключить к программатору, загрузить в микроконтроллер программу и установить его конфигурацию. После отключения программатора и подключения элемента питания можно нажать на кнопку SB1, на индикатор будет выведено "_0:00" с мигающим двоеточием. Нажав на кнопку SB2, войдите в режим установки времени. Затем нажатиями на кнопку SB1 установите текущий час, а на кнопку SB2 - текущую минуту. Выйдите из режима установки времени, нажав на кнопку SB3. При этом внутренний регистр секунд микросхемы DD1 будет обнулён, что позволяет синхронизировать хронометр с контрольными часами или сигналами точного времени. Снова нажав на кнопку SB1, увидите на индикаторе установленное время.

Для проверки точности хода хронометра придётся запастись терпением минимум на месяц. За это время его показания не должны уйти более чем на 3 с. В противном случае можно изменить значение в регистре Aging Offset Register. Как это сделать, рассказано выше.

Проверку точности хода хронометра можно произвести и с помощью точного частотомера, выход частоты 32768 Гц в микросхеме программно активирован. Для измерения частоты между контактами "32768 Гц" и "17" на плате микроконтроллера необходимо временно подключить резистор номиналом 10 кОм, а между контактами "32768 Гц" и "16" - частотомер. Во время проверки для питания хронометра можно использовать два элемента типоразмера АА. Следует также измерить потребляемый ток в разных режимах работы и проверить работу температурной коррекции частоты, при её нормальной работе подключённый последовательно с источником питания микроамперметр покажет броски потребляемого тока с периодом 64 с.

Программы микроконтроллера можно скачать здесь.

Автор: Н. Салимов, г. Ревда Свердловской обл.