DS3231 — высокоточные часы реального времени (real-time clock, RTC) со встроенными I2C интерфейсом, термокомпенсированным кварцевым генератором (TCXO) и кварцевым резонатором. Прибор имеет вход для подключения резервного автономного источника питания, позволяющего осуществлять хронометрирование и измерение температуры даже при отключенном основном напряжении питания. Встроенный кварцевый резонатор повышает срок службы прибора и уменьшает необходимое количество внешних элементов. DS3231 доступен в модификациях с коммерчески и индустриальным рабочим температурным диапазоном и упакован в 300 mil 16 контактный SO корпус.
RTC обеспечивает отсчет секунд, минут, часов, дней недели, дней месяца и года. Дата конца месяца определяется автоматически с учетом високосного года. Часы реального времени работают в 24 или 12- часовом формате с индикацией текущей половины суток (AM/PM). Прибор имеет два ежедневных будильника и выход прямоугольного сигнала с программируемой частотой. Обмен данными с прибором ведется через встроенный последовательный I2C совместимый интерфейс.
Прецизионный термокомпенсированный источник опорного напряжения и схема сравнения отслеживают напряжение основного питания VCC и при его снижении ниже заданного порога формируют сигнал сброса и осуществляют перевод схемы на работу от резервного источника питания. Дополнительный вывод RST может использоваться для внешнего сброса.
Модуль ZS-042 на базе RTC DS3231N
Представляют из себя законченный модуль ZS-042, который можно подключать к различным устройствам, не только к платформе Arduino.
Модуль построен на микросхеме DS3231SN, которая по сути и является часами реального времени. В отличии от старой модели часов, например на микросхеме DS1307, эти часы содержат внутренний кварцевый резонатор, благодаря чему часы имеют точный ход.
Принципиальная схема
Расположение и назначение пинов на модуле ZS-042
Вывод | Описание |
---|---|
32К | Выход, частота 32 кГц |
SQW | Программируемый выход Square-Wave сигнала |
SCL | Линия тактирования (Serial CLock) |
SDA | Линия данных (Serial Data) |
VCC | Питание модуля |
GND | Земля |
Описание ATMEL AT24C32N
AT24C32N — это EEPROM память на 32к от производителя Atmel, собранная в корпусе SOIC8, работающая по двухпроводной шине I2C. Адрес микросхемы 0x57, при необходимости легко меняется, с помощью перемычек A0, A1 и A2 (это позволяет увеличить количество подключенных микросхем AT24C32/64). Так как чип AT24C32N имеет, три адресных входа (A0, A1 и A2), которые могут находится в двух состояния, либо лог «1» или лог «0», микросхеме доступны восемь адресов. от 0x50 до 0x57.
Отличительные особенности DS3231
- Точность ±2 ppm в диапазоне температур от 0°C до +40°C
- Точность ±3.5 ppm в диапазоне температур от-40°C до +85°C
- Вход для подключения автономного источника питания, позволяющего обеспечить непрерывную работу
- Рабочий температурный диапазонкоммерческий: от 0°C до +70°C
- индустриальный: -от 40°C до +85°C
- Низкое потребление
- Часы реального времени, отсчитывающие секунды, минуты, часы, дни недели, дни месяца, месяц и год с коррекцией високосного года вплоть до 2100
- Два ежедневных будильника
- Выход прямоугольного сигнала с программируемой частотой
- Быстродействующие (400 кГц) I2C интерфейс
- 3.3 В питание
- Цифровой температурный датчик с точностью измерения ±3°C
- Регистр, содержащий данные о необходимой подстройке
- Вход/выход сброса nonRST
Режимы электропитания
Напряжение питания микросхемы может находиться в пределах 2.3…5.5В, имеются две линии питания, для внешнего источника (линия Vcc), а также для батареи (Vbat). Напряжение внешнего источника постоянно отслеживается, при падении ниже порога Vpf=2,5В, происходит переключение на линию батареи. В следующей таблице представлены условия переключения между линиями питания:
Комбинации уровней напряжения | Активная линия питания |
---|---|
Vcc < Vpf, Vcc < Vbat | Vbat |
Vcc < Vpf, Vcc > Vbat | Vcc |
Vcc > Vpf, Vcc < Vbat | Vcc |
Vcc > Vpf, Vcc > Vbat | Vcc |
Точность хода часов поддерживается за счет отслеживания температуры окружающей среды. В микросхеме запускается внутренняя процедура корректировки частоты тактового генератора, величина корректировки определяется по специальному графику зависимости частоты от температуры. Процедура запускается после подачи питания, а затем выполняется каждые 64 секунды.
В целях сохранения заряда, при подключении батареи (подача напряжения на линию Vbat), тактовый генератор не запускается до тех пор, пока напряжение на линии Vcc не превысит пороговое значение Vpf, или не будет передан корректный адрес микросхемы по интерфейсу I2C. Время запуска тактового генератора составляет менее одной секунды. Примерно через 2 секунды после подачи питания (Vcc), или получения адреса по интерфейсу I2C, запускается процедура коррекции частоты. После того как тактовый генератор запустился, он продолжает функционировать до тех пор, пока присутствует напряжение Vcc или Vbat. При первом включении регистры даты и времени сброшены, и имеют следующие значения 01/01/ 00 — 01 — 00/00/00 (день/месяц/год/ — день недели — час/минуты/секунды).
Ток потребления при питании от батареи напряжением 3.63В, составляет 3 мкА, при отсутствии передачи данных по интерфейсу I2C. Максимальный ток потребления может достигать 300 мкА, в случае использования внешнего источника питания напряжением 5.5В, и высокой скорости передачи данных I2C.
Функция внешнего сброса
Линия RST может использоваться для внешнего сброса, а также обладает функцией оповещения о низком уровне напряжения. Линия подтянута к высокому логическому уровню через внутренний резистор, внешняя подтяжка не требуется. Для использования функции внешнего сброса, между линией RST и общим проводом можно подключить кнопку, в микросхеме реализована защита от дребезга контактов. Функция оповещения активируется при снижении напряжения питания Vcc ниже порогового значения Vpf, при этом на линии RST устанавливается низкий логический уровень.
Описание регистров DS3231
Ниже в таблице представлен перечень регистров часов реального времени:
Адрес | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | Функция | Пределы |
---|---|---|---|---|---|---|---|---|---|---|
0x00 | 0 | 10 секунд | Секунды | Секунды | 00-59 | |||||
0x01 | 0 | 10 минут | Минуты | Минуты | 00-59 | |||||
0x02 | 0 | 12/24 | AM/PM | 10 часов | Час | Часы | 1-12 + AM/PM или 00-23 | |||
10 часов | ||||||||||
0x03 | 0 | 0 | 0 | 0 | 0 | День | День недели | 1-7 | ||
0x04 | 0 | 0 | 10 число | Число | Дата | 01-31 | ||||
0x05 | Century | 0 | 0 | 10 месяц | Месяц | Месяцы/век | 01-12 + Век | |||
0x06 | 10 лет | Год | Годы | 00-99 | ||||||
0x07 | A1M1 | 10 секунд | Секунды | Секунды, 1-й будильник | 00-59 | |||||
0x08 | A1M2 | 10 минут | Минуты | Минуты, 1-й будильник | 00-59 | |||||
0x09 | A1M3 | 12/24 | AM/PM | 10 часов | Час | Часы, 1-й будильник | 1-12 + AM/PM или 00-23 | |||
10 часов | ||||||||||
0x0A | A1M4 | DY/DT | 10 число | День | День недели, 1-й будильник | 1-7 | ||||
Число | Дата, 1-й будильник | 01-31 | ||||||||
0x0B | A2M2 | 10 минут | Минуты | Минуты, 2-й будильник | 00-59 | |||||
0x0C | A2M3 | 12/24 | AM/PM | 10 часов | Час | Часы, 2-й будильник | 1-12 + AM/PM или 00-23 | |||
10 часов | ||||||||||
0x0D | A2M4 | DY/DT | 10 число | День | День недели, 2-й будильник | 1-7 | ||||
Число | Дата, 2-й будильник | 01-31 | ||||||||
0x0E | EOSC | BBSQW | CONV | RS2 | RS1 | INTCN | A2IE | A1IE | Регистр настроек (Control) | |
0x0F | OSF | 0 | 0 | 0 | EN32kHz | BSY | A2F | A1F | Регистр статуса (Status) | |
0x10 | SIGN | DATA | DATA | DATA | DATA | DATA | DATA | DATA | Регистр подстройки частоты (Aging Offset) | |
0x11 | SIGN | DATA | DATA | DATA | DATA | DATA | DATA | DATA | Регистр температуры, старший байт | |
0x12 | DATA | DATA | 0 | 0 | 0 | 0 | 0 | 0 | Регистр температуры, младший байт |
Информация о времени хранится в двоично-десятичном формате, то есть каждый разряд десятичного числа (от 0 до 9) представляется группой из 4-х бит. В случае одного байта, младший полубайт отсчитывает единицы, старший десятки и т. д. Счет времени осуществляется в регистрах с адресами 0x00-0x06, для отсчета часов можно выбрать режим 12-ти или 24-х часов. Установка 6-го бита регистра часов (адрес 0x02), задает 12-ти часовой режим, в котором 5-й бит указывает на время суток, значению 1 соответствует время после полудня (PM), значению 0 до полудня (AM). Нулевое значение 6-го бита соответствует 24-х часовому режиму, здесь 5-й бит участвует в счете часов (значения 20-23).
Регистр дня недели увеличивается в полночь, счет идет от 1 до 7, регистр месяцев (адрес 0x05) содержит бит века Century (7-й бит), который переключается при переполнении регистра счета лет (адрес 0x06), от 99 к 00.
В микросхеме DS3231 реализовано два будильника, 1-й будильник настраивается с помощью регистров с адресами 0x07-0x0A, 2-й будильник регистрами 0x0B-0x0D. Битами A1Mx и A2Mx можно настроить различные режимы для будильников, установка бита исключает соответствующий регистр из операции сравнения.
Типовая схема включения DS3231
Расположение выводов DS3231
№ | Имя | Функция |
---|---|---|
1 | 32kHz | Выход частоты 32768 Гц. Это выход с открытым стоком, который требует наличия внешнего верхнего подтягивающего резистора (pullup). Выход работает от любого имеющегося источника питания. Если не используется, то может оставаться не подключенным. |
2 | VCC | Основной источник питания. Этот вывод должен иметь подключенный развязывающий конденсатор емкостью 0.1..1.0 мкф. Если не используется, то подключается к земле (GND). |
3 | ~INT/SQW | Сигнал прерывания с активным низким уровнем, или выход частоты прямоугольного сигнала. Это выход с открытым стоком, который требует наличия внешнего верхнего подтягивающего резистора (pullup), подключенного к напряжению питания 5.5V или меньше. Режим работы этой ножки определяется битом INTCN регистра управления (Control Register, адрес 0Eh), и выводимая частота зависит от битов RS2 и RS1. Если вывод ~INT/SQW не используется, то может оставаться не подключенным. |
4 | ~RST | Сброс с активным уровнем лог. 0. Этот вывод имеет открытый сток, и работает как вход и как выход. Уровень показывает соответствие напряжения питания VCC допустимому пределу VPF. Как только VCC упадет ниже VPF, на выводе ~RST появится лог. 0. Когда VCC превысит VPF, то через интервал tRST на выводе ~RST с помощью pullup резистора появится уровень лог. 1. С активным уровнем лог. 0 выход с открытым стоком скомбинирован с функцией входа, подавляющей дребезг контактов кнопки. Этот вывод может быть активирован запросом сброса, выданным с помощью внешней кнопки. Вывод ~RST имеет внутренний pullup резистор номиналом 50 кОм, подключенный к VCC. Внешний подтягивающий резистор подключаться не должен. Если генератор запрещен, то интервал времени tREC пропускается, и уровень ~RST немедленно перейдет к лог. 1. |
5..12 | N.C. | Нет соединения. Эти выводы должны быть подключены к земле (GND). |
13 | GND | Земля, общий провод для напряжений питания и всех сигналов. |
14 | VBAT | Вход для подключения резервного источника питания (обычно это литиевая батарейка на 3V). Если вывод VBAT используется как основной источник питания, то он должен иметь подключенный развязывающий конденсатор емкостью 0.1..1.0 мкф, имеющий малый ток утечки. Когда в VBAT используется как резервный источник питания, то этот конденсатор не нужен. Если VBAT не используется, то подключите его к земле (GND). |
15 | SDA | Данные интерфейса I2C. Выход вывода имеет открытый сток, поэтому необходим внешний верхний подтягивающий резистор (pullup). Подтягивающее напряжение может иметь уровень до 5.5V, независимо от уровня напряжения питания VCC. |
16 | SCL | Такты интерфейса I2C. Напряжение на входе SCL может иметь уровень до 5.5V, независимо от уровня напряжения питания VCC. |
Блок-диаграмма микросхемы DS3231
Материалы
datasheet_ds3231.pdf
datasheet_AT24C32.pdf
DS3231_высокоточная микросхема RTC
DS3231_подключение часов реального времени