Адрес i2c модуля ds3231 и его настройка

0
10

Ds3231 адрес i2c

Для взаимодействия с чипом DS3231 через двухпроводную шину необходимо указать 0x68 в шестнадцатеричном формате. Этот код фиксирован и не требует переключения перемычек на плате.

Проверить корректность соединения можно с помощью сканирования шины. Если устройство не обнаруживается, убедитесь в отсутствии конфликтов – другие компоненты не должны использовать тот же идентификатор. Напряжение питания должно находиться в диапазоне 2.3–5.5 В.

Для чтения показаний часов потребуется отправить последовательность байтов. Первый байт – регистр начального адреса, например, 0x00 для секунд. Затем принимается 7 байт, содержащих текущее время и дату в закодированном виде.

Работа с микросхемой DS3231: выбор идентификатора и конфигурация

Для взаимодействия с этим чипом реального времени укажите в коде 0x68 (шестнадцатеричный формат). Если требуется альтернативный вариант, переведите ножку A0 в высокий уровень – тогда значение изменится на 0x69.

Изменение идентификатора

Проверка подключения

Используйте сканер шины (например, Arduino-скетч Wire Scanner). В списке обнаруженных устройств должны отобразиться 0x68 или 0x69.

Как найти идентификатор DS3231 на шине

Подключите микросхему к контроллеру, соблюдая распиновку SDA и SCL. Запустите сканирование шины с помощью скетча для Arduino:

#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial);
Serial.println("Поиск устройств...");
}
void loop() {
byte error, response;
for (byte i = 8; i < 120; i++) {
Wire.beginTransmission(i);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("Найдено устройство: 0x");
Serial.println(i, HEX);
delay(1000);
}
}
}

В мониторе порта отобразится шестнадцатеричное значение, обычно 0x68. Если используется перемычка для смены идентификатора, возможен вариант 0x57.

Для Raspberry Pi выполните команду в терминале:

sudo i2cdetect -y 1

В таблице результатов ищите значение 68 или 57.

Если ответа нет, проверьте питание, целостность соединений и правильность подключения линий SDA/SCL. Подтягивающие резисторы 4.7 кОм обязательны при отсутствии встроенных.

Настройка времени и калибровка DS3231 через I2C

Для записи текущего времени в микросхему подключите часы к контроллеру, используя стандартный идентификатор 0x68. Запишите данные в регистры 0x00–0x06, соблюдая формат BCD: секунды, минуты, часы, день недели, число, месяц, год.

Коррекция точности хода

Погрешность регулируется через регистр 0x0E. Запишите значение от 0x00 до 0x1F для замедления или 0x20–0x3F для ускорения. Шаг коррекции – ±0,12 ppm на единицу.

Чтение температуры

Термокомпенсация выполняется автоматически, но данные можно получить из регистров 0x11 (целая часть) и 0x12 (дробная). Температура обновляется каждые 64 секунды.

Проверьте соединение осциллографом: частота линии SCL должна быть 100 кГц (стандартный режим) или 400 кГц (быстрый). Убедитесь, что подтяжка 4,7 кОм установлена на обеих сигнальных линиях.