Для корректного обмена данными между микроконтроллером и этим устройством, используйте I²C-интерфейс. Контакты SDA и SCL требуют подтяжки резисторами 4.7 кОм к питанию. Напряжение подается в диапазоне 2.5–5.5 В, а потребление в режиме ожидания не превышает 500 нА.
Регистры времени обновляются автоматически каждую секунду. Чтение данных выполняется пакетно: сначала указывается стартовый адрес (0x00 для секунд), затем последовательно считываются 7 байт. Запись требует предварительной остановки генератора установкой бита CH в регистре 0x00.
Как взаимодействовать с микросхемой хронометража DS1307
Электрическое соединение
Особенности обмена данными
Микросхема использует интерфейс I²C с адресом 0x68. Запись и чтение времени выполняются через регистры: 0x00 – секунды, 0x01 – минуты, 0x02 – часы. Для корректной работы бит CH в регистре секунд (0x00) должен быть сброшен в 0. Формат часов – 12- или 24-часовой – задаётся битом 6 в регистре 0x02.
При записи данных сначала указывается адрес регистра, затем значение. Например, для установки 15 часов в 24-часовом формате: запись 0x02, затем 0x15.
Распиновка модуля реального времени и соединение с МК
Для взаимодействия с микроконтроллером используйте 4-проводной интерфейс I²C. Контакты модуля:
- VCC – питание +5 В.
- GND – общий провод.
- SDA – линия данных.
- SCL – тактовый сигнал.
Порядок соединения
Особенности настройки
Для корректной работы проверьте адрес устройства (0x68 в шестнадцатеричном формате). Убедитесь, что кварцевый резонатор на 32.768 кГц подключен без ошибок. Если используется батарейка для резервного питания, её номинал должен быть 3 В.
Чтение и запись данных, управление регистрами
Для взаимодействия с микросхемой используйте протокол I²C. Адрес устройства – 0x68. Перед началом обмена убедитесь, что шина свободна, и отправьте стартовый сигнал.
Запись текущего времени выполняется через регистры 0x00–0x06. Формат данных – BCD. Например, для установки 23 часа 59 минут передайте последовательность: 0x00 (секунды), 0x59 (минуты), 0x23 (часы). Биты 6 и 7 регистра часов (0x02) управляют режимом (12/24 часа).
Чтение показаний выполняется аналогично. После отправки адреса регистра (0x00), запросите данные. Полученные значения декодируйте из BCD в десятичный формат. Например, если регистр минут вернул 0x59, преобразуйте его в 59.
При сбоях питания проверьте регистр 0x0F (флаг остановки). Если бит 7 установлен в 1, часы не работали. Сбросьте его перед настройкой времени.
Для ускорения обмена данными применяйте пакетную запись. Отправьте стартовый адрес (0x00), затем до 56 байт (регистры 0x00–0x3F). Чтение также поддерживает пакетный режим.