Электротехнический интернет-журнал Electrik.info

Электрик Инфо - мир электричества. Электрика в квартире и доме, электроснабжение, электромонтаж, ремонт, освещение, домашняя автоматизация, практическая электроника. Статьи про устройство и ремонт домашней электропроводки, розетки и выключатели, провода и кабели, источники света, интересные факты и многое другое для начинающих электриков и домашних мастеров.
Кейсы, схемы, примеры и технические решения, обзоры интересных электротехнических новинок.
 

 

Категории: Схемы на микроконтроллерах
Количество просмотров: 1012
Комментарии к статье: 0

Микросхемы часов реального времени RTC - назначение, виды и примеры использования


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

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

Что это такое

RTC (real time clock, рус. часы реального времени) — это вид микросхем, предназначенных для отсчета времени в «реальных» единицах (секунды, минуты, часы и т.д.).

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

Точность отсчета как раз и зависит от качества и точности настройки внутреннего генератора или внешнего кварцевого резонатора. При этом точность кварца и RTC соответственно, указывается не в герцах и не в процентах, а в «ppm», например ±12 ppm, ±50 ppm. Это расшифровывается, как Parts Per Million, т. е. количество миллионных частей от какой-то средней величины.

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

Часы реального времени могут быть реализованы на базе микроконтроллеров, однако, использование специальных чипов позволяет снизить энергопотребление, поскольку большинство микроконтроллеров даже в спящем режиме (или режиме пониженного энергопотребления) потребляют больше энергии чем специальные интегральные микросхемы (ИМС). RTC могут быть и встроенными в сам микроконтроллер (как в STM32).

Именно благодаря часам реального времени на вашем компьютере не сбивается время и дата после его отключения от сети, в этом случае они работают от батарейки CR2032, установленной в разъёме на материнской плате, она же и питает микросхему BIOS, чтобы не сбивались выставленные в нем настройки.

Микросхема RTC со встроенным аккумулятором

Классификация

Классификация микросхем RTC может отличаться от производителя к производителю. Наиболее распространены часы реального времени таких производителей, как: Maxim Integrated и STMicroelectronics. На рынке есть микросхемы и других компаний:

  • Intersil Corporation (д.к. Renesas Electronics);

  • Cymbet (линейка EnerChip™ RTC, отличительная особенность — встроенная твердотельная батарея);

  • NXP (RTC с календарем, с поддержкой протоколов I2C или SPI)

  • Zilog;

  • Epson;

  • ON semiconductor.

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

Компания Maxim Integrated в качестве основного критерия для классификации микросхем RTC использует тип интерфейса управления, а именно:

1. Микросхемы RTC с последовательным интерфейсом управления: I2C, 3-wire, SPI.

2. С параллельным интерфейсом управления:

  • с мультиплексированной шиной «адрес/данные»;

  • с разделенными шинами адреса и данных;

  • с однопроводным интерфейсом 1-wire.

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

Можно классифицировать и по формату представления данных:

  • Календарный. В виде шаблона YY-MM-DD для даты и HH-MM-SS для времени время и другие их форматы;

  • Бинарный. В виде непрерывного двоичного счетчика единиц времени (секунд или их долей).

В зависимости от назначения микросхемы в схеме устройства и выбирается её тип, если ИМС с календарным представлением — она будет выполнять функцию обычных часов, а в случае с бинарным — для таких применений, как отчеты периодов времени, например срока действии лицензии, гарантийного срока или в устройства для учета чего-либо (например, электросчетчиках), например в каталоге Maxim Integrated они называются «Elapsed Time Counter» — счетчик прошедшего времени, пример такой ИМС — DS1683.

В других случаях микросхемы часов реального времени могут классифицироваться по функционалу или другим характеристикам:

  • Наличие встроенного генератора или необходимо использовать внешний генератор (кварцевый).

  • По наличию встроенного источника питания или возможности использования внешней батареи.

  • По типу и объёму внутренней памяти и протоколам связи с «внешним» миром (описывались выше).

  • По наличию фантомного (phantom) интерфейса для доступа к внутренним регистрам микросхемы (для настройки, установки режимов или считыванию значений).

  • Другие функции: сторожевой таймер (watchdog), будильника (alarm), секундный выход, контроль питания, возможность зарядки внешней батареи и пр.

И, наконец, многие производители классифицируют свои устройства по уровню энергопотребления, в среднем потребляемый ток лежит в пределах от 200 до 1500 нА, но может и выходить из этого диапазона в зависимости от конкретной ИМС и производителя.

Применение в радиолюбительской практике

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

Применение микросхем RTC в радиолюбительской практике

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

Их удобно использовать как для готовых устройств, так и в макетах — вы можете использовать перемычки со штекерами и разъёмами типа Dupont, если установить на модуль гребенку для их подключения, или припаять провода прям к пятакам на плате (смотрите - Советы по быстрой сборке схем на макетных платах).

Модули с RTC

В среде ардуинщиков и современных самодельщиков наибольшее распространение получили микросхемы часов реального времени компании Maxim Integrated и модули на их базу, а именно:

  • DS1302;

  • DS1307;

  • DS3231.

Их отличия приведены в таблице ниже.

Характеристики микросхем DS1302, DS1307 и DS3231

Как видите, все из них поддерживают связь с микроконтроллером по шине I2C, а DS1302 и по SPI, хотя в даташите сказано «простой 3-проводной последовательный интерфейс, подходящий для большинства микроконтроллеров». И может подключаться не только к 10-13 пинам Ардуино, на которых назначены выводы шишны SPI, но и к други, установленным в скетче, схемы будут ниже. Даташиты на эти ИМС со всеми техническими данными прилагаем к статье.

Даташиты на микросхемы реального времени:

Arduino UNO поддерживает оба этих протокола, что вы можете увидеть на схеме ниже (помечено фиолетовым и серым цветом для SPI и I2C соответственно).

Arduino UNO

Как и Raspberry pi.

Raspberry pi

Это значит, что вы можете использовать любой из этих модулей с каждой из платформ. Внешние отличия модулей вы можете видеть на иллюстрации ниже, но компоновка платы может отличаться, смотрите на маркировку ИМС.

Для того чтобы Arduino работала с RTC нужна библиотека, но так как её нет в стандартном пакете Arduino IDE, её нужно скачать. В сети есть библиотеки для каждой из рассмотренных ИМС, а есть и универсальные, что выбрать, и какая будет удобнее решать уже вам.

Универсальную библиотеку прилагаем - iarduino_rtc.zip. Отметим, что в ней задаётся вручную тип ИМС, а для DS1302 и выводы, к которым она подключена:

include // Подключаем библиотеку
iarduino_RTC time(RTC_DS3231); // Создаём объект time, для ИМС DS3231
iarduino_RTC time(RTC_DS1307); // ДЛЯ DS1307
iarduino_RTC time(RTC_DS1302, RST, CLK, DAT); // для DS1302.
// Вместо RST, CLK и DAT номера пинов ардуино,
// к которым подключены соответствующие пины модуля часов

Схема для DS1302, еще раз напомним, что выводы могут быть другими:

Схема подключения DS1302 к Ардуино

А вот линия данных DS1307 и DS3231 подключается только к пинам A5 и A4 Arduino UNO (для других ревизий и версий платы смотрите распиновку).

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

Заключение

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

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

Алексей Бартош




Поделитесь этой статьей с друзьями:

Вступайте в наши группы в социальных сетях:

ВКонтакте | Facebook | Одноклассники | Pinterest

Смотрите также на Электрик Инфо:

  • Что такое дисплеи Nextion и как с ними работать?
  • Микроконтроллеры PIC для начинающих
  • Виды и устройство микроконтроллеров AVR
  • Микроконтроллеры программируемые на JavaScript: какой выбрать, характеристи ...
  • Измерение температуры и влажности на Arduino – подборка способов

  •  
    Добавление комментария
    Имя:*
    Комментарий:
    Введите код: *

    Сайт электрика

    Новые статьи



    Электрика дома  | Электрообзоры  | Энергосбережение
    Секреты электрика | Источники света | Делимся опытом
    Домашняя автоматика | Электрика для начинающих
    Практическая электроника | Электротехнические новинки

    English French German Italian Portuguese Russian Spanish

    Copyright © 2009-2019 Электрик Инфо - Electrik.info, Андрей Повный (информация о сайте и авторах статей)
    Вся информация на сайте предоставлена в ознакомительных и познавательных целях.
    За применение этой информации администрация сайта ответственности не несет.
    Перепечатка материалов сайта запрещена.