Ds1307 схема включения: Урок 11. Работаем с DS1307 микросхемой часов реального времени

Содержание

Часы реального времени DS1307 с модулем памяти 24С32

Модуль часов реального времени на микросхеме DS1307

Технические характеристики:

Рабочая температура: -40°С — +85°С
Температура хранения данных: -55°С — +125°С
Напряжение питания:  5 В
Максимальное потребление тока
Погрешность хода: ±2 минуты в год
Программируемый будильник
Поддержка функции таймера
Низкое энергопотребление (от 0,25 мА при питании от 3В и температуры 25°С)
Работа по шине I2C
Размер: 27 х 28 х 8.4 мм

Небольшой модуль, выполняющий функции часов реального времени.Непрерывный отсчет времени происходит благодаря автономному питанию от батареи, установленной в модуль. Также модуль содержит память EEPROM объемом 32 Кбайт, сохраняющую информацию при отключении всех видов питания. Память и часы связаны общей шиной интерфейса I2C. На контакты модуля выведены сигналы шины I2C. При подключении внешнего питания происходит подзарядка батареи через примитивную цепь подзарядки.

На плате имеется место для монтажа цифрового датчика температуры DS18B20. В комплект поставки он не входит.
Использование этого устройства происходит при измерении временных интервалов более недели приборами на основе микроконтроллера. Задействовать собственные ресурсы МК для этой цели неоправданно, а зачастую невозможно. Обеспечить бесперебойное питание на длительный срок дорого, установить батарею для питания МК нельзя из-за значительного тока потребления. Тут на выручку приходит модуль часов реального времени DS1307.
Также модуль часов реального времени DS1307 благодаря наличию собственной памяти позволяет регистрировать данные событий, происходящих несколько раз в сутки, например измерения температуры. Журнал событий в дальнейшем считывается из памяти модуля. Эти возможности позволяют использовать модуль в составе автономной автоматической метеостанции или для исследований климата в труднодоступных местах: пещерах, вершинах скал. Становится возможным регистрировать параметры архитектурных сооружений, например опор мостов и других. При оснащении прибора радиосвязью достаточно установить его в исследуемой местности.

Электрическая схема.

Устройство обменивается данными с электроникой прибора с помощью сигналов SCL и SDA. Микросхема IC2 – часы реального времени. Конденсаторы С1 и С2 снижают уровень помех в линии питания VCC. Резисторы R2 и R3 обеспечивают надлежащий уровень сигналов SCL и SDA. С вывода 7 микросхемы IC2 поступает сигнал SQ, состоящий из прямоугольных импульсов частотой 1 Гц. Он используется для проверки работоспособности МС IC2. Компоненты R4, R5, R6, VD1 обеспечивают подзарядку батареи BAT1. Для хранения данных модуль часов реального времени DS1307 содержит микросхему IC1 – долговременная память. US1 – датчик температуры. Сигналы модуля и линии питания выведены на соединители JP1 и P1.

Информационная шина

I2C это стандартный последовательный интерфейс посредством двух сигнальных линий SCL, SDA и общего провода. Линии интерфейса образуют шину. К линиям интерфейса I2C можно подключить несколько микросхем, не только микросхемы модуля. Для идентификации микросхемы на шине, а именно записи данных в требуюмую МС и определения от какой МС поступают данные.  Каждая микросхема имеет уникальный адрес для проложенной шины. DS1307 имеет Адрес 0x68. Он записан на заводе-изготовителе. Микросхема памяти имеет адрес 0x50. В программное обеспечение Arduino входит программная библиотека, обеспечивающая поддержку I2C.

Микросхема часов реального времени

DS1307 обладает низким энергопотреблением, обменивается данными с другими устройствами через интерфейс I2C, содержит память 56 байт. Содержит часы и календарь до 2100 г. Микросхема часов реального времени обеспечивает другие устройства информацией о настоящем моменте: секунды, минуты, часы, день недели, дата. Количество дней в каждом месяце учитывается автоматически. Есть функция компенсации для високосного года. Имеется флаг, чтобы определить, работают часы в 24-часовом режиме или 12-часовом режиме. Для работы в режиме 12 часов микросхема имеет бит, откуда считываются данные для передачи о периоде времени: до или после обеда.

Микросхема долговременной памяти

ATHYC232 24C32N относится к классу памяти EEPROM серии AT24Cxx. Для этой МС часто применяется наименование AT24C32 или 24C32. Объем хранимых данных 32 Кбайт. Производится компанией Microchip, известной своими микроконтроллерами PIC или не менее известной компанией Atmel. Передача и прием данных происходит по шине I2C. Данные хранятся при отключенном питании на протяжении десятков лет. Количество циклов записи-стирания достигает сотен тысяч.

Батарея

В держатель на обратной стороне платы устанавливается литиевая дисковая батарея CR2032. Она выпускается множеством производителей, например изготовленная фирмой GP обеспечивает напряжение 3,6 В и ток разряда 210 мАч. Батарея подзаряжается во время включения питания, с таким режимом работы литиевой батареи мы сталкиваемся на материнской плате компьютера.

DS X 8 часы реального времени с последовательным интерфейсом

IN1307N КМОП БИС ЧАСОВ РЕАЛЬНОГО ВРЕМЕНИ

КМОП БИС ЧАСОВ РЕАЛЬНОГО ВРЕМЕНИ С ПОСЛЕДОВАТЕЛЬНЫМ ИНТЕРФЕЙСОМ, 56 Х 8 ОЗУ Микросхема IN1307 является полными двоично-десятичными цифровыми часами с календарем, имеет дополнительные 56 байт энергонезависимого

Подробнее

Микросхема часов реального времени 1512АИ2Т

Микросхема часов реального времени Микросхема часы реального времени с интерфейсом I 2 C. Микросхема предназначена для отсчета времени в устройствах автоматики и вычислительной техники аппаратуры специального

Подробнее

Краткий обзор интерфейса I 2 C

Краткий обзор интерфейса I 2 C Статья основывается на технической документации компании Microchip Technology Incorporated, USA. ООО Микро-Чип Москва — 2001 Распространяется бесплатно. Полное или частичное

Подробнее

БИС КР145ИК1901, К145ИК1901

БИС КР145ИК1901, К145ИК1901 Данная техническая спецификация является ознакомительной и не может заменить собой учтенный экземпляр технических условий или этикетку на изделие. Микроконтроллер БИС К145ИК1901

Подробнее

IZ1990 КМОП БИС ДЛЯ ЭЛЕКТРОННОГО КЛЮЧА

КМОП БИС ДЛЯ ЭЛЕКТРОННОГО КЛЮЧА ОПИСАНИЕ КМОП микросхема представляет собой электронный носитель уникального 64-битного цифрового кода. Код хранится во внутренней энергонезависимой памяти. Обмен данными

Подробнее

Микросхема IN93LC46AN/AD, IN93LC46BN/BD, IN93LC46СN/СD, IN93AA46AN/AD, IN93AA46BN/BD, IN93AA46СN/СD (аналог САТ93С46 ф.catalyst)

Микросхема IN93LC46AN/AD, IN93LC46BN/BD, IN93LC46СN/СD, IN93AA46AN/AD, IN93AA46BN/BD, IN93AA46СN/СD (аналог САТ93С46 ф.catalyst) электрически стираемое перепрограммируемое ПЗУ с информационной емкостью

Подробнее

IW4013B Два триггера D — типа

ТЕХНИЧЕСКИЕ ДАННЫЕ IW0B Два триггера D — типа Микросхема IW0B состоит из двух идентичных, независимых D-триггеров. Каждый триггер содержит вход данных, вход установки, вход сброс, тактовый вход, а также

Подробнее

Десятичный счетчик делитель

ыходы ТЕХНИЧЕСКИЕ ДАННЫЕ Десятичный счетчик делитель Микросхема IW0B представляет собой -ступенчатый счетчик Джоона с разрядами выходного кода. Микросхема имеет входы тактовых импульсов (), разрешения

Подробнее

IZ602 МИКРОСХЕМА ДРАЙВЕРА ЖКИ

МИКРОСХЕМА ДРАЙВЕРА ЖКИ IZ602 Микросхема универсального драйвера ЖКИ IZ602 предназначена для управления сегментных ЖК дисплеев с числом элементов изображения до 128 (32 х 4). Наличие набора команд микросхемы

Подробнее

Автономный CAN — контроллер 5559ИН22Т

Автономный CAN — контроллер Микросхема предназначена для осуществления приема-передачи данных между устройствами в составе разветвленных локальных сетей по CAN-интерфейсу (через CAN-трансивер) и основным

Подробнее

К572ПВЗ, КН572ПВЗ, КР572ПВЗ

К572ПВЗ, КН572ПВЗ, КР572ПВЗ Микросхемы представляют собой 8-разрядный АЦП последовательного приближения, сопрягаемый с микропроцессором. Связь с микропроцессорами осуществляется в режиме записи и преобразования

Подробнее

3 логических элемента «3ИЛИ-НЕ»

ТЕХНИЧЕСКИЕ ДАННЫЕ 3 логических элемента «3ИЛИ-НЕ» по назначению выводов идентична LS/ALS27. ходные уровни микросхемы совместимы со стандартными КМОП выходами; с согласующими резисторами, совместимы с

Подробнее

Сдвоенный J-K триггер

ТЕХНИЧЕСКИЕ ДАННЫЕ Сдвоенный J-K триггер Микросхема состоит из двух независимых J-K триггеров с разделенными входами установки, сброса и тактовым. Данные воспринимаются, когда сигнал Clock — низкий и передаются

Подробнее

Технические спецификации 5590КН1Т

Широкополосный видеомультиплексор Микросхема 5590КР1Т широкополосного видео мультиплексора 4 в 1 предназначена для использования в аппаратуре видеомаршрутизации, оптических и радиолокационных системах,

Подробнее

Основные характеристики: IN18В20D

IN18В20D МИКРОСХЕМА ЦИФРОВОГО ДАТЧИКА-ИЗМЕРИТЕЛЯ ТЕМПЕРАТУРЫ ПРО- МЫШЛЕННОГО ДИАПАЗОНА (функциональный аналог микросхема DS18B20 ф.»maxim-dallas Semiconductor») Микросхема IN18B20D — цифровой датчик-измеритель

Подробнее

IL34C86 Дифференциальный линейный приёмник.

Дифференциальный линейный приёмник. Микросхема IL34C86 состоит из четырех дифференциальных линейных приёмников и является микросхемой, соответствующей международным стандартам передачи данных RS-422, RS-423,

Подробнее

Техническая спецификация 5559ИН17

Микросхема 5559ИН17Т четырехразрядный дифференциальный магистральный приемник последовательных данных по стандарту RS-422 Функциональный аналог AM26C32, ф.texas Instrument, США. Микросхемы представляют

Подробнее

Микроконтроллер 1880ВE81У

Микроконтроллер 1880ВE81У Восьмиразрядная однокристальная ЭВМ с памятью команд (ПЗУ), памятью данных (ОЗУ) и блоком контроллера мультиплексного канала связи по ГОСТ Р 52070-2003. КМОП БИС микроконтроллера

Подробнее

IN74HC00 Четыре логических элемента 2И-НЕ

Четыре логических элемента 2И-НЕ A по назначению выводов идентична LS/ALS. Входные уровни микросхемы совместимы со стандартными К- МОП ми; с согласующими резисторами совместимы с LS/ALS TTЛ ми. Выходные

Подробнее

Общее описание. Модуль позволяет

Жидкокристаллический модуль MT 12864A Общее описание Жидкокристаллический модуль MT 12864A, состоит из БИС контроллера управления и ЖК панели. Внешний вид модуля изводства ОАО «АНГСТРЕМ» (www.angstrem.ru),

Подробнее

Два D триггера с установкой и сбросом

ТЕХНИЧЕСКИЕ ДАННЫЕ Два D триггера с установкой и сбросом Микросхемы IN74HC74A по назначению выводов совместимы с микросхемами серий LS/ALS74. ходные уровни напряжений совместимы со стандартными К-МОП ми.

Подробнее

Общее описание. Модуль позволяет

Жидкокристаллический модуль MT 6464B Общее описание Жидкокристаллический модуль MT 6464B, состоит из БИС контроллера управления и ЖК панели. Внешний вид модуля приведен на рис. 1. Контроллер управления

Подробнее

Модуль часов DS3231 (RC025).

Модуль часов DS3231 (RC025). Микросхема DS3231 является часами реального времени с температурной компенсацией TCXO. Погрешность составляет ±2 минуты за год при температуре окружающей среды от -40 С до

Подробнее

16 Часы реального времени

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

Подробнее

DS1307-коммутационная плата

Похоже, это просто пропуск строки в таблице . В разделе описания вывода на странице 6

Контакт 5- SDA:

Последовательный ввод / вывод данных. SDA — это ввод / вывод данных для последовательного интерфейса I2C. Вывод SDA имеет открытый сток и требует внешнего подтягивающего резистора. Напряжение подтягивания может достигать 5,5 В независимо от напряжения на VCC.

Контакт 6- SCL:

Последовательный вход часов. SCL — это тактовый вход для интерфейса I2C, который используется для синхронизации движения данных по последовательному интерфейсу. Напряжение подтяжка может быть до 5,5В независимо от напряжения на VCC.

Кажется, что он просто пропускает строку, в которой говорится, что штифт является открытым стоком и требует внешнего подтягивания, но затем добавляет ту же строку позже, указывая значение подтягивания. Если посмотреть на более старые версии таблицы данных, когда Maxim Integrated была Maxim-Dallas и даже просто Dallas Semi, упущение было всегда.

Тем не менее, типовая схема подключения всегда была правильной и показывала подтяжку, необходимую на обеих линиях i2c, как того требует стандарт i2c.

Что касается контакта SQW / Out, подтягивание требуется только в том случае, если вы используете шнур. Его можно отключить в настройках rtc (или, лучше сказать, отключается, нужно включить). Наличие на линии подтягивающего резистора, когда вы не собираетесь его использовать, будет тратить энергию, бесполезно разряжая батарею (медленно) в аккумуляторных приложениях. Как указано в таблице данных, его можно оставить плавающим, то есть без подтягивания, если в этом нет необходимости. Устройство Adafruit разбивает его для вашего удобства, если вы действительно хотите его использовать, но вам нужно добавить внешнее подтягивание, если вы хотите (или использовать внутреннюю опцию подтягивания Arduino)

Простые часы на микроконтроллере AVR

Схема и программа очень простых часов на микроконтроллере AVR с использованием микросхемы реального времени DS1307

Доброго дня уважаемые радиолюбители!
Приветствую вас на сайте “Радиолюбитель“

Сегодня, уважаемые радиолюбители, вашему вниманию предлагается очень простая схема часов на микроконтроллере AVR и часов реального времени с последовательным интерфейсом I2C DS1307.

Конструкция собрана на микроконтроллере ATyni26 (просто именно этот МК был под рукой). Но вы можете применить любой другой МК, главное чтобы у него было 13 свободных входов – 11 для вывода текущего времени на четырехразрядный семисегментный светодиодный индикатор и 2 вывода – на кнопки установки и коррекции времени.

Схема часов:

В схеме применены следующие детали:
— Микроконтроллер – ATyni26 в DID корпусе
– Часы реального времени – DS1307 в DIP корпусе
– Кварц – 32,768 кГц, с входной емкостью 12 пф (можно взять с материнской платы компьютера), от этого кварца зависит точность хода часов
– резервное питание DS1307 – 3 вольтовый литиевый элемент CR2032
– 4-разрядный семисегментный светодиодный индикатор – FYQ-5641UB -21 с общим катодом (ультраяркий, голубого цвета свечения)
– все транзисторы – NPN-структуры, можно применить любые (КТ3102, КТ315 и их зарубежные аналоги), я применил ВС547С
– микросхемный стабилизатор напряжения типа 7805
– все резисторы мощностью 0,25 ватт
– полярные конденсаторы на рабочее напряжение 50 вольт
Ток потребления устройством составляет до 30 мА.
Для питания конструкции можно использовать любое ненужное зарядное устройство от телефона или подходящий блок питания с выходным напряжением 7-9 вольт.
Общение микроконтроллера с часами DS1307 происходит по шине I2C и организовано программным путем.
Батарейку резервного питания часов DS1307 можно и не ставить, но в этом случае, при пропадании напряжения в сети, текущее время придется устанавливать заново.
Печатная плата устройства не приводится, конструкция была собрана в корпусе от неисправных механических часов. Светодиод (с частотой мигания 1 Гц) служит для разделения часов и минут в конструкции.

Работа программы.
Тактовая частота работы микроконтроллера – 1 мГц (заводская установка, FUSE-биты трогать и устанавливать не надо). Размер программы – 1 килобайт.
При запуске программы происходит:
— запуск таймера Т0 с предустановленной частотой СК/8 и вызовом прерывания по переполнению (при такой предустановленной частоте вызов прерывания происходит каждые 2 миллисекунды)
– инициализация портов (порты РА0-6 и РВ0-3 настраиваются на вывод, РА7 и РВ6 на ввод)
– инициализация шины I2C (выводы РВ4 и РВ5)
– при первом запуске, или повторном запуске при отсутствии резервного питания DS307, проверяется 7 бит (СН) нулевого регистра DS1307 и происходит переход в первоначальную установку текущего времени. При этом, кнопка S1 – для установки времени, кнопка S2 – переход к следующему разряду. Установленное время – часы и минуты записываются в DS1307 (секунды устанавливаются в ноль), а также вывод SQW/OUT (7-й вывод) настраивается на генерацию прямоугольных импульсов с частотой 1 Гц
– разрешается глобальное прерывание
– программа переходит в цикл с опросом копки S2
При переполнения счетчика таймера Т0 программа переходит к обслуживанию прерывания (каждые 2 мс):
– считывается текущее время с DS1307 которое записывается в четыре переменные SRAM (десятки часов, единицы часов, десятки минут, единицы минут)
– подпрограммой вывода текущего времени производится динамическая индикация текущего времени на светодиодном индикаторе
– при нажатии кнопки S2 программа запрещает глобальное прерывание и переходит в подпрограмму коррекции времени (кнопками S1 и S2 устанавливаются десятки и единицы минут, затем, с 0 секунд, нажатием кнопки S2 происходит запись уточненного времени в DS1307, разрешение глобального прерывания и возвращение в основную программу).

Примененные в схеме часы DS1307 позволяют выводить на индикацию секунды, минуты, часы, день недели, дату и год.
Если в схеме вместо светодиодных индикаторов применить LCD дисплей, к примеру WH0802 (двухстрочный, с выводом восьми символов в строке) или аналогичный, то можно организовать полноценные часы с полным выводом текущего времени, а питание устройства организовать от гальванических элементов или аккумуляторных батарей.

Расположение выводов микроконтроллера ATyni26:

Расположение выводов DS1307:

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

Рекомендуемая схема подключения кварца к DS1307:

Общение микроконтроллера с часами реального времени DS1307 организовано программным путем, поэтому в схеме можно применить микроконтроллер у которого нет аппаратного модуля I2C.

Программа написана в среде Algorithm Builder, и если вы используете эту программную среду, то сможете ознакомиться с алгоритмом общения микроконтроллера с другими устройствами по шине I2C (в алгоритме подробно прокомментирована каждая строчка).


  Даташит DS1307 на русском (312.1 KiB, 2,013 hits)

  Часы на ATyni26 в Algorithm Builder (8.2 KiB, 1,963 hits)

  Программа часов на ATyni26 в HEX коде (3.1 KiB, 1,827 hits)

  Схема часов в формате sPlan7 (119.3 KiB, 7,472 hits)



Модуль часы реального времени DS1307 для Arduino

Модуль часы реального времени DS1307 используется в макетах и проектах на микроконтроллерах для снятия с него показаний реальной текущей даты и времени. Эта информация используется для мониторинга и регистрации даты и времени, а также для управления с ее помощью различными устройствами.
Для использования модуля нужно сначала собрать с его помощью макет, создать программу для управления и начинать работу.
Управление модулем реального времени осуществляется из Arduino контроллеров или других управляющих микропроцессорных устройств через IIC (Inter-Integrated Circuit) интерфейс с помощью специальных программ.
В микросхеме DS1307 имеется программируемый генератор прямоугольных импульсов, позволяющий вырабатывать одну из четырех частот (1Гц, 4096Гц, 8192Гц или 32768Гц).
Модуль часы реального времени DS1307 имеет две колодки контактов – Р1 и Р2, а также слот для подключения батареи питания 2032 85 мАч.
Колодка Р1 имеет контакты SQ, DS, SCL, SDA, VCC, GND, BAT.
Колодка Р2 имеет контакты DS, SCL, SDA, VCC, GND.
Питание модуля осуществляется или от встроенной батареи, или от Arduino контроллера (другого управляющего микропроцессорного устройства), или от внешего источника питания.
В микросхеме DS1307 имеется встроенная схема, определяющая аварийное отключение питания и автоматически подключающая резервную батарейку. При этом отсчет времени продолжается и после восстановления питания часы показывают правильное время.

Характеристики:

работа модуля осуществляется через IIC (Inter-Integrated Circuit) интерфейс;
модуль ведет отсчет времени – часов, минут, секунд, различает AM/PM;
модуль ведет отсчет даты – год, месяц, день, учитывает высокосные года;
в памяти модуля записан точный календарь до 2100 года с учетом высокосных годов;
модуль имеет 56 байт энергозависимой памяти, доступной пользователю.
батарея питания: CR2032 85 мАч;
габариты: 28 х 25 х 8 мм;
вес: 6 г.

Схема подключения к Arduino контроллеру:

Организация памяти микросхемы:

Часы реального времени – модуль для Arduino

Для корректной работы многих электронных устройств необходимо знать точное время и дату. К таким устройствам можно отнести не только всем известные «часы на микроконтроллере», которые существуют в бесчисленном множестве вариантов, но и различные схемы автоматизации от простой системы автоматического цветополива, до полноценного умного дома. Разумеется, в продаже имеется достаточное количество различных специализированных микросхем реального времени [1]. Данный модуль был приобретен на Aliexpress.

Модуль поставляется в запаянном антистатическом пакете, габариты 45 х 23 х 15 мм, масса 8,8 г вместе с элементом питания CR2032.

На печатной плате устройства имеется три крепежных отверстия диаметром 2 мм. Для автономной работы часов на плате имеется колодка для установки элемента питания типоразмера CR2032. На плате модуля имеется светодиод для индикации внешнего питания.

Всего модуль имеет шесть основных выводов. VCC и GND питание +5 В (допустимо +3,3 В) и общий провод соответственно. SCL и SDA – контакты интерфейса I2C. Этот последовательный интерфейс позволяет организовать обмен информацией между 128 устройствами по двухпроводной линии [2-4]. Для платы Arduino UNO следует подключать SCL к А5, а SDA к А4.
SQW – программированный выход который можно использовать для генерации прерываний или генерации меандра с частотой 1 Гц, 1024 Гц, 4096 Гц или 8192 Гц. 32K – меандр с фиксированной частотой импульсов 32768 Гц [5-6]

Ток, потребляемый модулем от платы Arduino UNO, составляет 5,3 мА при напряжении 5В и 2 мА при 3.3 В.

Для работы с данным модулем можно использовать стандартные библиотеки «DS1307RTC» и «TimeLib» [7]. При первом включении необходимо установить текущее время и дату. Это можно сделать, например, с помощью программы time_set [8-9]. Визуализировать информацию о дате и времени, можно с помощью, к примеру, TimeRTCSet – стандартного примера из библиотеки «TimeLib».

В целом сравнительно простой в программировании модуль, с помощью которого можно заставить ваше устройство ориентироваться во времени. Приятным бонусом является возможность осуществлять измерение температуры с помощью данного модуля [10].

Полезные ссылки

  1. https://arduinomaster.ru/datchiki-arduino/arduino-chasy-rtc-ds1307-ds1302-ds3231/
  2. Д. Изучаем Arduino: инструменты и методы технического волшебства: Пер. с англ. — СПб.: БХВ-Петербург, 2015. — 336 с.
  3. http://robocraft.ru/blog/communication/780.html
  4. http://cxem.net/mc/mc316.php
  5. http://radiolaba.ru/microcotrollers/ds3231-podklyuchenie-chasov-realnogo-vremeni.html
  6. http://www.avrki.ru/articles/content/ds3231/
  7. http://blog.rchip.ru/podklyuchenie-chasov-realnogo-vremeni-rtc-ds3231-k-arduino/
  8. https://voltiq.ru/connecting-ds3231-to-arduino/
  9. http://radiolis.pp.ua/arduino/24-chasy-realnogo-vremeni-ds3231sn-zs-042-podkljuchenie-k-arduino
  10. http://blog.rchip.ru/oled-chasy-termometr-na-arduino-i-ds3231/

Все файлы в архиве. Обзор подготовлен для 2Схемы.ру – Denev

Часы электронные со светодиодным дисплеем высотой 2,3″ (58мм) ADV-2348M

Часы электронные ADV-2348M являются модернизированной версией часов ADV-2348.

Основные отличия: Микросхема реального времени DS1307 заменена на более функциональную M41T56, что позволило реализовать функцию коррекции хода. Также в этой версии есть возможность использования будильника и термометра. В обоих версиях используется одна и та же печатная плата. Имея одну из версий (например ADV2348) заменив всего одну микросхему Вы получаете часы с расширенным функционалом.

Описание функционала часов.

Электронные часы построены на специализированной микросхеме M41T56 с интерфейсом I2C.Микросхема имеет возможность подключения кварцевого резонатора на частоту 32768Гц а так же резервного источника питания для обеспечения непрерывного хода часов при отключении внешнего источника питания.Термометр построен на специализированной микросхеме LM75 с интерфейсом I2C.Так же отличительной особенностью данной конструкции является наличие больших семисегментных индикаторов, которые управляются специальными микросхемами драйверов. Управление устройством возложено на микроконтроллер AVR ATMEGA48 который считывает текущие значения времени из микросхемы часов преобразует данные в пригодные для отображения на индикаторе а также выполняет некоторые сервисные функции, связанные с регулировками яркости индикатора, установками времени и дополнительными функциями.Текущая версия программного обеспечения позволяет пользователю регулировать яркость индикатора часов, устанавливать часы, день недели, дату, месяц, год, режим будильника, осуществлять сброс секунд при корректировке времени, (при использовании микросхемы M41T56 корректировку секунд), а также отображать температуру. Питание устройства необходимо осуществлять от внешнего источника питания с напряжением 12 вольт на рисунке 1 представлена принципиальная схема устройства

Схема

Описание принципиальной схемы:

1. Разъёмы J2,J3 служат для подключения внешнего питания

2. Разъём J1 служит для внутрисхемного программирования

3. Разъём J5 необходим для подключения внешней клавиатуры

4. Разъём J4 служит для подключения внешних устройств с интерфейсом I2C( используется для подключения датчика температуры)

Описание подключения программатора

Программирование данного устройства осуществляется с помощью внутрисхемного последовательного интерфейса SPI линии программирования подключаются к разъёму J1 (разъём программирования) см рис.2в следующем порядке:

1 – RESET

2 – GND

3 – SCK

4 – MISO

5 – MOSI

Примечание: конденсаторы С1,С7,С8 могут стать причиной сбоев при программировании и во избежание ошибок данные элементы желательно устанавливать после программирования процессора

Порядок сборки устройства:

1. Установить микросхему U2 и конденсаторы С2,С3,С4,С16 а также разъёмJ3 подав питание напряжением 12В от стабилизированного блока питания убедится в наличии на крайних ножках микросхемы U2 напряжений + 12в и +5В относительно минусовой клеммы источника питания.

2.Отключив источник питания, устанавливаем микросхему микроконтроллера U1и разъём программирования (Идеальным вариантом на этом этапе будет прошивка процессора)

3. Далее устанавливают остальные смд элементы.

4. Устанавливаем батарейный отсек и часовой кварцевый резонатор.

5. Последними элементами для установки на плату являются индикаторы, кнопки и светодиоды

6. Подключаем датчик температуры LM75: Выв.1 – SDA, Выв.2 – SCL, Выв. 4, 5, 6, 7 – GND, Выв.8 — +5В.

Между выводами 4 и 8 – керамический конденсатор 0,1мкф.

7. Убедившись в правильности монтажа и отсутствии коротких замыканий на плате можно подать питание на плату.

Примечание:

1.Элементы, обозначенные как резерв и отмеченные на принципиальной схеме пунктирными квадратами  для версий 10.1 и 10.2 эти компоненты нужны.

2. Изучив техническую документацию на микросхемы, используемые в устройствевы можете написать собственное программное обеспечение, изменив функционалустройства для собственных нужд.

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

4. При подключении датчика температуры не желательно делать провода длиннее 20 см

Комплектность и возможные замены.

Набор деталей содержит все компоненты необходимые для сборки устройства за исключением резисторов и конденсаторов 0805, корпуса и блока питания. Применяемые компоненты, их наличие в наборе — в таблице. Кроме компонентов указанных в таблице в наборе есть датчик температуры LM75 и зуммер.  Желательно применять номиналы деталей указанные на схеме. Конденсатор С2 может быть в пределах 330-1000 мкф С16 – 33-100 мкф. Дисплеи любые SA23-11 или любые другие подходящие по размеру и цоколевке с общим анодом.Микросхема STP08DP05 может быть заменена на любую из аналогичных — MBI5167GD, MBI5168GD, TLC5916ID, TLC5917ID, STP08CP05MTR.Толкатели крепятся к кнопкам клеем. Так как возможно, что при разной конструкции корпуса нужно будет подпилить кнопку -или подложить кусочек пластика.

Порядок работы с устройством:

Кратковременными нажатиями на кнопку К2 выводим на дисплей разные режимы отображения: часов- минут, секунд, число-месяц, год, день недели, температуры. Длительными нажатиями на кнопки К3, К5 в режиме отображения, возможно, отрегулировать яркость экрана.

При длительном нажатии на кнопку К2 устройство переходит в режим установки сигнализируя двумя мигающими разрядами в этом режиме кнопками К3, К5 возможно сделать установки параметров также в этом режиме кратковременными нажатиями кнопки К2 переходим к установке следующих разрядов и длительным нажатием к выходу из режима установки.

Для настройки будильника необходимо длительно нажать на кнопку К2 в этом режиме кратковременными нажатиями кнопки К2 переходим к установке будильника (после дней недели) кнопками К3, К5 настраиваем будильник. Будильник включается нажатием кнопки К4, выключается нажатием кнопки К1.

Для установки точного времени путём обнуления секунд необходимо перейти в режим отображения секунд длительно нажать кнопку К2 до тех пор пока секунды не начнут мигать и кратковременным нажатием кнопки К3 или К5 обнулить секунды в нужное время.

Для настройки точности хода необходимо длительно нажать на кнопку К2 в этом режиме кратковременными нажатиями кнопки К2 переходим к установке точности хода (символ С в левом разряде) кнопками К3, К5 настраиваем точность хода.

Документация

ADV2348M Схема, описание и прошивкиМодуль DS1307 RTC

своими руками — ElectroSchematics.com

Хотя готовые модули часов реального времени (RTC) для проектов микроконтроллеров доступны в каждом интернет-магазине, вдохновленный любитель электроники скорее соберет что-то из нескольких компонентов, которые случайно завалялись.

В настоящее время большинство проектов микроконтроллеров, которые регистрируют или отслеживают информацию о данных, часто требуют, чтобы информация о текущем времени и дате сохранялась вместе с накопленными данными.Микросхема часов реального времени (RTC), такая как DS1307, с подходящей резервной батареей может использоваться для предоставления необходимой информации. Процесс программирования чипа RTC (в программном обеспечении) также очень прост и поддерживается в большинстве сред программирования.

Вот принципиальная схема компактного модуля RTC, основанного на популярной RTC IC DS1307, для ваших повседневных проектов с микроконтроллерами. Последовательные часы реального времени (RTC) DS1307 представляют собой часы/календарь с полным двоично-десятичным кодированием (BCD) с низким энергопотреблением и 56 байтами NV SRAM.Адрес и данные передаются последовательно через двунаправленную шину I 2 C. Часы/календарь в 24-часовом/12-часовом формате предоставляют информацию о секундах, минутах, часах, дне, дате, месяце и году, включая поправки на високосный год.

Список деталей

  • Чип DS1307 RTC – 1
  • Стандартный кварцевый кристалл для часов 32,768 кГц (12,5 пФ) – 1
  • Керамический конденсатор 100 нФ – 1
  • 10K ¼ Вт Резистор – 2
  • Литиевая батарейка типа «таблетка», 12 мм, 3 В (CR2032) – 1
  • Держатель ячейки для монет 12 мм – 1
  • 5-контактная вилка — 1
  • Печатная плата – 1

DS1307 — недорогой, простой в обращении чип часов реального времени, работающий годами на очень маленьком аккумуляторе типа «таблетка».DS1307 имеет встроенную схему измерения мощности, которая обнаруживает сбои питания и автоматически переключается на резервный источник питания. Операция хронометража продолжается, пока деталь работает от резервного источника питания. Для работы часов реального времени у вас должна быть установлена ​​батарейка типа «таблетка» 3 В (литиевая батарея). В случае отсутствия плоской круглой батарейки контакт батареи (VBAT) должен быть повернут в низкое положение. Также обратите внимание, что отрицательные выбросы ниже -0,3 В, когда компонент находится в режиме с резервным питанием от батареи, могут привести к потере данных.

Принципиальная схема

Назначение контактов J1
1.Vcc (+5 В)
2. Gnd (0 В)
3. SQW (прямоугольная волна/выходной драйвер)*
4. SCL (последовательные часы)
5. SDA (последовательные данные)

*Прямоугольный сигнал/драйвер вывода: если этот параметр включен, бит SQWE установлен в 1, контакт SQW/OUT выводит одну из четырех частот прямоугольного сигнала (1 Гц, 4 кГц, 8 кГц, 32 кГц). Вывод SQW/OUT имеет открытый сток и требует внешнего подтягивающего резистора. SQW/OUT работает либо с VCC, либо с VBAT. Напряжение подтяжки может достигать 5,5 В независимо от напряжения на VCC. Если этот вывод не используется, его можно оставить плавающим.

Печатная плата

Взаимодействие с микроконтроллером

Любой 5-вольтовый микроконтроллер со встроенным I 2 C может легко использовать DS1307. Для библиотеки RTC вы можете использовать отличную RTC-библиотеку JeeLab RTClib (перенастроенную Adafruit) (http://github.com/adafruit/RTClib) — библиотеку для получения и установки времени с DS1307, когда дело доходит до Arduino. .

Вот действительно простой учебник, демонстрирующий, как использовать его с Arduino, поскольку это популярная платформа микроконтроллеров: http://bildr.org/2011/03/ds1307-ардуино/. Еще один интересный проект, использующий эту идею RTC, уже опубликован здесь, на этом сайте: https://www.electroschematics.com/8921/digital-clock-with-arduino-and-ds1307/

.

В чем преимущество этого самодельного модуля? Предлагаемая здесь идея помогает ускорить задачу создания прототипа за счет объединения микросхемы RTC, батареи, кристалла и периферийных компонентов в крошечном подключаемом модуле. Существенным преимуществом этого подхода является то, что затраты на аппаратное и программное обеспечение в целевой системе сведены к минимуму, ей всегда нужно будет только считывать информацию о времени и дате!

%PDF-1.7 % 2 0 объект > эндообъект 4 0 объект > поток приложение/pdfuuid:b86476f7-2bed-47c7-998b-b63be16bc2aeuuid:726c8e70-4811-4665-bb5b-bb1b387e557a2021-06-19T16:28:14-04:00PDF-XChange Editor 8.0.336-1891-412-00: 04:00PDF-XChange Core API SDK (8.0.336) конечный поток эндообъект 11 0 объект > поток xZmo8_ҢVNiaHŵxqCM&73$%JT�MĖѼ.nl6;Nh*ӚWM%lwn֓ [email protected]:74V]N-tW?’/擃?Za #QK㌀W)J2: zO;pv{, |7pq6ZWTRWL-ÖM?E’RʺҝȂO943\VJ%R+6U9i9mͣ?Ǻ:ZWUjRԡm’OĐTI o 3-Xx|R(c/+RbWrT-ռFlڠLQM95

Часы реального времени с NodeMCU, ST7789 TFT и DS1307 RTC

/********************* ******************************************************* ****

*

* Интерфейс ESP8266 NodeMCU с TFT-дисплеем ST7789 (240×240 пикселей)

     и DS1307 RTC

* Это бесплатное программное обеспечение без ГАРАНТИЙ.

* https://ком/

*

********************************************** ******************************/

 

#include              // Библиотека Wire (требуется для I2C устройства)

#include      // Базовая графическая библиотека

#include   // Аппаратно-зависимая библиотека для ST7789

#include «RTClib.h»           // RTC library

4 4

// Соединения модуля TFT ST7789

#define TFT_RST   D8     // Контакт TFT RST подключен к контакту D8 NodeMCU (GPIO15)

#define TFT_DC    D4     // Контакт DC TFT подключен к контакту D4 NodeMCU (GPIO2)

#define TFT_CS    -1     // вывод CS TFT напрямую подключен к GND

// инициализация ST7789 библиотеки TFT с аппаратным модулем SPI

// SCK (CLK) —> вывод D5 NodeMCU (GPIO14)

// MOSI(DIN ) —> NodeMCU контакт D7 (GPIO13)

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_ РСТ);

 

// инициализировать библиотеку RTC

RTC_DS1307 rtc;

DateTime   сейчас;

 

const int button1 = D0; // кнопка B1 подключена к NodeMCU D0 (GPIO16)

const int button2 = D1; // кнопка B2 подключена к NodeMCU D1 (GPIO5)

 

void setup(void)

{

  // если на дисплее есть контакт CS, попробуйте с SPI_MODE0

  tft.инициализация (240, 240, SPI_MODE2); // init ST7789 display 240×240 px

 

  // если экран перевернут, удалите эту команду

  tft.setRotation(2);

  // заливаем экран черным цветом

  tft.fillScreen(ST77XX_BLACK);

 

  tft.fillRect(0, 59, tft.width(), 2, ST77XX_BLUE);

  tft.fillRect(0, 150, tft.width(), 2, ST77XX_BLUE);

 

  tft.setTextWrap(false); // отключить опцию переноса текста

  tft.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // установить цвет текста на белый и черный фон

  tft.setTextSize(2); // размер текста = 2

  tft.setCursor(0, 10); // переместить курсор в позицию (0, 10) пикселя

  tft.print(«NODEMCU + ST7789 TFT»);

  tft.setCursor(48, 34); // перемещаем курсор в позицию (48, 34) пикселя

  tft.print(«+ DS1307 RTC»);

  tft.setTextSize(4); // размер текста = 4

  tft.setTextColor (ST77XX_MAGENTA, ST77XX_BLACK);

  tft.setCursor(64, 163);

  tft.print(«ВРЕМЯ:»);

 

  pinMode(button1, INPUT);

  pinMode(button2, INPUT);

 

  Wire.begin(D2, D3); // устанавливаем контакты I2C [SDA = D2, SCL = D3], тактовая частота по умолчанию 100 кГц

  rtc.begin(); // инициализация чипа RTC

  

}

 

// небольшая функция для кнопки 1 (B1) debounce

bool debounce ()

{

 byte count = 0;

  for(byte i = 0; i < 5; i++)

  {

    if ( !digitalRead(button1))

      count++;

    задержка(10);

  }

 

  if(count > 2)  вернуть 1;

  иначе           вернуть 0;

}

 

void RTC_display()

{

  char dow_matrix[7][10] = {«ВОСКРЕСЕНЬЕ», «ПОНЕДЕЛЬНИК», «ВТОРНИК», «СРЕДА», «ЧЕТВЕРГ», «ПЯТНИЦА», «СУББОТА»};

  byte x_pos[7] = {50, 50, 38, 14, 26, 50, 26};

  статический байт previous_dow = 8;

 

  // печатаем день недели

  if( previous_dow != now.dayOfTheWeek() )

  {

    previous_dow = now.dayOfTheWeek();

    tft.fillRect(14, 72, 216, 28, ST77XX_BLACK); // рисуем прямоугольник (стираем день с дисплея)

    tft.setCursor(x_pos[previous_dow], 72);

    tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK); // установить голубой цвет текста и черный фон

    tft.print( dow_matrix[now.dayOfTheWeek()] );

  }

 

  // дата печати

  tft.установитьКурсор(1, 111);

  tft.setTextColor(ST77XX_YELLOW, ST77XX_BLACK); // устанавливаем желтый цвет текста и черный фон

  tft.printf(«%02u-%02u-%04u», now.day()%100, now.month()%100, now.year() );

  // время печати

  tft.setCursor(26, 202);

  tft.setTextColor(ST77XX_GREEN, ST77XX_BLACK); // устанавливаем цвет текста на зеленый и черный фон

  tft.printf(«%02u:%02u:%02u», now.hour()%100, now.minute()%100, now.second()%100 );

}

 

байтовое редактирование (параметр байта)

{

  статический байт i = 0, y_pos,

                                                                                                            6 , 3 , 3 } ;

 

  if(i < 3) {

    tft.setTextColor (ST77XX_YELLOW, ST77XX_BLACK); // устанавливаем желтый цвет текста и черный фон

    y_pos = 111;

  }

  else {

    tft.setTextColor(ST77XX_GREEN, ST77XX_BLACK); // установить зеленый цвет текста и черный фон

    y_pos = 202;

  }

 

 в то время как (debounce()); // вызвать функцию устранения дребезга (подождать, пока кнопка B1 будет отпущена)

 

  while(true) {

    while( !digitalRead(button2) ) {  // пока нажата кнопка B2

      parameter++;

      if(i == 0 && параметр > 31)    // если день > 31 ==> день = 1

        параметр = 1;

      if(i == 1 && параметр > 12)    // если месяц > 12 ==> месяц = ​​1

        параметр = 1;

      if(i == 2 && параметр > 99)    // если год > 99 ==> год = 0

        параметр = 0;

      if(i == 3 && параметр > 23)    // если часы > 23 ==> часы = 0

        параметр = 0;

      if(i == 4 && параметр > 59)    // если минуты > 59 ==> минуты = 0

        параметр = 0;

 

      tft.setCursor(x_pos[i], y_pos);

      tft.printf(«%02u», параметр);

      задержка(200); // ждать 200 мс

    }

 

    tft.fillRect(x_pos[i], y_pos, 44, 28, ST77XX_BLACK);

    unsigned long previous_m = millis();

    пока( (millis() — previous_m < 250) && digitalRead(button1) && digitalRead(button2)) ;

    tft.setCursor(x_pos[i], y_pos);

    tft.printf(«%02u», параметр);

    previous_m = millis();

    пока( (millis() — previous_m < 250) && digitalRead(button1) && digitalRead(button2)) ;

 

    if(!digitalRead(button1))

    {                     // если нажата кнопка B1

      i = (i + 1) % 5; // увеличить ‘i’ для следующего параметра

      return parameter; // возвращаемое значение параметра и выход

}

}

}

}

// Основной цикл

// Главный цикл

()

{

, если (! DigitalRead (Button1)) // Если B1 нажата

  if( debounce() )             // вызвать функцию устранения дребезга (убедитесь, что нажата клавиша B1)

  {

    в то время как (debounce()); // вызвать функцию устранения дребезга (подождать, пока будет освобожден B1)

 

    byte day    = edit( now.день() ); // дата редактирования

    byte month  = edit( now.month() ); // редактировать месяц

    byte year   = edit( now.year() — 2000 ); // изменить год

    byte hour   = edit( now.hour() ); // редактировать часы

    byte minute = edit( now.minute() ); // редактируем минуты

 

    // записываем данные о времени и дате в чип RTC

    rtc.adjust(DateTime(2000 + year, month, day, hour, minute, 0));

 

    в то время как(debounce()); // вызвать функцию устранения дребезга (подождать, пока кнопка B1 будет отпущена)

  }

 

  now = rtc.сейчас(); // считываем текущее время и дату с чипа RTC

 

  RTC_display(); // отображение времени и календаря

  delay(100); // ждать 100 мс

}

 

// конец кода.

Добавление часов реального времени (RTC) в Raspberry Pi

В этом руководстве по Raspberry Pi RTC мы покажем вам, как добавить модули часов реального времени (RTC) PCF8523, DSL1307 или DS3231 к вашему Raspberry Pi.

Мы покажем вам, как каждый из отдельных чипов часов реального времени должен быть подключен к Raspberry Pi для правильной работы, предоставив номера контактов и полезное руководство по GPIO.

В этом руководстве вы также узнаете, какие изменения необходимо внести в конфигурацию Raspberry Pi, а также изменить пакеты на Raspbian, чтобы он считывал время из вашего модуля часов реального времени и не использовал фальшивое время, на которое он опирается. по умолчанию.

Мы также покажем вам, как установить время на модуле часов реального времени, когда это потребуется.

Список оборудования

Ниже приведены все детали, которые я использовал для этого урока Raspberry Pi RTC.

Рекомендуется

Дополнительно

Подключение модуля RTC к Raspberry Pi

В модуле RTC вы должны найти как минимум четыре соединения. Некоторые схемы RTC могут поставляться с большим количеством схем, но для работы с Raspberry Pi нам нужны только следующие четыре: VCC / 5V / Vin (контакт питания IC), SDA (линия последовательной передачи данных). ), SCL (линия последовательной синхронизации) и GND (заземляющий контакт питания)

Вы можете подключить эти линии напрямую к Raspberry Pi или подключить его к макетной плате, а затем к Raspberry Pi.В этом уроке мы использовали Pi RTC PCF8523 от Adafruit, который подключается непосредственно к первым шести контактам, что значительно упрощает процесс настройки модуля RTC ( Real Time Clock ).

Однако подключение обычных PCF8523 , DSL1307 и DS3231 не является сложным процессом, следуя нашему руководству ниже, вы должны подключить все в кратчайшие сроки.

DS3231 и PCF8523

  • VIN Подключение к PIN 1
  • SDA Подключается к PIN 3
  • SCL Connects к PIN 5
  • GND соединяется с PIN 6

ДС1307

  • VIN Подключится к PIN 4
  • SDA Подключится к PIN 3
  • SCL Подключение к PIN 5
  • GND соединяется с PIN 6

Настройка Raspberry Pi для I2C

Прежде чем мы начнем настраивать и использовать наш RTC на Raspberry Pi, нам сначала нужно использовать инструмент raspi-config , чтобы настроить наш Raspberry Pi для использования с I2C.

1. Давайте начнем это руководство с того, что полностью обновим Raspberry Pi; это гарантирует, что мы будем использовать все новейшее доступное программное обеспечение.



 

2. Теперь, когда Raspberry Pi полностью обновлен, мы можем запустить его инструмент настройки, чтобы начать процесс включения I2C.

Выполните следующую команду, чтобы запустить инструмент настройки.



 

3. Эта команда вызовет инструмент конфигурации; этот инструмент — простой способ внести различные изменения в конфигурацию вашего Raspberry Pi.Однако сегодня мы рассмотрим только то, как включить интерфейс I2C.

С помощью клавиш со стрелками перейдите вниз и выберите « 5 Interfacing Options ». После выбора этой опции вы можете нажать Enter .

4. На следующем экране с помощью клавиш со стрелками выберите « P5 I2C », нажмите . Введите , выделенный один раз, чтобы выбрать эту опцию.

5. Теперь вас спросят, хотите ли вы включить « ARM I2C Interface », выберите Да с помощью клавиш со стрелками и нажмите Введите , чтобы продолжить.

6. После того, как инструмент raspi-config внесет необходимые изменения, на экране должен появиться следующий текст: « Интерфейс ARM I2C включен ».

Однако, прежде чем I2C будет действительно включен, мы должны сначала перезапустить Raspberry Pi. Для этого сначала вернитесь к терминалу, нажав Введите , а затем ESC .

Введите следующую команду в терминал Raspberry Pi, чтобы перезапустить его.



 

7. После завершения перезапуска Raspberry Pi нам нужно установить еще два пакета, эти пакеты помогут нам определить, успешно ли мы настроили I2C и работает ли он должным образом.

Выполните следующую команду на Raspberry Pi, чтобы установить python-smbus и i2c-tools :



 

8. Теперь, когда эти инструменты установлены, выполните следующую команду на Raspberry Pi, чтобы определить, правильно ли вы подключили свое устройство RTC.



 

Если вы успешно подключили схему RTC, вы должны увидеть ID #68 . Этот идентификатор является адресом микросхем DS1307 , DS3231 и PCF85231 RTC.

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

Настройка времени RTC для Raspberry Pi

После успешной настройки I2C и проверки того, что мы можем видеть нашу схему RTC, мы можем начать процесс настройки Raspberry Pi для использования нашего чипа RTC в свое время.

1. Для этого нам сначала нужно изменить файл конфигурации загрузки Raspberry Pi, чтобы был успешно загружен правильный драйвер ядра для нашей схемы RTC.

Выполните следующую команду на Raspberry PI, чтобы начать редактирование файла /boot/config.txt .



 

2. В этом файле вам нужно будет добавить одну из следующих строк в конец файла, убедитесь, что вы используете правильную строку для используемого чипа RTC.В нашем случае мы используем PCF8523 .

ДС1307



 

PCF8523



 

ДС3231



 

После того, как вы добавили правильную строку для вашего устройства в конец файла, вы можете сохранить его и выйти из него, нажав CTRL + X , затем Y и затем ENTER .

3. После внесения этого изменения нам нужно перезапустить Raspberry Pi, чтобы он загрузил последние изменения конфигурации.

Выполните следующую команду на Raspberry Pi, чтобы перезапустить его.



 

4. После того, как ваш Raspberry Pi завершит перезагрузку, мы можем запустить следующую команду, чтобы убедиться, что драйверы ядра для чипа RTC загружены.



 

Вы должны увидеть стену текста, если вместо 68 появится UU , то мы успешно загрузили драйвер ядра для нашей схемы RTC.

5. Теперь, когда мы успешно активировали драйвер ядра для чипа RTC и знаем, что он обменивается данными с Raspberry Pi, нам нужно удалить поддельный пакет hwclock . Этот пакет действует как заполнитель для реальных аппаратных часов, когда у вас их нет.

Введите следующие две команды в терминал Raspberry Pi, чтобы удалить пакет fake-hwclock. Мы также удаляем hwclock из всех сценариев запуска, так как он нам больше не понадобится.



 

6. Теперь, когда мы отключили пакет fake-hwclock , мы можем приступить к повторному запуску исходного сценария аппаратных часов, включенного в Raspbian, закомментировав часть кода.

Выполните следующую команду, чтобы начать редактирование исходного сценария RTC.



 

7. Найдите и закомментируйте следующие три строки, поставив перед ними # , как мы сделали ниже.

Найти



 

Заменить на



 

После внесения изменений сохраните файл, нажав CTRL + X , затем Y , затем ENTER .

Время синхронизации от Pi до модуля RTC

Теперь, когда у нас подключен модуль RTC, а Raspbian и Raspberry Pi настроены правильно, нам нужно синхронизировать время с нашим модулем RTC. Причина этого в том, что время, предоставляемое новым модулем RTC, будет неправильным.

1. Вы можете прочитать время непосредственно из модуля RTC, выполнив следующую команду, если вы попробуете это сейчас, вы заметите, что в настоящее время оно далеко от нашего текущего реального времени.



 

2. Теперь, прежде чем мы продолжим и синхронизируем правильное время от нашего Raspberry Pi к нашему модулю RTC, нам нужно выполнить следующую команду, чтобы убедиться, что время на Raspberry Pi действительно правильное. Если время неправильное, убедитесь, что вы подключены к сети Wi-Fi или Ethernet.



 

3. Если время, отображаемое командой даты, правильное, мы можем продолжить и запустить следующую команду на вашем Raspberry Pi. Эта команда запишет время с Raspberry Pi в модуль RTC.



 

4. Теперь, если вы снова прочитаете время непосредственно из модуля RTC, вы заметите, что оно было изменено на то же время, на которое был установлен ваш Raspberry Pi. Вам никогда не придется повторно запускать предыдущую команду, если вы держите батарею в своем модуле RTC.



  

Заключение

Надеюсь, теперь у вас есть полностью работающий модуль RTC, который активно поддерживает правильное время вашего Raspberry Pi, даже когда он теряет питание или теряет подключение к Интернету.Я надеюсь, что вам понравился этот забавный проект Pi, и вы будете использовать его с пользой.

Если у вас есть какие-либо вопросы, запросы, мысли или что-то еще в этом руководстве по Raspberry Pi RTC, обязательно оставьте комментарий ниже.

DS1307 RTC Распиновка, техническое описание, характеристики и эквиваленты

DS1307 — это микросхема часов реального времени (RTC) с полным двоичным кодом (BCD) с низким энергопотреблением и 56 байтами SVRAM, которая обменивается данными по протоколу I2C. IC может работать от прямого источника питания Vcc и автоматически переключаться на батарею при необходимости.

 

Конфигурация контактов

Номер контакта

Штифт Наименование

Описание

1,2

Х1, Х2

Кварцевый осциллятор должен быть подключен к этим контактам

3

V-летучая мышь

Подключен к положительной клемме аккумулятора

4

Земля

Штырь заземления микросхемы

5,6

СКЛ и ПДД

Контакты для связи I2C с ЦП

7

SQW / Исходящий

Штифт драйвера выходного сигнала прямоугольной формы для получения частот прямоугольной формы.

8

Вкк

Питание микросхемы обычно 5 В

 

Технические характеристики DS1307
  • ИС интерфейса I2C RTC
  • Рабочее напряжение: 5 В
  • Ток менее 500 нА при работе от батареи
  • 56 байт SVRAM
  • Работает в режиме питания или от батареи
  • Программируемый выходной контакт прямоугольной формы
  • Доступно в пакетах PDIP и SO

 

Эквивалент для DS1307: PCF8523, DS1820, DS1338

Прочие микросхемы RTC: DS3231

 

Как пользоваться DS1307

DS1307 — это 8-контактная микросхема, работающая от напряжения 5 В и взаимодействующая с ЦП по протоколу I2C.Типичная схема приложения для DS1307 из DS1307 datasheet показана ниже.

Как видите, микросхема имеет выводы SCL (последовательные часы) и SDA (последовательные данные), с помощью которых она взаимодействует с ЦП, оба эти контакта должны быть подключены к высокому уровню с помощью резистора. Микросхема может получать питание, подавая 5 В на контакт Vcc, при сбое питания она автоматически переключается в режим работы от батареи, в котором она получает питание от литиевого элемента, подключенного к контакту Vbat и земле.

Контакты X1 и X2 используются для подключения кварцевого генератора; обычно используется кварцевый кристалл с частотой 32,7 кГц. Вывод SQW используется для обеспечения прямоугольной волны ШИМ с программируемыми частотами в диапазоне 1 Гц, 4 кГц, 8 кГц или 32 кГц. Для этого вывода также требуется подтягивающий резистор. Обмен данными между CPU и RTC IC осуществляется только по протоколу I2C. И чтение, и запись происходят через эту связь. IC может предоставить такие детали, как часы реального времени, отсчитывающие секунды, минуты, часы, дату месяца, месяц, день недели и год с компенсацией високосного года, действительной до 2100 года.

 

Применение

· Робототехника

· Игры

· Серверы

· Компьютерная периферия

· GPS

· Электросчетчики

 

2D-модель (8-контактный PDIP)

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

Описание

Модуль DS1307 RTC поддерживает все цифровые микроконтроллеры, такие как Arduino, 8051, PIC, AVR, ARM, MSP, COP8, STM, Raspberry Pi и т. д.

Информация о модуле DS1307 RTC:  

Это модуль часов реального времени (RTC) DS1307, эта небольшая коммутационная плата, которая использует самый популярный DS1307 для отслеживания текущего года, месяца, дня, а также Текущее время. Модуль поставляется полностью собранным и включает в себя небольшую литиевую батарейку типа «таблетка», которая обеспечивает работу часов реального времени не менее 9 лет без внешнего источника питания 5 В. Доступ к DS1307 RTC осуществляется по протоколу I2C.

Особенности платы часов реального времени DS1307:
  • Двухпроводной интерфейс I2C
  • (чч : мм : сс) Часы : Минуты : Секунды AM/PM
  • (ДД/ММ/ГГГГ) Дата День Месяц, ГГГГ) — Год
  • Reap Год компенсации
  • Точный календарь до 2100
  • резервную копию аккумулятора включал
  • 3 вольт Li (литий) батарея монеты
  • 1 Гц Выходной штифт
  • 5HZ PIN-код мощностью
  • 56 байт нерестальности Память, доступная пользователю
  • Подключается к любой макетной плате или можно использовать провода
  • Индикация питания на плате КРАСНЫЙ СВЕТОДИОД
  • Четыре монтажных отверстия 3.0 мм для простого монтажа.
  • Размеры: 43 мм x 34.5 мм

Документ DS1307 Kit: 9
8 Содержание упаковки:

1 х RTC Модуль с DS1307

1 х Li (литий) Монета батарея 3 вольт

Есть какие-либо запросы, , пожалуйста, свяжитесь с нами

более связанные товары

DS1307 Raspberry Pi RTC Real Time Clock Interfacing и программирование

(Последнее обновление: 12 сентября 2021 г.)

DS1307 Raspberry Pi RTC:

DS1307 Raspberry Pi RTC . В этой статье описывается, как подключить внешние часы реального времени RTC DS1307 к Raspberry Pi.Сам Raspberry Pi не имеет аппаратных часов и получает текущее время по NTP (Network Time Protocol). Бывают ситуации, когда вам нужно отобразить текущее время с помощью Raspberry Pi без доступа к интернету. Такие часы называются Hardware RTC (Hardware Real Time Clock). Здесь рекомендуется модуль DS1307 RTC. Этот компонент снова в нескольких версиях. Прежде чем я объясню, как подключить DS1307 к Raspberry Pi, давайте сначала взглянем на распиновку часов реального времени DS1307 и технические характеристики.

Ссылки на покупку Amazon:

Часы реального времени DS1307 RTC

Малиновый Пи

комплект Raspberry Pi 4 4 Гб

Беспроводная клавиатура и мышь для Raspberry Pi:

Камера ночного видения для Raspberry Pi:

Сенсорный дисплей Oled HDMI для Raspberry Pi:

Прочие инструменты и компоненты:

Суперстартовый набор для начинающих

Цифровые осциллографы

Переменное питание

Цифровой мультиметр

Наборы для паяльника

Небольшие портативные сверлильные станки для печатных плат

* Обратите внимание: это партнерские ссылки.Я могу получить комиссию, если вы купите компоненты по этим ссылкам. Я был бы признателен за вашу поддержку на этом пути!

DS1307 RTC I2C с поддержкой Часы реального времени:

  • Модуль поставляется полностью собранным и предварительно запрограммированным на текущее время.
  • Доступ к DS1307 осуществляется по протоколу I2C.
  • Двухпроводной интерфейс I2C. Час:Минуты : Секунды AM/PM.
  • День Месяц, Дата – Год. Выходной контакт 1 Гц. Примечание: Батарея не входит в комплект
  • .
  • 56 байт энергонезависимой памяти, доступной пользователю.

Последовательные часы реального времени (RTC) DS1307 представляют собой часы/календарь с полным двоично-десятичным кодированием (BCD) с низким энергопотреблением и 56 байтами NV SRAM. Адрес и данные передаются последовательно через двунаправленную шину I2 C. Часы/календарь предоставляют информацию о секундах, минутах, часах, дне, дате, месяце и годе. Дата окончания месяца автоматически корректируется для месяцев, в которых меньше 31 дня, включая поправки на високосный год. Часы работают в 24-часовом или 12-часовом формате с индикатором AM/PM.DS1307 имеет встроенную схему измерения мощности, которая обнаруживает сбои питания и автоматически переключается на резервный источник питания. Операция хронометража продолжается, пока деталь работает от резервного источника питания.

Микросхема DS1307, устанавливаемая на такие модули, требует напряжения питания 5В. На самом деле это не проблема, есть два небольших подтягивающих резистора, которые подтягивают SDA и SCL до уровня 5 В (см. рис. 1). Вы должны удалить это (см. рисунок 2)!

Рисунок 1: Два подтягивающих резистора R2 и R3 на модуле RTC Рисунок 2: Два подтягивающих резистора были отпаяны

Как вы уже несколько раз читали, Raspberry Pi выдает 5 В на свои контакты GPIO, что совсем не хорошо.Не волнуйтесь, линии I2C по-прежнему подключены к подтягивающим резисторам, а именно к внутренним резисторам Raspberry Pi, которые подтягивают уровень линий I2C до здоровых 3,3 В. С помощью паяльника и пинцета удалите два резистора на модуле RTC.

Рисунок 3:Готовый модуль RTC со встроенной кнопочной ячейкой

Настройка оборудования DS1307 и подключение к Raspberry Pi:

1. Приобретите плату DS1307 или сделайте ее самостоятельно (это очень просто).
2. Убедитесь, что линии передачи данных и синхронизации I2C (SDA и SCL) не имеют подтягивающих резисторов.Если есть какие-либо подтяжки, удалите их.
3. Подключите аккумулятор (в большинстве плат используются литиевые элементы CR2032) к DS1307.
4. Выполните подключения к Raspberry Pi, следуя схеме, приведенной ниже.

Рисунок 4:Схема подключения модуля DS1307-RTC

Как только часы реального времени подключены, в операционной системе Raspberry Pi загружаются драйвера. Для первого теста выполните настройки вручную, т. е. включите I2C на Raspberry Pi. В конце этого раздела вы узнаете, как все необходимые настройки, которые уже были сделаны, могут быть выполнены автоматически в процессе загрузки.

Убедитесь, что вы активировали интерфейс I2C и установили инструменты i2c (прочитайте мою статью о Raspberry Pi I2C). Теперь запустите в терминале команду Обнаружение подключенного оборудования I2C от:

i2cdetect -y 1

Теперь вы должны увидеть таблицу, в которой введено значение 68. Если подключены дополнительные устройства I2C, отображаются дополнительные адреса. Однако 68 — это адрес часов реального времени. Теперь создайте оверлей дерева устройств в файле /boot/config.текст . Поместите Для этого введите в конце файла следующую строку:

dtoverlay = rtc-i2c, тип RTC

Тип RTC обозначает тип используемых вами часов реального времени. Замените заполнитель в соответствии с вашим типом RTC Возможны следующие модели RTC:

  • дс1307
  • дс3231
  • pcf2127
  • pcf8523

Например: dtoverlay = rtc-i2c, ds1307

Далее введите устройство как виртуальный файл:

sudo echo ds1307 0x68> /sys/class/i2c-адаптер /i2c-1/new_device

Если вы все еще используете старую версию Raspberry Pi Rev 1, измените предпоследнюю папку строки в i2c-0.Все настройки завершены, и часы можно прочитать:

.

судо hwclock -r

Теперь вы должны увидеть дату, похожую на строку ниже:

Сб 01 января 2000 01:00:05 CET

Конечно, дата неверна. Таким образом, часы должны быть установлены на следующем шаге. Лучше всего установить подключение к Интернету через локальную или беспроводную сеть. Теперь вызовите текущее системное время с помощью команды date. С помощью команды sudo hwclock -w вы записываете текущее время в часы реального времени.Другой запрос с sudo hwclock -r показывает текущую дату. Если все работает нормально, можно сделать еще один шаг, чтобы все настройки загружались непосредственно в процессе загрузки и настраивались системные часы RTC. Для этого откройте файл /etc/rc.local/:

судо нано /etc/rc.local

Теперь напишите следующие строки в конце файла, но перед выходом 0:

эхо ds1307 0 x68> /sys/class/i2c-адаптер /i2c-1/new_device

судо hwclock -s

Теперь сохраните и закройте файл.

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

Ваш адрес email не будет опубликован.