Ds3231 схема модуля ардуино: Arduino и часы RTC DS3231
|Содержание
Модуль часов RTC DS3231
Если взглянуть на плату расширения DS3231 со стороны пайки, мы увидим две микросхемы и несколько радиодеталей.
Микросхема побольше это DS3231, вторая 24C32, это EEPROM память на 32кБ. Рядом с микросхемой памяти расположены
контакты A0 – A2. В них можно впаивать перемычки, изменяя адрес EEPROM для шины I2C. Это необходимо, когда стандартный
адрес занят.
На плате расширения присутствует диод, через который происходит зарядка дискового аккумулятора. На обратной стороне
расположен батарейный отсек.
Внимание!!! При использовании батарейки вместо аккумулятора, диод обязательно
выпаять.
Вывод RST микросхемы может использоваться для внешнего сброса, правда он в модуле не реализован.
Часы RTC поддерживают 24 часовой и 12 часовой формат времени. В модуле реализована поддержка секунд, минут, часов,
дней, даты, месяца и года. Есть два будильника и календарь. Благодаря внутренней электронике микросхемы DS3231, при
пропадании основного питания, происходит автоматическое переключение питания от аккумулятора.
Основные характеристики RTC модуля:
- календарь до 2100 года
- два будильника
- напряжение питания VCC : 2,3 — 5,5В
- напряжение батарейки VBAT : 2,3 — 5,5В
- ток потребления : 250 мкA
- ток потребления от батарейки : 3 мкA
- порог переключения на батарейку : 2,6 В
- Чип памяти: AT24C32 (32 Кб)
- Точность: ± 0.432 сек в день
- Поддерживаемый протокол: I2C
- Габариты: 38мм x 22мм x 15мм
Подключение модуля DS3231 к ардуино:
Плата часов RTC подключается к ардуино и им подобным контроллерам по шине I2C. Это двухпроводная шина передачи данных.
Вывод SCL используется для передачи тактирующих импульсов, а SDA для данных. Оба вывода подтягиваются к Vcc (+5 вольт)
резисторами 4,7 – 10кОм. На модуле DS3231 подтяжка уже организована.
Контроллер ардуино может работать с шиной I2C, для этого аналоговой вывод A4 совмещён с SDA, а вывод A5 совмещён с SCL.
Для подключения модуля DS3231 к ардуино, нужно соединить SDA c A4, SCL с A5 и подключить питание как на рисунке.
Для работы DS3231 с ардуино нужно подключить в свой скетч библиотеку для работы с часами RTC. Я пользуюсь библиотекой
скачанной с сайта https://github.com/jarzebski/Arduino-DS3231.
Ещё одна интересная библиотека: https://github.com/JChristensen/DS3232RTC.
Схема модуля DS3231 и назначение выводов:
- 32К — Выход с частотой частота 32 кГц
- SQW — Программируемый выход частоты прямоугольного сигнала. определяется битом INTCN регистра управления
- SCL — Линия тактирования (Serial CLock)
- SDA — Линия данных (Serial Data)
- VCC — Питание модуля
- GND — Земля
Соответствующие выводы противоположной стороны платы соединены между собой.
Модуль с ионистором:
Кроме модуля с батарейкой, выпускаются модули с ионистором – конденсатором высокой ёмкости. При отсутствии питания заряда
хватает на месяцы работы. Модуль не имеет микросхемы памяти. Благодаря экономии места в связи с отсутствием батарейного
отсека, плата DS3231 имеет меньшие размеры.
Советы по использованию:
Внутреннее питание модуля осуществляется от аккумулятора lir2032, которая подзаряжается от внешнего питания через
диод на плате. Если применить батарейку CR2032, то этот диод придётся выпаять.
Адреса микросхем I2C модуля DS3231:
Адрес I2C для DS3231 – 0x68;
Адрес I2C для памяти AT24C32 – 0x57;
Необходимое:
Изучаем электронику
Лёгкое изучение электроники и обзор радиодеталей необходимых для работы с Ардуино.
Уроки по электронике
Приборы и инструменты
Какие приборы и инструменты необходимы для начинающих электронщиков.
Читать далее…
DS3231 – подключение часов реального времени | RadioLaba.
ru
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#include <P16F628A.INC>
LIST p=16F628A
__CONFIG H’3F10′ ;Конфигурация микроконтроллера
errorlevel -302 ;не выводить сообщения с ошибкой 302 в листинге
Sec equ 0020h ;вспомогательные регистры счета
Sec1 equ 0021h ;
Sec2 equ 0022h ;
scetbit equ 0024h ;вспомогательный регистр счета кол-ва бит
perem equ 0025h ;вспомогательный регистр приема/передачи байта по spi, i2c
temp equ 0026h ;регистр температуры
perem_1 equ 0027h ;вспомогательный регистр двоично-десятичного преобр.
result equ 0028h ;вспомогательный регистр двоично-десятичного преобр.
dat_ind equ 0029h ;регистр данных для передачи по протоколу spi
adr_ind equ 002Ah ;регистр адреса для передачи по протоколу spi
second equ 002Bh ;регистр хранения секунд для установки времени
minut equ 002Ch ;регистр хранения минут для установки времени
hour equ 002Dh ;регистр хранения часов для установки времени
adr_i2c equ 002Eh ;регистры подпрограммы передачи данных интерфейса i2c
tmp_i2c equ 002Fh
slave_adr equ 0030h
data_i2c equ 0031h
flag equ 007Fh ;регистр флагов
#DEFINE int PORTB,0 ;линия прерывания INT/SQW DS3231
#DEFINE sda PORTB,1 ;линия SDA для подключения DS3231
#DEFINE scl PORTB,2 ;линия SCL для подключения DS3231
#DEFINE sda_io TRISB,1 ;направление линии SDA
#DEFINE scl_io TRISB,2 ;направление линии SCL
#DEFINE datai PORTB,5 ;линия входа данных драйвера MAX7219
#DEFINE cs PORTB,6 ;линия выбора драйвера MAX7219
#DEFINE clk PORTB,7 ;линия тактирования драйвера MAX7219
#DEFINE led PORTB,4 ;светодиод ошибки i2c
#DEFINE led_sec PORTB,3 ;светодиод индикации хода часов 1Гц
#DEFINE regim PORTA,2 ;кнопка Индикация — смены режима индикации
#DEFINE nast PORTA,3 ;кнопка Настройка — входа в режим настройки времени
#DEFINE ust PORTA,4 ;кнопка Установка — установка значения часов
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0000h ;начать выполнение программы с адреса 0000h
goto Start ;переход на метку Start
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Основная программа
Start movlw b’00000000′ ;установка значений выходных защелок порта A
movwf PORTA ;
movlw b’01000000′ ;установка значений выходных защелок порта B
movwf PORTB ;
movlw b’00000111′ ;выключение компараторов
movwf CMCON ;
bsf STATUS,RP0 ;выбрать 1-й банк
movlw b’00000111′ ;настройка линий ввода\вывода порта B
movwf TRISB ;RB0-RB2 — на вход, остальные на выход
movlw b’11111111′ ;настройка линий ввода\вывода порта A
movwf TRISA ;все линии на вход
bcf STATUS,RP0 ;выбрать 0-й банк
clrf flag ;сброс регистра флагов
call init_lcd ;вызов подпрограммы инициализации драйвера (MAX7219)
call viv_not ;вывод на индикаторы символов тире » —— «
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
movlw b’11010000′ ;адрес устройства (DS3231)
movwf slave_adr
;Запись 4-х байт в регистры приема/передачи по i2c
;здесь выполняется настройка 1-го будильника, сигнал каждую секунду
movlw data_i2c ;установка первого регистра приема/передачи по i2c
movwf FSR ;
movlw b’10000000′ ;данные для регистра секунд 1-го будильника
movwf INDF ;
incf FSR,F ;
movlw b’10000000′ ;данные для регистра минут 1-го будильника
movwf INDF ;
incf FSR,F ;
movlw b’10000000′ ;данные для регистра часов 1-го будильника
movwf INDF ;
incf FSR,F ;
movlw b’10000000′ ;данные для регистра даты/дня недели 1-го будильника
movwf INDF ;
movlw . 4 ;передача 4-х байта по i2c
movwf tmp_i2c ;
movlw 0x07 ;установка адреса регистра секунд 1-го будильника
movwf adr_i2c ;
call write_i2c ;вызов подпрограммы записи по интерфейсу i2c
call err_prov ;проверка на ошибки записи/чтения I2C
movlw .1 ;передача 1-го байта по i2c
movwf tmp_i2c ;
movlw 0x0E ;установка адреса регистра Control
movwf adr_i2c ;
movlw data_i2c ;установка первого регистра приема/передачи по i2c
movwf FSR ;
movlw b’00000101′ ;запуск тактового генератора, запрет функционирования вывода INT/SQW для
movwf INDF ;режима питания от батареи, частота импульсов на выходе INT/SQW 1Гц,
;выход INT/SQW задействован для генерации прерываний по будильнику,
;разрешение прерываний по 1-му будильнику
call write_i2c ;вызов подпрограммы записи по интерфейсу i2c
call err_prov ;проверка на ошибки записи/чтения I2C
met_2 movlw . 1 ;передача 1-го байта по i2c
movwf tmp_i2c ;
movlw 0x0F ;установка адреса регистра Status
movwf adr_i2c ;
movlw data_i2c ;установка первого регистра приема/передачи по i2c
movwf FSR ;
movlw b’00000000′ ;сброс бита OSF, запрет генерирования импульсов на выходе EN32kHz,
movwf INDF ;сброс флагов прерываний будильников A2F, A1F
call write_i2c ;вызов подпрограммы записи по интерфейсу i2c
call err_prov ;проверка на ошибки записи/чтения I2C
met_1 btfsc int ;опрос линии прерывания будильника
goto met_3 ;
bsf led_sec ;включение светодиода индикации хода часов
goto met_4 ;
met_3 bcf led_sec ;выключение светодиода индикации хода часов
btfsc nast ;опрос кнопки настройки часов
goto met_5 ;
call nast_time ;вызов подпрограммы установки времени
goto met_2 ;
met_5 btfsc regim ;опрос кнопки режима индикации
goto met_1 ;
met_6 call paus_knp ;
btfss regim ;
goto met_6 ;
btfss flag,2 ;изменение значения флага режима индикации
goto met_7 ;
bcf flag,2 ;сброс флага индикации, режим отображения часов
goto met_1 ;
met_7 bsf flag,2 ;установка флага индикации, режим отображения температуры и часов
goto met_1 ;
met_4 movlw . 1 ;передача 1-го байта по i2c
movwf tmp_i2c ;
movlw 0x11 ;установка адреса старшего регистра температуры
movwf adr_i2c ;
call read_i2c ;вызов подпрограммы чтения по I2C
call err_prov ;проверка на ошибки записи/чтения I2C
movf INDF,W ;копирование значения температуры в регистр temp
movwf temp
rd_time movlw .3 ;передача 3-х байт по i2c
movwf tmp_i2c ;
movlw 0x00 ;установка адреса регистра секунд
movwf adr_i2c ;
call read_i2c ;вызов подпрограммы чтения по I2C
call err_prov ;проверка на ошибки записи/чтения I2C
btfsc flag,2 ;опрос флага режима индикации
goto met_8 ;
call vivod ;вызов подпрограммы вывода значения часов на цифровое табло
goto met_2 ;
met_8 call vivod_temp ;вызов подпрограммы вывода температуры и часов на цифровое табло
goto met_2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DS3231 Модуль RTC Распиновка, конфигурация, пример схемы и техническое описание
27 марта 2018 — 0 комментариев
RTC означает Часы реального времени . Модули RTC представляют собой просто системы с памятью ВРЕМЕНИ и ДАТЫ, которые имеют настройку батареи, которая в отсутствие внешнего питания поддерживает работу модуля. Это поддерживает ВРЕМЯ и ДАТУ в актуальном состоянии. Таким образом, мы можем получать точные ВРЕМЯ и ДАТУ из модуля RTC, когда захотим.
Конфигурация выводов DS3231 RTC
DS3231 представляет собой шестиконтактное устройство, два из которых не являются обязательными для использования. Таким образом, у нас есть в основном четыре контакта. Эти четыре контакта выведены на другую сторону модуля с тем же именем.
Название контакта | Описание |
ВКЦ | Подключен к плюсу источника питания. |
ЗЕМЛЯ | Подключен к земле. |
ПДД | Контакт последовательных данных (интерфейс I2C) |
СКЛ | Вывод серийных часов (интерфейс I2C) |
СКВ | Выходной контакт прямоугольной волны |
32К | Выход генератора 32K |
МОДУЛЬ DS3231 RTC Особенности
- RTC считает секунды, минуты, часы и год
- Точность: от +2 частей на миллион до -2 частей на миллион для 0°C до +40°C, от +3,5 частей на миллион до -3,5 частей на миллион для -40°C до +85°C
- Цифровой датчик температуры с точностью ±3ºC
- Два будильника по времени суток
- Программируемый выход прямоугольной формы
- Регистр для старения отделки
- Интерфейс I2C 400 кГц
- Низкое энергопотребление
- Схема автоматического выключателя батареи при отключении питания
- CR2032 со сроком службы от двух до трех лет
- Объем для питья
Резервная батарея
МОДУЛЬ DS3231 RTC Технические характеристики
- Рабочее напряжение МОДУЛЯ DS3231: 2,3–5,5 В
- Может работать при НИЗКОМ напряжении
- Потребляет 500 нА на резервном аккумуляторе
- Максимальное напряжение на SDA, SCL: VCC + 0,3 В
- Рабочая температура: от -45°C до +80°C
Примечание: Полную техническую информацию можно найти в 9Техническое описание модуля 0025 RTC приведено внизу этой страницы.
Эквиваленты DS3231
DS1302, DS1307 и т. д.
Где используется МОДУЛЬ DS3231 RTC?
Для понимания использования МОДУЛЯ DS3231 RTC рассмотрите:
Случай 1: Где вы хотите точное время и дату. Хотя на рынке представлено множество модулей RTC, DS3231 является одним из самых популярных благодаря своей точности. Чип обновляет время точнее, чем большинство модулей.
Случай 2: Если проблема связана с энергопотреблением. МОДУЛЬ DS3231 RTC потребляет очень мало энергии для работы. Таким образом, этот модуль можно использовать в мобильных системах.
Вариант 3: Там, где требуется высокоскоростная связь. МОДУЛЬ DS3231 RTC, способный взаимодействовать с высокоскоростным интерфейсом TWI.
DS3231 также может работать с приложениями поиска в 24-часовом и 12-часовом форматах в системах GPS. С двумя будильниками и датчиком температуры на борту использование модуля DS3231 продвигается даже дальше, чем другие модули.
Как использовать МОДУЛЬ RTC DS3231
Как упоминалось ранее, единственный способ связи с этим модулем RTC – через интерфейс I2C . Данные отправляются на модуль или принимаются от модуля по интерфейсу I2C. Таким образом, мы должны получить информацию о ДАТЕ и ВРЕМЕНИ через этот интерфейс. Принципиальная схема по умолчанию интерфейса модуля RTC DS3231 показана ниже.
Как показано на принципиальной схеме модуль подключен к источнику питания +5В. Модуль может работать от регулируемой мощности +5 В, а более высокое напряжение может повредить модуль. Интерфейс I2C установлен, как показано на рисунке. Все, что вам нужно сделать, это подключить SDA модуля к SDA контроллера, а SCL подключить к SCL контроллера.
Связь между контроллером и модулем очень сложная. Обычно информация отправляется или принимается байт за байтом. Поэтому идеально использовать библиотеки, написанные для модуля DS3231. Использование библиотек упрощает общение. Все, что вам нужно сделать, это загрузить эти библиотеки и вызывать их в программах. Как только заголовочный файл включен, контроллер сам выполняет связь и предоставляет вам дату и время. Будильник также можно легко установить или изменить с помощью библиотек.
И когда питание отключается, чип модуля RTC автоматически получает питание от подключенного к нему аккумулятора. Так что время будет актуальным. И когда система перезагружается, контроллер может получать данные реального времени от модуля без ошибок.
Приложения
- Робототехника
- Игры
- серверов
- Компьютерная периферия
- GPS
- Электросчетчики коммунальные
2D-модель
Размеры в миллиметрах
Связанный пост
Комментарии
Arduino Модуль DS3231 RTC Tutorial
В этом проекте я расскажу о модуле DS3231 RTC, важных компонентах и функциях этого модуля и, наконец, покажу вам, как подключить модуль часов реального времени (RTC) DS3231 к Arduino.
Краткое описание
Введение
Часы реального времени или RTC — это устройство для измерения времени в форме интегральной схемы или ИС. RTC является неотъемлемым компонентом многих критичных ко времени приложений и устройств, таких как серверы, GPS, регистраторы данных и т. д. .
С 8051 я использовал модуль DS1307 RTC в проекте под названием СИСТЕМА ПАРКОВКИ НА ОСНОВЕ RFID . Что касается Arduino, я использовал один и тот же DS1307 RTC в ARDUINO ALARM CLOCK и ARDUINO ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ. РУКОВОДСТВО ПО DS1307 . Если вам нужна краткая справка, вы можете пройти по предоставленным ссылкам.
Кроме того, в учебнике по часам реального времени Arduino с использованием проекта DS1307 я говорил о необходимости RTC. Так что я больше не буду вдаваться в этот аспект. Я сразу перейду к интересующей меня ИС: ИС DS3231 RTC.
Краткое примечание о микросхеме реального времени DS3231
DS3231 — это микросхема реального времени, разработанная компанией Maxim Integrated. Это недорогая, чрезвычайно точная микросхема RTC со связью через интерфейс I2C. Интересной особенностью DS3231 RTC IC является то, что он имеет встроенный кварцевый генератор и датчик температуры, поэтому вам не нужно подключать внешний кварц.
[adsense2]
Доступен в пакете SO-16. Хотя для работы требуется только 8 контактов из доступных 16 контактов, интеграция кристалла делает ИС более громоздкой, и, следовательно, она упакована как 16-контактная ИС вместо 8-контактной ИС.
На следующем рисунке показана схема контактов микросхемы RTC DS3231.
Описание контактов микросхемы DS3231
Что касается описания контактов микросхемы DS3231, в следующей таблице дается простой обзор функций контактов.
Номер контакта | Название контакта | Описание |
1 | 32 кГц | Выход 32 кГц |
2 | В СС | Контакт питания постоянного тока |
3 | INT/SQW | Активное прерывание по низкому уровню или прямоугольный сигнал на выходе |
4 | РСТ | Активный НИЗКИЙ Сброс |
5 – 12 | НЗ | Нет соединения |
13 | ЗЕМЛЯ | Земля |
14 | В БАТ | Вход резервного питания от батареи |
15 | ПДД | Последовательный ввод/вывод данных |
16 | СКЛ | Последовательный ввод часов |
ПРИМЕЧАНИЕ: Контакты 5-12 являются размыкающими контактами. Их можно привязать к GND.
Модуль DS3231 RTC
Используя микросхему DS3231 в качестве основного компонента, несколько производителей разработали модули DS3231 RTC со всеми необходимыми компонентами. Почти все доступные сегодня модули состоят из дополнительной ИС 24С32Н (или чего-то подобного). Эта вторичная микросхема представляет собой микросхему EEPROM размером 32 КБ.
Поскольку микросхемы RTC и EEPROM подключены через протокол I2C, вам не потребуются дополнительные контакты, поскольку оба этих устройства I2C могут действовать как ведомые, а микроконтроллер действует как ведущий.
Модуль DS3231 RTC, используемый в этом проекте, показан на изображении ниже.
Поскольку RTC предназначен для поддержания времени независимо от источника питания, вы можете подключить 3-вольтовую литиевую батарею CR2032 к IC RTC, чтобы часы тикали. В модуле DS3231 предусмотрена возможность подключения батареи с помощью держателя батареи, расположенного на задней панели.
Компоненты и контакты модуля DS3231 RTC
Как упоминалось ранее, микросхема DS3231 и микросхема EEPROM 24C32 являются основными компонентами типичной платы модуля DS3231 RTC. Кроме того, есть несколько других компонентов, таких как светодиод включения питания, несколько резисторов, конденсаторы, держатель батареи и контакты для подключения к микроконтроллеру.
На следующем рисунке показаны компоненты и контакты модуля RTC DS3231.
Взаимодействие модуля DS3231 RTC с Arduino
Если вы помните более ранний проект с использованием адаптера карты MicroSD, я настроил простое приложение регистрации данных, в котором данные с датчика фиксируются и сохраняются на карте microSD в виде текстовый файл.
Интегрируя часы реального времени, такие как DS3231, в вышеупомянутый проект, вы можете отслеживать журнал данных с точными сведениями о времени.
Следовательно, интерфейс модуля DS3231 RTC с Arduino имеет множество применений и преимуществ.
Принципиальная схема
Необходимые компоненты
- Arduino UNO
- Модуль часов реального времени DS3231
- ЖК-дисплей 16×2
- Мини-макет
- потенциометр 10 кОм
- Соединительные провода
Схема
Во-первых, позвольте мне начать соединения между Arduino и DS3231. Поскольку интерфейс между ними — I2C, определите контакты I2C на плате Arduino (если вы используете любую другую плату, кроме UNO).
В Arduino UNO A4 и A5 являются контактами SDA и SCL. Соедините эти контакты с соответствующими контактами SDA и SCL модуля DS3231. Также подключите VCC и GND модуля RTC к +5V и GND Arduino.
Для просмотра вывода я использовал ЖК-модуль. Подключите контакты RS и E ЖК-дисплея к контактам 7 и 6. Подключите D4-D7 ЖК-дисплея к 5-2 Arduino.
Код
Я использовал специальную библиотеку под названием «RTClib» от Adafruit (которая является разветвленной версией библиотеки RTC от JeeLab).