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

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

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

Что это такое

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

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

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

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

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

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

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

Intersil Corporation (д.к. Renesas Electronics);

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

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

Zilog;

Epson;

ON semiconductor.

Компания 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, в виде отдельной печатной платы или шилда. Преимущество такого вида модулей состоит в том, что нет необходимости разводить плату и распаивать микросхему, обвязку, держатель батареи питания и прочее.

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

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

DS1302;

DS1307;

DS3231.

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

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

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

DS1302

DS1307

DS1307 (на русском языке)

DS3231

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

Как и 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, еще раз напомним, что выводы могут быть другими:

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

Заключение

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

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

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


Источник: http://electrik.info


Источник: elec.ru