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 комментариев

          Модуль часов реального времени DS3231
          Схема контактов модуля RTC DS3231

      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).

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

      Ваш адрес email не будет опубликован. Обязательные поля помечены *