Администрирование Железо DS3231: высокоточная микросхема RTC Sun, October 13 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

DS3231: высокоточная микросхема RTC Печать
Добавил(а) microsin   

DS3231 это недорогая микросхема часов реального времени (real-time clock, RTC) с интерфейсом I2C (который иногда называют двухпроводным интерфейсом, Two-Wite Intertface, TWI). Для микросхемы не нужен внешний кварцевый резонатор, и несмотря на это она имеет очень высокую точность входа часов благодаря встроенному термокомпенсированному кварцевому генератору (TCXO). У микросхемы есть вход для подключения батарейки, и благодаря питанию от батареи поддерживается точный отсчет времени даже когда питание системы отключается. Интеграция кварцевого резонатора в корпус микросхемы не только улучшает долговременную стабильность точности хода часов, но и удешевляет производство конечных устройств. Микросхема DS3231 доступна в коммерческом и индустриальном вариантах исполнения (они определяют допустимый рабочий диапазон температур), и предоставляется в 16-выводном корпусе SO с шириной 300 mil.

Микросхема RTC DS3231 отсчитывает секунды, минуты, часы, день недели, даты месяца, месяцы, годы. Дата по окончании месяца автоматически подстраивается для месяцев, у которых дней меньше 31, включая учет февраля и коррекцию дней для високосного года (до 2100 года). Часы работают либо в 24-часовом, либо в 12-часовом формате с индикатором ~AM/PM. Предоставляется два программируемых по времени дня будильника, и программируемый выход прямоугольного сигнала. Адрес и данные передаются последовательно через двунаправленную шину I2C (TWI).

Прецизионный, компенсированный по температуре источник опорного напряжения мониторит состояние линии питания VCC на предмет обнаружения события отказа (отключения) питания VCC. Это событие используется генерации сигнала на выходе сброса и автоматического переключения на резервный источник питания (линия питания от батареи VBAT), когда это необходимо. Дополнительно опрашивается вход ~RST как вход подключения кнопки сброса, которая сбрасывает микроконтроллер системы.

Основные возможности микросхемы DS3231:

• Очень точная система RTC, которая полностью обслуживают все функции отсчета времени.
• Точность ±2 ppm в диапазоне 0°..+40°C.
• Точность ±3.5 ppm в диапазоне -40°..+85°C.
• Выход цифрового датчика температуры с точностью ±3°C.
• Регистр учета старения (Aging Trim).
• Система входа/выхода для генерации сброса микроконтроллера с подавлением дребезга (RST Output/Pushbutton Reset Debounce Input).
• Два программируемых по времени дня будильника (Time-of-Day Alarm).
• Programmable Square-Wave Output Signal.
• Простой последовательный интерфейс I2C, позволяющий подключить микросхему к любому микроконтроллеру. Скорость работы интерфейса до 400 кГц.
• Вход резервного питания для подключения батареи с очень низким потреблением энергии.
• Работа от уровня напряжения 3.3V.
• Рабочие диапазоны температуры 0°..+70°C для коммерческого и -40°..+85°C для индустриального исполнения.
• Проверено компанией Underwriters Laboratories® (UL).
• Основные приложения для применения: серверы, телеметрия, счетчики электроэнергии, GPS.

Типовая схема подключения:

DS3231 typical circuit

[Предельно допустимые параметры применения]

Напряжение на любом выводе относительно общего провода (GND) -0.3..+6.0V
Тепловое сопротивление между кристаллом и окружающим воздухом (Junction-to-Ambient Thermal Resistance, θJA)(1) 73°C/W
Тепловое сопротивление между кристаллом и корпусом микросхемы (Junction-to-Case Thermal Resistance, θJC)(1) 23°C/W
Рабочий температурный диапазон для DS3231S (коммерческое исполнение) 0..+70°C
Рабочий температурный диапазон для DS3231SN (индустриальное исполнение) -40..+85°C
Температура кристалла (Junction Temperature)  +125°C
Диапазон температур хранения -40..+85°C
Температура выводов (при пайке в течение 10 сек) +260°C
Температура пайки (на основе термопрофиля, максимум дважды) +260°C

Примечание (1): параметры термосопротивления были получены с использованием метода, описанного в спецификации JEDEC JESD51-7 на 4-слойной плате. Для получения подробной информации по условиям эксплуатации, связанным с корпусом микросхемы, см. страничку www.maximintegrated.com/thermal-tutorial.

Стресс, выходящий за пределы этих указанных значений могут привести к необратимому повреждению микросхемы. Эти стрессовые параметры указаны только для рейтинга, и не подразумевается работа микросхемы при действии указанных значений параметров или значений, превышающих эти параметры. Если микросхема находится под действием этих максимальных значений длительное время, то это может ухудшить её надежность.

[Рекомендуемые параметры применения]

ПРЕДУПРЕЖДЕНИЕ: спад напряжения на выводе ниже -0.3V относительно земли, когда микросхема находится в режиме резервного питания от батареи (battery-backed mode), может привести к потере данных.

Параметры в таблице ниже указаны для температуры окружающего воздуха TA между TMIN и TMAX, если не указано нечто иное (2, 3).

Параметр Символ MIN TYP MAX Ед.
Напряжение питания VCC 2.3 3.3 5.5 V
VBAT 2.3 3.0 5.5 V
Лог. 1 для входов SDA, SCL VIH 0.7 * VCC   VCC + 0.3 V
Лог. 0 для входов SDA, SCL VIL -0.3   0.3 * VCC V

[Электрические характеристики]

Параметры в таблице ниже указаны для условий VCC=2.3-5.5V при питании от VCC (см. таблицу 1), TA в диапазоне TMIN..TMAX, если не указано нечто иное. Типичные значения: VCC=3.3V, VBAT = 3.0V и TA = +25°C, если не указано нечто иное. См. примечания 2, 3 в конце врезки.

Параметр Символ Условия
MIN TYP MAX Ед.
Потребляемый ток в активном режиме (Active) ICCA (примечания 4, 5) VCC=3.63V     200 μA
VCC=5.5V     300
Потребляемый ток в режиме приостановки (Standby) ICCS Шина I2C не активна, выход 32kHz включен, выход SQW выключен (примечание 5) VCC=3.63V     200 μA
VCC=5.5V     300
Ток процесса оцифровки температуры (Temperature Conversation) ICCSCONV Шина I2C не активна, выход 32kHz включен, выход SQW выключен VCC=3.63V     575 μA
VCC=5.5V     650
Порог допустимого напряжения питания (Power-Fail Voltage) VPF   2.45 2.575 2.70 V
Лог. 0 выходов 32kHz, ~INT/SQW, SDA VOL IOL = 3 mA     0.4 V
Лог. 0 выхода ~RST VOL IOL = 1 mA     0.4 V
Ток утечки выходов 32kHz, ~INT/SQW, SDA ILO Выход в состоянии высокого сопротивления (отключен) -1 0 +1 μA
Ток утечки входа SCL ILI   -1   +1 μA
Ток утечки I/O вывода ~RST IOL ~RST находится в состоянии высокого сопротивления (примечание 6) -200   +10 μA
Ток утечки VBAT (микросхема питается от основного источника, VCC Active) IBATLKG     25 100 nA
Выходная частота fOUT VCC = 3.3V или VBAT = 3.3V   32.768   кГц
Стабильность частоты в зависимости от температуры (исполнение Commercial) Δf/fOUT VCC = 3.3V или VBAT = 3.3V, aging offset = 00h 0..+40°C     ±2 ppm
+40..+70°C     ±3.5
Стабильность частоты в зависимости от температуры (исполнение Industrial) Δf/fOUT VCC = 3.3V или VBAT = 3.3V, aging offset = 00h -40..0°C     ±3.5 ppm
0..+40°C     ±3.5
40..+85°C     ±3.5
Стабильность частоты в зависимости от напряжения Δf/V     1   ppm/V
Чувствительность к регулировке частоты регистром подстройки по весу младшего разряда Δf/LSB Для температуры: -40°C   0.7   ppm
+25°C   0.1  
+70°C   0.4  
+85°C   0.8  
Точность измерения температуры Temp VCC = 3.3V или VBAT = 3.3V  -3   +3 °C
Уход частоты при старении кристалла (Crystal Aging) Δf/fO После пайки в печи, не было тестирования Первый год   ±1.0   ppm
0..10 лет   ±5.0  

Параметры в таблице ниже показывают ток потребления от батареи, и они указаны для условий VCC = 0V, VBAT = 2.3V to 5.5V, TA = TMIN..TMAX, если не указано нечто иное (примечание 2).

Параметр Символ Условия
MIN TYP MAX Ед.
Потребляемый ток от батареи в активном режиме (Active) IBATA ~EOSC=0, BBSQW=0, SCL = 400 кГц (примечание 5) VCC=3.63V     70 μA
VCC=5.5V     150
Потребляемый ток от батареи в режиме поддержки отсчета времени (Timekeeping) IBATT ~EOSC=0, BBSQW=0, EN32kHz=1, SCL=SDA=0V или SCL=SDA=VBAT (примечание 5) VCC=3.63V   0.84  3.0 μA
VCC=5.5V   1.0 3.5
Ток процесса оцифровки температуры (Temperature Conversation) IBATTC ~EOSC=0, BBSQW=0, SCL=SDA=0V или SCL=SDA=VBAT VCC=3.63V     575 μA
VCC=5.5V     650
Ток удержания состояния данных (Data-Retention Current) IBATTDR ~EOSC=1, SCL=SDA=0V, +25°C     100 nA

[Параметры переменного тока]

Параметры в таблице ниже дают интервалы времени микросхемы, и они указаны для условий VCC = VCC(MIN) .. VCC(MAX) или VBAT = VBAT(MIN) .. VBAT(MAX), VBAT > VCC, TA = TMIN .. TMAX, если не указано нечто иное (примечание 2).

Параметр Символ Условия
MIN TYP MAX Ед.
Частота SCL fSCL Fast mode 100   400 кГц
Standard mode 0   100
Время свободного состояния шины между событиями STOP и START tBUF Fast mode 1.3     мкс
Standard mode 4.7    
Время удержания (Hold Time, с повторениями) для события START (примечание 7) tHD:STA Fast mode 0.6     мкс
Standard mode 4.0    
Время лог. 0 сигнала SCL tLOW Fast mode 1.3     мкс
Standard mode 4.7    
Время лог. 1 сигнала SCL tHIGH Fast mode 0.6     мкс
Standard mode 4.0    
Время удержания данных (Data Hold Time, примечания 8, 9) tHD:DAT Fast mode 0   0.9 мкс
Standard mode 0   0.9
Время установки данных (Data Setup Time, примечание 10) tSU:DAT Fast mode 100     нс
Standard mode 250    
Время установки START (START Setup Time) tSU:STA Fast mode 0.6     мкс
Standard mode 4.7    
Время нарастания уровня для обоих сигналов SDA и SCL tR Fast mode 20+0.1CB   300 нс
Standard mode   1000
Время спада уровня для обоих сигналов SDA и SCL tF Fast mode 20+0.1CB   300 нс
Standard mode   300
Время установки для STOP (Setup Time STOP Condition) tSU:STO Fast mode 0.6     мкс
Standard mode 4.7    
Емкостная нагрузка для каждой сигнальной линии CB (примечание 11)     400 pF
Емкость для SDA, SCL CI/O     10   pF
Ширина импульсов выбросов помех, которые должны быть подавлены входным фильтром tSP     30   нс
Подавление дребезга контактов кнопки на выводе ~RST (Pushbutton Debounce) PBDB     250   мс
Активное время сброса (Reset Active Time) tRST     250   мс
Задержка флага остановки генератора (Oscillator Stop Flag, OSF) tOSF (примечание 12)   100   мс
Время оцифровки температуры (Temperature Conversion Time) tCONV     125 200 мс

[Характеристики переключения питания]

Параметры в таблице ниже указаны для TA = TMIN .. TMAX.

Параметр Символ Условия
MIN TYP MAX Ед.
Время спада VCC; от VPF(MAX) до VPF(MIN) tVCCF   300     мкс
Время нарастания VCC; от VPF(MIN) до VPF(MAX) tVCCR   0     мкс
Время восстановления после подачи питания tREC (примечание 13)   250 300 мс

Примечание 2: пределы температур на -40°C гарантируются разработкой и не тестировались в производстве.

Примечание 3: все напряжения указаны относительно земли (GND).

Примечание 4: ICCA - тактирование SCL на максимальной частоте 400 кГц.

Примечание 5: усредненный входной ток, который включает ток процесса оцифровки температуры.

Примечание 6: вывод ~RST имеет встроенный внутренний 50 kΩ (номинально) верхний подтягивающий (pullup) резистор к уровню VCC.

Примечание 7: после этого периода генерируется первый импульс тактов.

Примечание 8: устройство должно внутренне предоставлять время удержания (hold time) как минимум 300 нс для сигнала SDA (относительно VIH(MIN) сигнала SCL) чтобы закрыть неопределенный регион спада уровня SCL.

Примечание 9: максимум tHD:DAT нужен только для того, чтобы удовлетворить протоколу, если устройство не растягивает период лог. 0 (tLOW) сигнала SCL.

Примечание 10: устройство быстрого режима (fast-mode device) может использоваться в системе, работающей в стандартном режиме скорости (standard-mode system), но должно удовлетворяться условие tSU:DAT ≥ 250 нс. Это будет удовлетворено автоматически в случае, если устройство не растягивает период лог. 0 сигнала SCL. Если такое устройство растягивает период лог. 0 сигнала SCL, то оно должно выводить следующий бит данных на линию SDA tR(MAX) + tSU:DAT = 1000 + 250 = 1250 нс перед освобождением линии SCL.

Примечание 11: CB это общая емкость шины в pF.

Примечание 12: параметр tOSF это период времени, когда генератор должен быть остановлен для установленного флага OSF вне диапазона напряжения 0.0V ≤ VCC ≤ VCC(MAX) и 2.3V ≤ VBAT ≤ 3.4V.

Примечание 13: эта задержка применяется только если генератор разрешен и работает. Если бит ~EOSC в состоянии 1, то время tREC пропускается и ~RST немедленно переходит в лог. 1. Состояние ~RST не влияет на интерфейс I2C, RTC или систему TCXO.

Интервалы времени сброса от кнопки:

DS3231 Pushbutton Reset timing

Интервалы времени переключения питания:

DS3231 Power Switch timing

Диаграмма сигналов передачи данных по шине I2C:

DS3231 Data Transfer I2C

Диаграммы приведены для условий VCC=+3.3V, TA=+25°C, если не указано нечто иное.

Ток потребления в режиме приостановки (Standby) в зависимости от напряжения Ток потребления от батареи в зависимости от напряжения
DS3231 Standby VCC current vs voltage DS3231 VBAT current vs voltage
Ток потребления от батареи в зависимости от температуры Девиация частоты в зависимости от температуры и значения старения (aging)
DS3231 VBAT current vs temperature DS3231 Freq deviation vs temperature and aging value
Изменение частоты во времени
в зависимости от температуры
DS3231 delta Time and Freq vs temperature

Цоколевка и описание выводов DS3231:

DS3231 SO16 pinout

Имя Тип Функция
1 32kHz O Выход вывода частоты 32768 Гц. Это выход с открытым стоком, который требует наличия внешнего верхнего подтягивающего резистора (pullup). Будучи разрешенным, выход работает от любого имеющегося источника питания. Если не используется, то может оставаться не подключенным.
2 VCC P Основной источник питания. Этот вывод должен иметь подключенный развязывающий конденсатор емкостью 0.1..1.0 мкф. Если не используется, то подключается к земле (GND).
3 ~INT/SQW O Сигнал прерывания с активным низким уровнем, или выход частоты прямоугольного сигнала. Это выход с открытым стоком, который требует наличия внешнего верхнего подтягивающего резистора (pullup), подключенного к напряжению питания 5.5V или меньше. Режим работы этой ножки определяется битом INTCN регистра управления (Control Register, адрес 0Eh), и выводимая частота зависит от битов RS2 и RS1 (см. описание регистра управления и соответствующих бит). Напряжение, которое подается на резистор pullup, может быть до 5.5V, независимо от уровня VCC. Если вывод ~INT/SQW не используется, то может оставаться не подключенным.
4 ~RST I/O Сброс с активным уровнем лог. 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 P Вход для подключения резервного источника питания (обычно это литиевая батарейка на 3V). Если вывод VBAT используется как основной источник питания, то он должен иметь подключенный развязывающий конденсатор емкостью 0.1..1.0 мкф, имеющий малый ток утечки. Когда в VBAT используется как резервный источник питания, то этот конденсатор не нужен. Если VBAT не используется, то подключите его к земле (GND). Микросхема проверена компанией UL на отсутствие обратного тока заряда при использовании литиевой батарейки (см. www.maximintegrated.com/qa/info/ul).
15 SDA I/O Данные интерфейса I2C. Выход вывода имеет открытый сток, поэтому необходим внешний верхний подтягивающий резистор (pullup). Подтягивающее напряжение может иметь уровень до 5.5V, независимо от уровня напряжения питания VCC.
16 SCL I Такты интерфейса I2C. Напряжение на входе SCL может иметь уровень до 5.5V, независимо от уровня напряжения питания VCC.

Примечание: O означает выход, I вход, I/O двунаправленный вывод (работает и как вход, и как выход), P вывод питания.

[Подробное описание функционирования DS3231]

В корпус DS3231 встроена схема RTC, тактируемая внутренним кварцевым генератором на 32 кГц, частота которого имеет температурную компенсацию (TCXO). Компенсация дает стабильную и точную опорную частоту, которая обеспечивает уход RTC в пределах ±2 минуты в год когда микросхема работает в диапазоне температур -40°..+85°C. На специальном выходе доступна частота 32 кГц, стабилизированная этим генератором TCXO. Имеется функция часов/календаря с двумя программируемыми на время дня будильниками. Также есть программируемый выход частоты с сигналом прямоугольной формы. Ножка ~INT/SQW предоставляет либо сигнал прерывания, сообщающая о событиях будильника, либо предоставляет выход для вывода прямоугольного сигнала. Часы/календарь дает информацию о текущих данных секунд, минут, часов, дней, даты, месяца и года. Дата в конце месяца автоматически корректируется по месяцам (30 или 31 день), в том числе автоматически корректируется количество дней в феврале с учетом високосного года. Часы работают либо в 24-часовом формате, либо в 12-часовом формате с индикатором ~AM/PM. Внутренние регистры доступны через интерфейс шины I2C.

Скомпенсированный по температуре источник опорного напряжения и схема компаратора мониторит уровень VCC, чтобы обнаружить отказы по питанию, и выполнить автоматическое переключение на резервный источник питания, когда это необходимо. Вывод сброса ~RST предоставляет функцию подключения внешней кнопки сброса, и работает как индикатор события отказа питания (стандартная функция супервизора).

Блок-диаграмма микросхемы DS3231:

DS3231 Block Diagram

На рисунке показана блок-диаграмма с основными элементами DS3231. 8 блоков можно сгруппировать в 4 функциональные группы: генератор TCXO, управление питанием, функция кнопки сброса и RTC. Их функции описаны по отдельности в последующих секциях.

Генератор 32 кГц TCXO. Датчик температуры, генератор и логика управления формируют схему генератора TCXO. Контроллер читает выход встроенного в кристалл сенсора температуры, и использует таблицу коррекции для определения требуемой корректирующей емкости, добавляет коррекцию старения регистра AGE, и затем устанавливает регистры выбора емкости. Новые значения, включая изменения в регистре AGE, загружаются, когда происходит изменение температуры, или когда завершается преобразования оцифровки температуры, инициированное пользователем. Преобразования для оцифровки температуры также происходят по начальному появлению VCC и каждые 64 секунды.

Power Control (управление питанием). Эта функция предоставляет опорное напряжение, скомпенсированное по температуре, и схему компаратора, которая мониторит уровень напряжения линии питания VCC. Когда VCC больше VPF, микросхема DS3231 питается от VCC. Когда VCC меньше VPF, но больше VBAT, микросхема все еще питается от VCC. Если VCC меньше VPF и меньше VBAT, то микросхема получает питание от VBAT (см. таблицу 1).

Таблица 1. Power Control.

Событие на выводах питания Активный источник питания
VCC < VPF, VCC < VBAT VBAT
VCC < VPF, VCC > VBAT VCC
VCC > VPF, VCC < VBAT VCC
VCC > VPF, VCC > VBAT VCC

Чтобы экономить энергию батареи, когда VBAT первый раз подается на микросхему, генератор не запустится, пока VCC не станет больше VPF, или пока через I2C не будет записан допустимый адрес. Типичное время запуска генератора составляет менее 1 секунды. Примерно через 2 секунды после прикладывания VCC, или после записи допустимого адреса I2C, микросхема производит измерение температуры и применяет к генератору вычисленную по температуре коррекцию. После того, как генератор запустился, он продолжает работу, пока доступен хотя бы один из источников питания (VCC или VBAT), и микросхема продолжает автоматически измерять температуру и корректировать частоту генератора каждые 64 секунды.

При первой подаче основного питания (VCC), или когда записан допустимый адрес I2C (при питании от VBAT), регистры даты и времени сбрасываются в значение 01/01/00 01 00:00:00 (это означает DD/MM/YY т. е. день/месяц/год, DOW т. е. день недели, и HH:MM:SS т. е. часы:минуты:секунды).

Работа от VBAT. Есть несколько режимов работы, которые влияют на потребление тока от VBAT. Когда микросхема питается от VBAT, и активен последовательный интерфейс, то активный потребляемый ток равен IBATA. Когда последовательный интерфейс не активен, ток потребления тратится только на отсчет времени (ток IBATT), в этот ток входит потребление блока оцифровки температуры IBATTC (подробности см. в Application Note 3644: Power Considerations for Accurate Real-Time Clocks). Ток потребления от батареи для системы оцифровки температуры (Temperature conversion current, IBATTC) указывается, поскольку система может предоставить периодические импульсы тока потребления при напряжении, находящемся в допустимом диапазоне. Ток хранения данных (Data retention current, IBATTDR) это ток, который микросхема потребляет, когда генератор остановлен (EOSC=1). Этот режим может использоваться для минимального потребления от батареи, когда поддержание корректного времени и даты не требуется, например когда система находится на складе и ожидает поставки конечному потребителю.

Функция сброса от кнопки (Pushbutton Reset). Микросхема DS3231 может опрашивать кнопку, подключенную между землей и выходом ~RST. Когда DS3231 не находится в цикле сброса, она постоянно опрашивает сигнал ~RST на появление перепада к лог. 0. Если такой спад уровня обнаружен, DS3231 выполняет подавление дребезга кнопки, подтягивая уровень ~RST к лог. 0. После того, как истечет время внутреннего таймера (PBDB), DS3231 продолжит мониторить сигнал ~RST. Если этот сигнал все еще находится в лог. 0, DS3231 постоянно мониторит линию, ожидая появления нарастания сигнала (перехода от лог. 0 к лог. 1). После детектирования освобождения линии DS3231 удерживает ~RST еще на время tRST.

~RST также показывает событие отказа питания (power-fail). Когда VCC меньше VPF, генерируется внутренний сигнал отказа питания, который переводит вывод ~RST в лог. 0. Когда VCC возвращается к уровню выше VPF, вывод ~RST продолжает удерживаться в лог. 0 еще на время приблизительно 250 мс (tREC), чтобы позволить стабилизироваться уровню напряжения питания. Если генератор не работает (см. секцию Power Control), когда подключено VCC, формирование tREC пропускается, и ~RST немедленно переходит в лог. 1. Выставление сигнала сброса на выходе ~RST (независимо от чего он был сформирован - от кнопки или от схем формирования сигнала сброса по событию power-fail), никак не влияет на внутреннее функционирование DS3231.

Real-Time Clock. Часы реального времени (Real-Time Clock, RTC) с тактированием от TCXO, предоставляют информацию о секундах, минутах, часах, текущем дне недели, дате, месяце и годе. Реализована автоматическая коррекция даты в зависимости от месяца с учетом високосного года.

Часы предоставляют 2 программируемых по времени дня будильника (time-of-day alarms) и программируемый выход прямоугольного сигнала. Ножка ~INT/SQW либо генерирует прерывание по срабатыванию будильника, либо работает как выход прямоугольных импульсов (управляется битом INTCN).

Карта адресов регистров. На рис. 1 показана карта распределения адресов регистров хранения времени DS3231. При многобайтном доступе, кода указатель адреса достигает последнего адреса в адресном пространстве регистров (12h), указатель адреса автоматически переустанавливается на адрес 00h. На событии I2C START или при инкрементации указателя при его сбросе в 00h, текущее время передается во второй набор регистров. Информация о времени читается из этого второго набора регистров, в то время как часы продолжают свою работу. Эту устраняет необходимость перечитывать регистры в случае, когда регистры обновились в момент чтения (второй набор регистров обеспечивает атомарность выборки времени).

Адр. Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0 Функция Диапазон значений
00h 0 Десятки секунд Секунды Секунды 00..59
01h 0 Десятки минут Минуты Минуты 00..59
02h 0 12/~24 ~AM/PM 10 часов Часы Часы 1..12+ ~AM/PM
00..23
20 часов
03h 0 0 0 0 0 Дни День недели 1..7
04h 0 0 Десятки даты Дата Дата месяца 01..31
05h Век 0 0 10 месяца Месяц Месяц/век 01..12 + век
06h Десятки года Год Год 00..99
07h A1M1 Десятки секунд Секунды Секунды будильника 1 00..59
08h A1M2 Десятки минут Минуты Минуты будильника 1 00..59
09h A1M3 12/~24 AM/PM 10 часов Часы Часы будильника 1 1..12+ ~AM/PM
00..23
20 часов
0Ah A1M4 DY/~DT 10 даты День День недели будильника 1 1..7
Дата Дата будильника 1 1..31
0Bh A2M2 Десятки минут Минуты Минуты будильника 2 00..59
0Ch A2M3 12/~24 AM/PM 10 часов Часы Часы будильника 2 1..12+ ~AM/PM
00..23
20 часов
0Dh A2M4 DY/~DT 10 даты День День недели будильника 2 1..7
Дата Дата будильника 2 1..31
0Eh ~EOSC BBSQW CONV RS2 RS1 INTCN A2IE A1IE Управление -
0Fh OSF 0 0 0 EN32kHz BSY A2F A1F Управление/статус -
10h SIGN DATA DATA DATA DATA DATA DATA DATA Aging Offset -
11h SIGN DATA DATA DATA DATA DATA DATA DATA Старшие биты температуры -
12h DATA DATA 0 0 0 0 0 0 Младшие биты температуры -

Рис. 1. Адреса регистров хранения времени.

Примечание: если не указано нечто иное, то состояние регистров не определено, когда напряжение было подано в первый раз.

Интерфейс I2C. I2C доступен, когда достигло допустимого уровня напряжение VCC или VBAT. Если микроконтроллер, подключенный к DS3231, сбрасывается из-за пропадания VCC или другого события, то есть возможность, что обмен между микроконтроллером и DS3231 через I2C стал не синхронизированным, например когда микроконтроллер сбросился в момент чтения данных из DS3231. Когда микроконтроллер сбрасывается, интерфейс I2C микросхемы DS3231 может быть помещен в известное состояния путем переключения линии SCL, пока на сигнале SDA не будет наблюдаться уровень лог. 1. В этот момент микроконтроллер должен перевести SDA в лог. 0, когда SCL находится в лог. 1, генерируя тем самым событие START шины.

Часы и календарь. Информация времени и календаря может быть получена чтением байт соответствующих регистров (рис. 1 показывает эти регистры RTC). Данные времени и календаря устанавливаются или инициализируются путем записи в эти байты соответствующих регистров. Содержимое регистров времени и календаря имеет формат десятичного числа, закодированного в тетраде бит (формат binary-coded decimal, BCD). DS3231 может работать либо в 12-часовом, либо в 24-часовом режиме. Бит 6 регистра часов определен как бит выбора  12-часового или 24-часового режима. Когда этот бит в лог. 1, то выбран 12-часовой режим. В 12-часовом режиме бит 5 это бит ~AM/PM, который устанавливается в лог. 1 при времени суток PM (после полудня, от латинского post meridiem). В 24-часовом режиме бит 5 работает как бит, кодирующий 20-й час (20..23 часа). Бит столетия (century, бит 7 регистра месяца) переключается, когда регистр года переваливает от значения 99 к значению 00.

Регистр дня недели (day-of-week) инкрементируется в полночь. Значения, которые соответствуют дню недели, определяются пользователем (т. е. могут быть любыми), но они должны быть последовательными (например, если 1 соответствует воскресенью, то 2 соответствует понедельнику, и так далее). Нелогичные значения даты и времени приведут к неопределенному поведению RTC.

Когда регистры времени и даты читаются или записываются, используется вторичный (пользовательский) набор регистров, который буферизирует данные первичного набора регистров, и предотвращают от ошибок, когда регистры обновляются в соответствии с ходом часов. Когда происходит чтение регистров времени и даты, буферы пользователя (вторичный набор регистров) синхронизируются с внутренними регистрами (первичные регистры) по любому события START интерфейса, или когда указатель адреса регистра переваливает через максимальный адрес к нулевому адресу. Информация о времени считывается из этого вторичного набора регистров, в то время как часы продолжают отсчет времени. Такое функционирование позволяет исключить повторное считывание регистров, когда произошло обновление регистров в момент процедуры чтения (вторичный набор регистров обеспечивает атомарность выборки времени).

Низкоуровневый счетчик (countdown chain) сбрасывается всякий раз, когда записывается регистр секунд. Передача данных записи происходит в момент подтверждения по шине (acknowledge) от микросхемы DS3231. Как только произошел сброс низкоуровневого счетчика, для предотвращения проблем переполнения нужно перезаписать другие регистры в даты и времени в течение 1 секунды. Если выход генерации прямоугольного сигнала разрешен на частоте 1 Гц, то при работающем генераторе произойдет переход к лог. 1 через 500 мс после передачи данных секунд.

Будильники (Alarms). В микросхеме DS3231 имеется 2 будильника, настраиваемых по времени дня. Будильник 1 (Alarm 1) может быть установлен записью регистров 07h..0Ah. Будильник 2 (Alarm 2) может быть установлен записью регистров 0Bh..0Dh. Будильники могут быть запрограммированы (битами разрешения будильника alarm enable и битом INTCN регистра управления) для активации выхода ~INT/SQW, когда произойдет событие срабатывания будильника. Биты 7 каждого из регистров будильника являются битами маски (см. таблицу 2). Когда все биты маски для каждого будильника находятся в лог. 0, то будильник сработает только когда значения в регистрах хранения времени будут равны соответствующим значениям, сохраненным в регистрах будильников. Таким образом, будильник может быть запрограммирован на повторение каждую секунду, минуту, час, день, или указанную дату. Таблица 2 показывает возможные значения. Конфигурации, не перечисленные в таблице, могут привести к нелогичной работе.

Таблица 2. Биты маски будильника (Alarm Mask Bits).

DY/~DT
Биты маски регистров будильника 1 (бит 7)
Когда сработает будильник
A1M4 A1M3 A1M2 A1M1
X 1 1 1 1 Каждую секунду
X 1 1 1 0 Когда совпадет значение секунд
X 1 1 0 0 Когда совпадет значение и минут, и секунд
X 1 0 0 0 Когда совпадут значения и часов, и минут, и секунд
0 0 0 0 0 Когда совпадут дата, часы, минуты и секунды
1 0 0 0 0 Когда совпадут день недели, часы, минуты и секунды
DY/~DT
Биты маски регистров будильника 2 (бит 7)
Когда сработает будильник
A1M4 A1M3 A1M2
X 1 1 1 Один раз в минуту (когда число секунд каждую минуту станет равным 00)
X 1 1 0 Когда совпадет значение минут
X 1 0 0 Когда совпадут значения и часов, и минут
0 0 0 0 Когда совпадут дата, часы и минуты
1 0 0 0 Когда совпадут день недели, часы и минуты

Биты DY/~DT (бит 6 регистров дня/даты) управляют тем, что отражает значение будильника, сохраненное в битах 0..5 этого регистра - день недели или дату месяца. Если DY/~DT записан в лог. 0, то срабатывание будильника произойдет при совпадении даты месяца. Если в DY/~DT записан в лог. 1, то срабатывание будильника произойдет при совпадении дня недели.

Когда значения регистров RTC совпадают с настройками регистров будильника, то установится в лог. 1 соответствующий флаг срабатывания будильника (Alarm Flag) A1F или A2F. Если установлены в лог. 1 соответствующие биты разрешения прерывания будильника (Alarm Interrupt Enable) A1IE или A2IE, и также установлен в лог. 1 бит INTCN, то событие будильника активирует сигнал ~INT/SQW. Совпадение проверяется в момент обновления регистров времени и даты один раз в секунду.

Регистры специального назначения (Special-Purpose Registers). В микросхеме DS3231 есть 2 дополнительных регистра (управления и состояния) которые управляют работой часов реального времени, будильниками и выходом прямоугольного сигнала.

Это регистр управления микросхемой DS3231. Ниже приведено описание функций бит регистра управления.

Бит 7 6 5 4 3 2 1 0
Имя: ~EOSC BBSQW CONV RS2 RS1 INTCN A2IE A1IE
POR: 0 0 0 1 1 1 0 0

Примечание: POR означает состояние при событии Power-On-Reset (состояние по умолчанию, когда произошло первое включение питания).

Бит 7: Enable Oscillator (~EOSC), разрешение работы генератора. Когда этот бит установлен в лог. 0, запускается генератор. Когда этот бит установлен в лог. 1, генератор останавливается, когда DS3231 переходит на питание от VBAT. По умолчанию, когда питание подано первый раз, этот бит очищен (находится в состоянии лог. 0). Когда DS3231 получает питание от VCC, то генератор работает всегда, независимо от состояния бита ~EOSC. Когда бит ~EOSC запрещен, все регистры данных статичны во времени.

Бит 6: Battery-Backed Square-Wave Enable (BBSQW). Когда этот бит установлен в лог. 1 вместе с INTCN=0 и VCC < VPF, этот бит разрешает вывод прямоугольного сигнала. Когда BBSQW в лог. 0, вывод ~INT/SQW переходит в состояние высокого сопротивления, когда VCC < VPF. Этот бит запрещен (находится в лог. 0), когда питание прикладывается в первый раз.

Бит 5: Convert Temperature (CONV). Установка этого бита в лог. 1 принудительно запускает оцифровку значения датчика температуры. Температура преобразуется в цифровой код, и запускается алгоритм коррекции TCXO, чтобы обновить состояние массива емкостей, корректирующих частоту генератора. Это может произойти только в том случае, когда не выполняется оцифровка температуры. Пользователь должен проверить бит состояния BSY перед тем, как запустить контроллер на новое выполнение оцифровки температуры. Преобразование температуры, запущенное пользователем, не влияет на внутренний 64-секундный цикл автоматического запуска оцифровки температуры.

Преобразование температуры, запущенное пользователем, не влияет на бит BSY примерно 2 мс. Бит CONV остается в лог. 1 от момента его записи до момента завершения преобразования, в котором оба бита, и CONV, и BSY, перейдут в значение лог. 0. Для мониторинга статуса преобразования, запущенного пользователем, должен использоваться бит CONV.

Биты 4 и 3: Rate Select (RS2 и RS1). Эти биты управляют частотой прямоугольного сигнала, когда разрешена его генерация. В таблице ниже показаны частоты этого сигнала, которые могут быть выбраны битами RS2 и RS1. Когда напряжение питание было подано в первый раз, оба этих бита установлены в лог. 1 (соответствует выходной частоте 8.192 кГц).

RS2 RS1 Частота на выходе SQW 
0 0 1 Гц
0 1 1024 Гц
1 0 4096 Гц
1 1 8192 Гц

Бит 2: Interrupt Control (INTCN). Этот бит управляет сигналом ~INT/SQW. Когда бит INTCN установлен в лог. 0, прямоугольный сигнал выводится на ножку ~INT/SQW микросхемы. Когда бит INTCN установлен в лог. 1, то активация выхода ~INT/SQW (активный уровень 0) произойдет в момент совпадения регистров времени и регистров любого из будильников (если эти будильники разрешены). Соответствующий флаг срабатывания будильника установится всегда, независимо от состояния бита INTCN. Когда питание было подано в первый раз, бит INTCN устанавливается в лог. 1.

Бит 1: Alarm 2 Interrupt Enable (A2IE). Когда этот бит установлен в лог. 1, он разрешает активацию ~INT/SQW (когда INTCN=1), если установился флаг будильника 2 (A2F) в регистре статуса. Когда бит A2IE установлен в лог. 0, или когда INTCN установлен в лог. 0, флаг A2F не приведет к активации сигнала прерывания. Бит A2IE запрещен (находится в состоянии лог. 0), когда питание было подано в первый раз.

Бит 0: Alarm 1 Interrupt Enable (A1IE). То же самое, но для будильника 1.

Это регистр состояния (статуса) микросхемы DS3231. Ниже приведено описание функций бит регистра статуса.

Бит 7 6 5 4 3 2 1 0
Имя: OSF - - - EN32kHz BSY A2F A1F
POR: 1 0 0 0 1 X X X

Примечание: POR означает состояние при событии Power-On-Reset (состояние по умолчанию, когда произошло первое включение питания).

Бит 7: Oscillator Stop Flag (OSF). Лог. 1 в этом бите показывает, что либо генератор остановлен постоянно, либо приостановлен на некоторый период времени, что может использоваться о принятии решения о достоверности данных времени. Этот бит устанавливается в любой момент остановки генератора. Следующие примеры показывают ситуации, когда бит OSF установлен:

1) Питание было подано первый раз.
2) Уровни напряжения на обоих линиях VCC и VBAT недостаточны для поддержки генерации.
3) Бит ~EOSC выключен в режиме резервного питания от батареи (battery-backed mode).
4) Внешние помехи, влияющие на кварц (например, шум, утечки тока и т. п.).

Этот бит остается в лог. 1, пока в него не будет записан лог. 0.

Бит 3: Enable 32kHz Output (EN32kHz). Этот бит показывает состояние вывода 32kHz. Когда бит установлен в лог. 1, работа выхода 32kHz разрешена, и на него выводится прямоугольный сигнал с частотой 32 кГц. Когда этот бит установлен в лог. 0, вывод 32kHz переходит в состояние высокого сопротивления. Начальное состояние этого бита при включении питания лог. 1, и сигнал 32.768 кГц появляется на выводе 32kHz после того, как питание подано на DS3231 (если генератор работает).

Бит 2: Busy (BSY). Этот бит показывает, что микросхема занята выполнением функции коррекции частоты генератора (TCXO). Он переходит в лог. 1, когда выставляется сигнал преобразования датчика температуры, и очищается, когда устройство находится в 1-минутном состоянии ожидания.

Бит 1: Alarm 2 Flag (A2F). Лог. 1 в этом бите показывает совпадение регистров будильника 2 и регистров хранения времени. Если A2IE в лог. 1, и INTCN установлен в лог. 1, то будет активирован вывод ~INT/SQW (он будет притянут к лог. 0). A2F очищается, когда в него записывается лог. 0. В этот бит можно записать только лог. 0. Попытка записи в этот бит лог. 1 оставит значение бита в неизменном состоянии.

Бит 0: Alarm 1 Flag (A1F). То же самое, только для будильника 1.

Это регистр, дающий возможность учитывать старение генератора.

Бит 7 6 5 4 3 2 1 0
Имя: знак данные данные данные данные данные данные данные
POR: 0 0 0 0 0 0 0 0

Примечание: POR означает состояние при событии Power-On-Reset (состояние по умолчанию, когда произошло первое включение питания).

Регистр aging offset (дословно переводится как "смещение по возрасту") получает значение, определяемое пользователем, которое добавляется или вычитается из кодов в регистрах массива корректирующих емкостей. Значение в этом регистре закодировано в формате двоичного целого числа со знаком с дополнением до 2, где бит 7 представляет бит знака числа. Остальные биты соответствую маленькому конденсатору из массива, который будет либо подключен, либо отключен от выводов кварца генератора. Значение коррекции старения будет добавлять или отнимать емкость из значение емкости, которое устройство вычисляет на каждой процедуре компенсации частоты по температуре. Регистр смещения добавляется к массиву емкостей по время обычного преобразования значения датчика температуры, если температура поменялась от своего последнего преобразования, или при ручном запуске преобразования пользователем (установкой бита CONV). Чтобы немедленно увидеть эффект от работы регистра старения на выходе 32kHz, после каждого изменения регистра Aging Offset должно быть вручную запущена процедура преобразования температуры.

Положительные значения в этом регистре добавляют емкость в массив, уменьшая тем самым частоту генератора. И соответственно отрицательные значения убавляют емкость из массива конденсаторов, увеличивая тем самым частоту генератора.

Изменения частоты в единицах ppm на вес младшего бита отличается для разных температур. Кривая зависимости частоты от температуры сдвигается на значения, указанные в этом регистре. При температуре +25°C вес одного младшего разряда регистра обычно предоставляет регулировку частоты около 0.1 ppm.

Использование регистра старения не требуется для достижения точности, указанной в таблице характеристик (см. врезку "Параметры применения и диаграммы сигналов"), но должно использоваться для того, чтобы помочь скомпенсировать старение микросхемы на имеющейся температуре. См. врезку "Типовые графики параметров" для графика, показывающего эффект действия этого регистра от температуры.

Temperature Registers (11h, 12h). Температура представлена 10-битным кодом с разрешающей способностью 0.25°C, и она доступна по в регистрах по адресам 11h и 12h. Температура кодируется целым числом со знаком в формате дополнения до 2 (two’s complement format). Старшие 8 бит по адресу 11h дают целую часть температуры, и младшие 2 бита, находящиеся в старшем ниббле байта по адресу 12h, дают дробную часть температуры. Например, 00011001 01b = +25.25°C. После сброса при включении питания эти регистры устанавливаются в температуру по умолчанию 0°C, и контроллер запускает процедуру преобразования температуры. Температура считывается при первой подаче напряжения VCC, или при доступе по шине I2C, когда питание осуществляется от VBAT, или иначе автоматически каждые 64 секунды. Регистры температуры обновляются после каждого преобразования, инициированного пользователем,и каждые 64 секунды, когда конверсия запускается автоматически. Регистры температуры работают только на чтение (read-only), записать их нельзя.

Бит 7 6 5 4 3 2 1 0
Имя: знак данные данные данные данные данные данные данные
POR: 0 0 0 0 0 0 0 0

Примечание: POR означает состояние при событии Power-On-Reset (состояние по умолчанию, когда произошло первое включение питания).

Бит 7 6 5 4 3 2 1 0
Имя: данные данные 0 0 0 0 0 0
POR: 0 0 0 0 0 0 0 0

Примечание: POR означает состояние при событии Power-On-Reset (состояние по умолчанию, когда произошло первое включение питания).

[Последовательная шина данных I2C]

Микросхема DS3231 поддерживает двунаправленную шину и протокол передачи данных I2C. Устройство, которое посылает данные по шине, определено как передатчик, и устройство, которое получает данные, определено как приемник. Устройство на шине I2C, которое управляет передачей сообщений, называется главным (master), в качестве главного устройства выступает микроконтроллер. Устройства на шине I2C, которыми управляет главное устройство, называются подчиненными (slave). Шина должна управляться мастером посредством генерации сигнала тактов (serial clock, SCL), управления доступа к шине, и генерации событий START и STOP. Микросхема DS3231 работает на шине I2C как подчиненное устройство. Подключение к шине осуществляется через вход SCL и сигнал с открытым стоком SDA. По стандарту шины I2C различают стандартный режим скорости (standard mode) с максимальной тактовой частотой 100 кГц, и быстрый режим (fast mode) с максимальной частотой 400 кГц. Микросхема DS3231 работает в обоих этих режимах.

Определен следующий протокол шины (см. рис. 2):

• Передача данных может быть инициирована только тогда, когда шина не занята (оба сигнала SDA и SCL в лог. 1).
• Во время передачи данных сигнал данных (SDA) должен оставаться в стабильном состоянии всякий раз, когда сигнал тактов (SCL) находится в лог. 1. Изменения на линии данных, когда линия тактов находится в лог. 1, интерпретируются как специальные управляющие сигналы.

Соответственно определены следующие состояния (условия) на шине:

Bus not busy (шина не занята): оба сигнала, SDA и SCL, остаются в лог. 1.

START data transfer (начало передачи данных): изменение на SDA 1->0, когда SCL=1, определяет событие старта данных (START condition).

STOP data transfer (остановка передачи данных): изменение на SDA 0->1, когда SCL=1, определяет событие остановки данных (STOP condition).

Data valid (данные достоверны): состояние на SDA представляет достоверные данные, когда после START condition сигнал SDA стабилен в течение периода, когда SCL=1. Данные на линии должны меняться во время периода, когда SCL=0. Таким образом, на один бит данных приходится один импульс тактов SCL.

Каждая передача данных (в любую сторону) инициируется START condition и завершается STOP condition. Количество передаваемых байт данных между событиями START и STOP не ограничивается, и это определяется алгоритмом работы главного устройства на шине (master device, управляющий микроконтроллер). Информация передается по байтам, и приемник подтверждает прием байта в девятом бите.

Acknowledge: каждое принимающее устройство, будучи адресованным на шине, обязано подтвердить прием каждого байта. Для этого master должен генерировать дополнительный импульс такта SCL, который ассоциируется с битом подтверждения.

Устройство, которое подтверждает (acknowledge) прием, должно притянуть к лог. 0 линию SDA во время такта подтверждения, чтобы SDA оставалась в лог. 0 во время всего периода лог. 1 на выводе SCL такта подтверждения. Конечно, при этом должны учитываться интервалы установки и удержания уровня сигнала (setup and hold times, от которых зависит скорость передачи данных). Устройство master должно сигнализировать об окончании данных для slave-устройства путем не генерирования бита acknowledge на последнем байте, когда он выдвинут из slave-устройства. В этом случае slave-устройство должно оставить SDA в лог. 1, чтобы позволить устройству master сгенерировать на шине STOP condition.

DS3231 I2C data transfer overview

Рис. 2. Обзор передачи данных по I2C.

Рис. 3 и 4 показывают, как передаются данные по шине I2C. В зависимости от состояния бита R/W, возможны 2 типа передачи данных:

Master передатчик, slave приемник. Первый байт, который передает master, является адресом устройства slave на шине (на шине I2C может присутствовать несколько подчиненных устройств). За первым байтом адреса идет некоторое количество байт данных. Устройство slave возвращает бит подтверждения после каждого принятого байта. Данные передаются через SDA старшим битом (most significant bit, MSB) вперед.

DS3231 Data Write fig3

Рис. 3. Режим записи, когда данные передаются от главного устройства к подчиненному (Data Write — Slave Receiver).

Slave передатчик, master приемник. Первый байт (адрес slave-устройства) передается устройством master. В ответ на него адресованное slave-устройство вернет бит подтверждения. Поле этого идут байты данных, передаваемые slave-устройством для master-устройства. Master возвращает бит подтверждения после всех принятых байт, кроме последнего. По окончании приема последнего байта не подтверждение не возвращается.

DS3231 Data Read fig4

Рис. 4. Режим чтения, когда данные передаются от подчиненного устройства к главному (Data Read — Slave Transmitter).

Устройство master генерирует все тактовые импульсы и условия START и STOP шины. Передача заканчивается выдачей STOP condition, или повторением START condition. Поскольку повтор START condition также означает начало следующей передачи, шина не освобождается. Данные передаются через SDA старшим битом (MSB) вперед.

DS3231 Data Write Read fig5

Рис. 5. Операция записи/чтения данных (Data Write/Read, запись указателя, затем чтение) — подчиненное устройство принимает и передает.

Микросхема DS3231 может работать в следующих 2 режимах:

Slave receiver mode (режим записи DS3231): последовательные данные и такты передаются через сигналы SDA и SCL. После каждого принятого байта микросхемой передается бит подтверждения (acknowledge bit). Условия START и STOP распознаются как начало и окончание последовательной передачи. Распознавание адреса выполняется аппаратно после приема адреса подчиненного устройства на шине (slave address) и бита направления передачи (direction bit). Байт, содержащий slave address, является первым байтом, который принимается микросхемой после того, как master генерирует START condition. Байт slave address содержит 7 бит адреса DS3231, которые должны быть равны 1101000, за которым идет direction bit (бит R/~W, определяющий, чтение будет или запись), который равен 0 для записи. После приема и декодирования байта slave address, микросхема DS3231 выводит acknowledge на линию SDA. После того, как DS3231 подтвердит slave address + бит записи, устройство master передает слово адреса в DS3231. Это установит регистр указателя DS3231, после чего DS3231 подтвердит эту передачу. Устройство master может затем передать 0 или большее количество байт данных, каждый из которых подтверждается микросхемой DS3231. Регистр указателя инкрементируется после передачи каждого байта. Для завершения записи устройство master генерирует STOP.

Slave transmitter mode (режим чтения DS3231): первый байт принимается и обрабатывается так же, как и в slave receiver mode. Однако в этом режиме direction bit показывает обратное направление передачи данных. Последовательные данные передаются микросхемой DS3231 через сигнал SDA, пока сигналы тактов поступают на линию SCL. События START и STOP распознаются как начало и окончание последовательной передачи. Распознавание адреса выполнятся аппаратно после приема slave address и direction bit. Байт slave address это первый байт, принятый после того, как master сгенерировал START condition. Байт slave address содержит 7-бит адреса микросхемы DS3231, которые равны 1101000, за которыми следует direction bit (R/~W), который для чтения равен 1. После приема и декодирования байта slave address, микросхема DS3231 выводит acknowledge на сигнал SDA. Затем DS3231 начинает передавать данные, начиная с регистра, на который указывает текущее значение регистра указателя адреса (register pointer). Если register pointer не был записан перед инициацией режима чтения, то первый прочитанный регистр будет по адресу, который остался в register pointer при последней операции доступа. По окончании чтения DS3231 должна не получить acknowledge от устройства master.

[Как работать с микросхемой]

Корпус микросхемы DS3231 содержит внутри точно настроенный кристалл кварца. Можно использовать при монтаже оборудование автоматической установки и пайки, однако следует соблюдать меры предосторожности для того, чтобы избегать лишних ударов и ускорений. Следует избегать очистки плат с применением ультразвука, чтобы предотвратить повреждение кварца.

Избегайте разводки проводников сигналов под микросхемой, кроме заливки шиной земли, которая должна быть размещена между корпусом микросхемы и сигнальными линиями. Все выводы, помеченные N.C. (no connect, нет соединения) должны быть подключены к земле (GND).

Чувствительные к влаге корпуса микросхем поставляются с завода в специальной сухой упаковке. Следуйте инструкциям, перечисленным на упаковке, чтобы предотвратить повреждения в процессе пайки. Обратитесь к стандарту IPC/JEDEC J-STD-020 для классификации чувствительного к влаге устройства (moisture-sensitive device, MSD) и получения информации по профилям пайки. Количество прохождения через термопрофиль ограничено максимум двумя процедурами пайки.

Информацию о покупке и маркировке различных версий поставки микросхемы см. в даташите [1].

[Ссылки]

1. DS3231 Extremely Accurate I2C-Integrated RTC/TCXO/Crystal site:maximintegrated.com.

 

Комментарии  

 
0 #2 вован 22.04.2022 23:48
Спасибо за подробную информацию.
Цитировать
 
 
+6 #1 Иван 27.08.2017 01:34
При работе с управляющими регистрами обращайте внимание на маркировку схемы DS3231/DS3231M. В DS3231M нет битов RS2, RS1
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page