Rtc time что это
Rtc time что это
В большинстве компьютеров есть одни и более аппаратных часов, ведущих отчёт «обычного» времени. Они называются «часами реального времени» (Real Time Clock, RTC). Некоторые из них имеют батарею резервного питания для продолжения работы в периоды, когда компьютер выключен. В RTC часто встроены будильники и другие прерывания.
Все ПК i386 и системы с ACPI содержат RTC, которые совместимы с микросхемой Motorola MC146818 из первоначальной модели PC/AT. Сегодня такие RTC обычно встраивают в чипсет материнской платы (в южный мост), и они используют заменяемую резервную батарею (типа «таблетки»).
В системах, несовместимых с PC (например, встраиваемые системы, собираемые на процессоре «всё в одном»), используются другие варианты. Обычно, они не предоставляют таких возможностей, как RTC в PC/AT.
RTC и системные часы
Ключевым отличием RTC от системных часов, является то, что RTC работают даже когда система находится в состоянии пониженного энергопотребления (даже в выключенном), а для системных часов такое недоступно. До своей инициализации системные часы показывают время, прошедшее с момента запуска системы, а не с начала эпохи POSIX. Поэтому при загрузке и после восстановления из состояния пониженного энергопотребления в системных часах часто подстраивают текущее время с помощью RTC. Системам без RTC требуется установить свои системные часы с помощью других часов, возможно через сеть или ручного ввода данных.
Назначение RTC
Помимо контроля даты и времени многие RTC также позволяют генерировать прерывания
* при каждом обновлении часов (т.е. раз в секунду); * через периодические интервалы с частотой, значение которой может быть любой степенью 2 в диапазоне от 2 Гц до 8192 Гц; * по достижению указанного времени будильника.
Каждый из этих источников прерываний можно включать или выключать независимо друг от друга. Во многих системах прерывание будильника можно настроить как событие пробуждения системы, для вывода системы из состояний пониженного энергопотребления таких как: ждущего режима (Suspend-to-RAM (STR), S3 в терминологии ACPI), спящего режима (hibernation, S4 в терминологии ACPI) или даже из «выключенного» состояния (S5 в терминологии ACPI). Но в некоторых системах RTC с резервной батареей не могут генерировать прерывания.
Устройство /dev/rtc (или /dev/rtc0, /dev/rtc1 и т.д.) можно открыть только один раз (до тех пор, пока не будет закрыто) и только для чтения. При вызове read(2) и select(2) вызывающий процесс блокируется до следующего приёма прерывания от RTC. После прерывания процесс может прочитать длинное целое, в котором наименее значимый байт содержит битовую маску типа произошедшего прерывания, а остальные 3 байта содержат количество прерываний, произошедших с последнего вызова read(2).
Интерфейс ioctl(2)
Флаг enabled используется для включения или отключения прерывания будильника, или для чтения его текущего состояния; когда совершаются данные вызовы RTC_AIE_ON и RTC_AIE_OFF не используются. Флаг pending используется RTC_WKALM_RD для сообщения об ожидающем прерывании (хотя это практически бесполезно в Linux, за исключением RTC, управляемого микропрограммой EFI). Поле time используется RTC_ALM_READ и RTC_ALM_SET, но поля tm_mday, tm_mon и tm_year также учитываются. Указатель на эту структуру должен передаваться в третьем аргументе ioctl(2).
ФАЙЛЫ
/proc/driver/rtc: состояние (первого) RTC.
ЗАМЕЧАНИЯ
Эпоха RTC не имеет ничего общего с эпохой POSIX, которая используется только в системных часах.
Если год, согласно эпохи RTC и регистр года меньше чем 1970, то предполагается, что время на 100 лет позже, то есть, между 2000 и 2069 годами.
Некоторые RTC поддерживают значения «шаблона» в полях будильника, чтобы обеспечить поддержку сценариев, например периодические будильники, через первые 15 минут в начале каждого часа, или первый день каждого месяца. Но это непереносимо; переносимый код пользовательского пространства только ожидает единичное прерывание от будильника, и будет или отключать, или реинициализировать будильник после приёма.
Некоторые RTC поддерживают периодические прерывания с периодами кратными степени 2, а не дробной секунде; несколько будильников; программируемые выходные сигналы часов; энергонезависимую память; другие аппаратные свойства, для которых пока ещё не предусмотрено программного интерфейса.
Rtc time что это
Библиотека сайта rus-linux.net
Часы реального времени (RTC)
Часы реального времени — это сугубо аппаратное расширение, которое принципиально зависит от аппаратной платформы, на которой используется Linux. Это ещё одно расширение службы системных часов, на некоторых архитектурах его может и не быть. Используя такое расширение можно создать ещё одну независимую шкалу отсчётов времени, с которой можно связать измерения, или даже асинхронную активацию действий.
Убедиться наличии такого расширения на используемой аппаратной платформе можно по присутствию интерфейса к таймеру часов реального времени в пространстве пользователя. Такой интерфейс предоставляется (о чём чуть позже) через функции ioctl() драйвера присутствующего в системе устройства /dev/rtc :
Только некоторые важные коды команд ioctl() :
Пример использования RTC из пользовательской программы для считывания абсолютного значения времени (архив time.tgz ):
Ещё одним примером (по мотивам [5], но сильно переделанным) покажем, как часы RTC могут быть использованы как независимый источник времени в программе, генерирующей периодические прерывания с высокой (значительно выше системного таймера) частотой следования:
Показанный выше код пространства пользователя в заметной мере проясняет то, как и на каких интервалах могут использоваться часы реального времени. То же, каким образом время RTC считывается в ядре, не скрывается никакими обёртками, и радикально зависит от использованного оборудования RTC. Для наиболее используемого чипа Motorola 146818 (который в таком наименовании давно уже не производится, и заменяется дженериками), можно упоминание соответствующих макросов (и другую информацию для справки) найти в :
— в порт 0х70 записывается номер требуемого параметра, а по порту 0х71 считывается/записывается требуемое значение — так традиционно организуется обмен с данными памяти CMOS.
Часы реального времени или RTC: как работает это оборудование
Любой поклонник электроники или компьютеров знает, что компьютеры, которые мы используем каждый день, оснащены часы реального времени и что благодаря аккумулятору, встроенному в материнскую плату, часы всегда идут вовремя, даже когда компьютер отключен от сети. ручей. Но вы когда-нибудь задумывались Как это работает и особенно, каково использование ПК с этими внутренними часами?
У внутренних часов реального времени ПК есть утилита, которая выходит далеко за рамки показа времени на панели задач, и это означает, что, как мы буквально объясним ниже, ПК не мог бы работать без них. Почему? Мы сразу же подробно объясним вам это, но в качестве предварительного просмотра мы скажем вам, что без этих часов процессор ПК не знал бы, когда он должен выполнять вычисления.
Что такое часы реального времени или RTC и для чего они нужны?
RTC можно найти как в компьютерах (настольных и портативных), так и в интегрированных системах, серверах и любых электронных компонентах, имеющих процессор, поскольку для этих элементов требуется точный хронометр для их работы, как мы вскоре объясним. Очень важно иметь возможность продолжать работать, даже когда компьютер выключен или если батарея разряжена, поэтому обычно они носят с собой батарея в формате CR1220 или CR2032 что гарантирует автономную работу на долгие годы.
ИС RTC регулируют время с помощью кварцевого генератора, поэтому они не зависят от тактовых сигналов, как большинство аппаратных часов (например, ЦП, который зависит от этих часов реального времени). Помимо функции синхронизации системы и ее часов, часы реального времени гарантирует, что все процессы в системе правильно синхронизированы, что важно для работы ЦП. Хотя некоторые могут возразить, что это работа внутренних системных часов, на самом деле это зависит от часов реального времени.
Преимущества использования RTC на ПК:
Как работает RTC на ПК?
Некоторые RTC имеют встроенную температурную компенсацию, которая может расширить и повысить точность кварцевого генератора. Кристаллы также стареют, и это меняет их физическую природу, так что со временем они теряют точность. Типичные недорогие кристаллы, используемые в аппаратном обеспечении ПК, имеют допуск по частоте +/- 20 ppm (частей на миллион). Это означает, что кристалл с такой погрешностью может дрейфовать до 72 мс в час или 1.7 секунды в день, поэтому иногда потребуется калибровка.
Процессор, подключенный к RTC, получает обновленное системное время и постоянно записывает это новое значение в RTC, чтобы избежать этих отклонений, то есть CPU постоянно калибрует 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)
Компания 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, в виде отдельной печатной платы или шилда. Преимущество такого вида модулей состоит в том, что нет необходимости разводить плату и распаивать микросхему, обвязку, держатель батареи питания и прочее.
В среде ардуинщиков и современных самодельщиков наибольшее распространение получили микросхемы часов реального времени компании Maxim Integrated и модули на их базу, а именно:
Их отличия приведены в таблице ниже.
Как видите, все из них поддерживают связь с микроконтроллером по шине I2C, а DS1302 и по SPI, хотя в даташите сказано «простой 3-проводной последовательный интерфейс, подходящий для большинства микроконтроллеров». И может подключаться не только к 10-13 пинам Ардуино, на которых назначены выводы шишны SPI, но и к други, установленным в скетче, схемы будут ниже. Даташиты на эти ИМС со всеми техническими данными прилагаем к статье.
Даташиты на микросхемы реального времени:
Arduino UNO поддерживает оба этих протокола, что вы можете увидеть на схеме ниже (помечено фиолетовым и серым цветом для SPI и I2C соответственно).
Как и Raspberry pi.
Это значит, что вы можете использовать любой из этих модулей с каждой из платформ. Внешние отличия модулей вы можете видеть на иллюстрации ниже, но компоновка платы может отличаться, смотрите на маркировку ИМС.
Для того чтобы Arduino работала с RTC нужна библиотека, но так как её нет в стандартном пакете Arduino IDE, её нужно скачать. В сети есть библиотеки для каждой из рассмотренных ИМС, а есть и универсальные, что выбрать, и какая будет удобнее решать уже вам.
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 (для других ревизий и версий платы смотрите распиновку).
Заключение
Часы реального времени позволяют делать проекты, в которых какие-либо процессы должны запускаться по расписанию. Почти в любом относительно сложном проекте для практического использования есть такая потребность неважно это автоматическая система полива растений или же система управления технологическими процессами на производстве.
Благодаря дешевизне деталей и простоте подключения и программирования сейчас подобные системы может реализовать каждый, даже не имея углубленных знаний в электронике и микроконтроллерах. Но это не значит, что раз есть ардуино с присущей ей простотой, то не нужно изучать программную и аппаратную часть. Наоборот, знание железа и структуры кода позволит делать более быстрые и сложные программы, которые при этом занимают меньше места.
Время – деньги и наноамперы: применение часов реального времени Maxim Integrated
Вячеслав Гавриков (г. Смоленск)
Зачем использовать внешнюю микросхему часов реального времени (RTC), а не внутренние RTC микроконтроллера? Хотя бы потому, что у RTC MAX31342 производства Maxim Integrated типовое потребление составляет 150 нА при 3 В и температуре 25°С, а у встроенных RTC одного из самых малопотребляющих микроконтроллеров при тех же условиях – примерно 370 нА.
Часы реального времени (Real-Time-Clock, RTC) являются важным элементом современных электронных устройств. Можно смело утверждать, что RTC имеет в составе каждое электронное устройство, хоть как-то связанное со временем: электронные часы, микроволновые печи, системы автоматического подогрева, беспроводные умные счетчики, а также смартфоны, компьютеры, духовые шкафы, холодильники и, конечно же, широкий спектр портативной электроники, в частности фитнес-трекеры, умные часы, глюкометры и так далее.
Часы реального времени являются относительно простым компонентом, однако их использование имеет важные особенности. По этой причине разработчики должны ответственно подходить к проектированию устройств с RTC.
Рассмотрим наиболее важные вопросы, связанные с часами реального времени производства Maxim, начиная от описания основных функций и структуры, и заканчивая рекомендациями по их использованию в составе электронных устройств. Для наглядности в качестве демонстрационного примера выбрана микросхема RTC MAX31342, так как сверхкомпактные габариты и сверхмалое потребление делают ее отличным выбором для широкого спектра популярных малопотребляющих и компактных электронных устройств с батарейным питанием.
Основные функции часов реального времени (RTC)
К основным функциям RTC относятся:
Если говорить о часах реального времени, интегрированных в состав микроконтроллеров и микропроцессоров, то обычно их размещают в специальном малопотребляющем домене, питание которого сохраняется в режиме глубокого сна и даже в режиме полной остановки. Среди режимов пониженного потребления микроконтроллеров очень часто выделяют режимы с RTC и без RTC, например, «Stop» и «Stop with RTС», «Standby» и «Standby with RTС». Более того, в некоторых современных малопотребляющих контроллерах RTС относят к домену с батарейным питанием. В нормальном режиме работы этот домен питается от штатного источника напряжения, однако если этот источник отключается, то домен очень быстро переходит на питание от дежурной батарейки, в то время как остальная часть микроконтроллера остается неактивной.
Из вышесказанного становится понятно, что одним из важнейших параметров часов реального времени оказывается уровень потребления. Чем меньше потребляет RTC, тем больше прослужит батарейка, и тем дольше будет вестись учет времени.
Теперь, когда основные функции часов реального времени определены, рассмотрим, каким образом они выполняют эти функции. Для этого необходимо проанализировать структуру RTC.
Базовая структура RTC Maxim
На рисунке 1 представлена типовая функциональная схема часов реального времени на примере MAX31342 [1]. Ключевыми компонентами схемы являются: внешний резонатор 32,768 кГц, генератор, регистры часов/календаря/будильников, логика и регистры управления, последовательный интерфейс (в данном случае I 2 C), схема внешней синхронизации.
Рис. 1. Функциональная схема часов реального времени MAX31342
Принцип работы RTC относительно прост. Резонатор совместно с генератором формируют опорный тактовый сигнал 32,768 кГц. Далее этот сигнал делится с помощью встроенных делителей, в результате чего получается сигнал 1 Гц, который измеряется счетчиком секунд. Данные счетчика секунд позволяют определить остальные временные параметры: минуты, часы, дату и прочее. Значения даты и времени хранятся в специальных регистрах и могут быть вычитаны внешним управляющим микроконтроллером по последовательному интерфейсу (в данном случае I 2 C).
При необходимости в качестве опорного сигнала для RTC может выступать сигнал от внешнего генератора, подаваемый на специальный вход CLKIN. В случае с MAX31342 допускается использование внешних тактовых сигналов 32,768 кГц, 50 Гц, 60 Гц и 1 Гц.
MAX31342 позволяет выводить собственный опорный тактовый сигнал на выход CLKOUT, что имеет большое значение при выполнении отладки (подробнее об этом говорится в разделе «Обзор отладочной платы MAX31342EWA+T»).
Выходы INTA/INTB служат для формирования пробуждающих сигналов или прерываний при достижении заданного момента времени. Эти выходы задействуются, если требуется обеспечить сверхмалое потребление для всего устройства. Обычно для минимизации потребления управляющий микроконтроллер большую часть времени находится в режиме ожидания и лишь иногда просыпается для быстрого выполнения необходимых действий. В большинстве случаев именно RTC отвечает за периодические пробуждения микроконтроллера с помощью выходов INTA/INTB.
У начинающих разработчиков обычно возникает вопрос, почему в качестве резонатора используется именно резонатор 32768 Гц. Дело в том, что число 32768 является степенью двух: 2 15 = 32768. Это очень удобно, так как подсчет импульсов ведется цифровыми двоичными счетчиками. При работе генератора с частотой 32768 Гц двоичный счетчик насчитает ровно 32768 импульсов в секунду, что соответствует показанию 8000h (шестнадцатеричное представление). То есть 15-й разряд счетчика переключается с «0» на «1» один раз в секунду, что существенно упрощает счет. Для сравнения, при использовании резонатора с «круглой» частотой 1 МГц за секунду будет сгенерирован 1 миллион импульсов, что соответствует не совсем удобному значению F4240h (шестнадцатеричное представление).
У более опытных разработчиков возникнет другой вопрос: почему на представленной схеме не отображены традиционные нагрузочные конденсаторы? Ответ очень прост: в RTC производства Maxim Integrated традиционно используется модифицированный генератор Пирса, построенный на КМОП-инвертере (рисунок 2) [2]. Понимая, что в современных компактных приложениях каждый квадратный миллиметр на счету, компания Maxim Integrated попросту встроила нагрузочные конденсаторы в RTC, равно как и дополнительные резисторы смещения.
Рис. 2. В RTC производства Maxim используется модифицированный генератор Пирса со встроенными нагрузочными конденсаторами и резисторами
Разумеется, у такого подхода есть и некоторые недостатки. В данной схеме кварцевый резонатор работает в режиме параллельного резонанса, для которого необходимо очень хорошо согласовывать параметры генератора, резонатора и нагрузочных емкостей. Так как нагрузочные конденсаторы в RTC Maxim уже встроены, то требования к кварцевому резонатору оказываются более жесткими. Стоит отметить, что выбор правильного резонатора с учетом допустимого уровня возбуждения и различных паразитных параметров (например, паразитной емкости платы), является отдельной важной темой и выходит за рамки данной статьи. Подробно с этим вопросом можно ознакомиться в других публикациях, например, в [2] или [3].
Стоит подчеркнуть, что в большинстве приложений при выборе кварцевого резонатора будет достаточно следовать рекомендациям компании Maxim Integrated (таблица 1) [2]. Кроме того, можно выбрать резонатор из списка рекомендованных моделей [2]. Некоторые распространенные проблемы, связанные с работой кварцевых резонаторов, раскрываются в разделе «Что делать. если возникли проблемы?».
Таблица 1. Рекомендуемые характеристики кварцевого резонатора для RTC производства Maxim Integrated [2]
Параметр | Обозначение | Мин. | Тип. | Макс. |
---|---|---|---|---|
Номинальная частота, кГц | fO | – | 32,768 | – |
Начальная точность, ppm | delta f/fO | – | ±20 | – |
Нагрузочная емкость, пФ | CL | – | 6 | – |
Точка перегиба температурной зависимости, °C | T0 | 20 | 25 | 30 |
Параболический коэффициент температурной зависимости, ppm/°C | k | 0,042 | ||
Добротность | Q | 40 | 70 | – |
Последовательное сопротивление, кОм | ESR | – | – | 45 |
Последовательная шунтирующая емкость, пФ | C0 | 1,1 | 1,8 | |
Соотношение емкостей | C0/C1 | – | 430 | 600 |
Уровень возбуждения, мкВт | DL | – | – | 1 |
Основные характеристики RTC
Рассмотрим характеристики RTC, на которые следует обращать внимание в первую очередь.
Функциональные возможности. Функционал имеет большое значение при выборе RTC. Если вам необходимо обеспечить минимальное потребление, то следует выбирать RTC с выходами пробуждения, с помощью которых можно выводить управляющий микроконтроллер из спящего состояния.
При отладке будет полезно иметь RTC, который может выводить свой опорный тактовый сигнал на дополнительный выход. Этот же сигнал пригодится и для тактирования других микросхем.
В приложениях, критичных к временному рассогласованию, следует выбирать RTC с возможностью синхронизации от внешнего сигнала.
Точность. Точность RTC определяется точностью используемого резонатора, правильностью согласования цепей тактирования, правильностью трассировки и компоновки печатной платы. В таблице 1 указаны рекомендуемые характеристики кварцевого резонатора, в том числе параметры, определяющие отклонение частоты: начальная точность, точка перегиба температурной зависимости и параболический коэффициент температурной зависимости.
Типовая начальная точность часовых кварцевых резонаторов составляет ±20 ppm при 25°С [4]. Для резонаторов 32768 Гц это соответствует погрешности, вычисляемой по формуле 1:
Такое отклонение приводит к уходу часов:
Подобная погрешность кажется более-менее приемлемой для коммерческих приложений и прочих электронных устройств, работающих преимущественно при комнатной температуре, однако все гораздо хуже, если прибор работает при более низких или более высоких температурах. Дело в том, что для обычных часовых кварцевых резонаторов характерна сильная параболическая температурная зависимость частоты. Пример такой зависимости показан на рисунке 3 [1].
Рис. 3. Пример температурной нестабильности часового кварцевого резонатора
Температурная зависимость частоты часового кварцевого резонатора имеет параболическую форму с точкой перегиба 25°С. При достижении предельно низких и предельно высоких рабочих температур отклонение частоты может увеличиваться до ±150 ppm. Такое отклонение соответствует уходу часов на 13 секунд за сутки и на 1,3 часа за год.
Если устройство работает автономно, не имеет возможности синхронизации с внешним сервером и, в то же время, должно обеспечивать высокую точность измерения времени, то в таких случаях рекомендуется использовать термостабилизированные генераторы или термокомпенсированные резонаторы (Temperature-Compensated Crystal Oscillator, TCXO). В составе термокомпенсированных резонаторов присутствует встроенный датчик температуры, который позволяет компенсировать отклонение частоты, вызванное изменением температуры. В результате график температурной зависимости принимает плоский вид.
В качестве альтернативного варианта можно рассмотреть использование RTC со встроенным термокомпенсированным генератором, например, DS3231S производства Maxim Integrated.
Стоит отметить, что TCXO имеют два основных недостатка: повышенное потребление и высокую стоимость, что ограничивает их применение в коммерческих малопотребляющих устройствах с батарейным питанием.
Заканчивая разговор о температурной стабильности, следует упомянуть еще об одной неприятной особенности кварцевых резонаторов, а именно – об ухудшении температурной стабильности после пайки. О таком поведении резонаторов необходимо помнить и учитывать в приложениях, требующих высокой точности. В то же время RTC с МЭМС-резонаторами, например, DS3231M производства Maxim, свободны от этого недостатка.
Погрешность частоты также увеличивается в процессе старения кварцевого резонатора. Типовым является уход точности на 1 ppm в год. В качестве альтернативы можно использовать RTC с МЭМС-резонаторами, выпущенными компанией Maxim Integrated, для которых старение не превышает 1 ppm в течение всего срока службы.
Еще одним источником погрешности при работе с RTC могут стать помехи и неправильно выбранный резонатор. Подробнее об этом говорится в разделе «Что делать если возникли проблемы?».
Потребление. В последнее время все больше устройств переходит на батарейное и аккумуляторное питание. Причем речь не всегда идет о портативных приборах. Многие устройства используют батарейки и аккумуляторы в качестве резервных источников питания. Это, например, характерно для медицинской техники. Еще большее число устройств использует батарейки и аккумуляторы в качестве дежурных источников питания, например, компьютеры. Другой модной тенденцией последнего времени стало использование сверхмаломощных сборщиков энергии (термогенераторов TEG, виброгенераторов, солнечных батарей и прочего), которые вынуждают разработчиков применять электронные компоненты с минимальным собственным потреблением.
RTC не являются исключением: чем меньше потребляют часы реального времени, тем дольше прослужит батарейка. В этом смысле RTC производства Maxim Integrated являются чрезвычайно привлекательными. Например, типовое потребление MAX31342 составляет всего 150 нА (рисунок 4) При этом во всем диапазоне питающих напряжений и рабочих температур потребление не превысит 330 нА.
Рис. 4. Зависимость потребления MAX31342 от температуры и напряжения питания
Для наглядности можно рассчитать длительность работы MAX31342 от обычной дисковой LiMnO2-батарейки CR1220. Возьмем для примера батарею R12 производства Renata со следующими параметрами: номинальное напряжение 3,0 В, напряжение разряда 2,0 В, емкость 35 мА⋅ч [5]. При разряде максимальным током 330 нА срок службы такой батарейки составит: 35 мА⋅ч/330 нА ≈ 106 061 часов ≈ 12,1 лет. При разряде номинальным током 150 нА срок службы превысит 26 лет.
Интересно, что саморазряд этой батарейки составляет 1% в год. Это эквивалентно разрядному току 39 нА, что всего в 4 раза меньше чем потребление MAX31342.
Габариты. Компактные размеры электронных компонентов имеют большое значение для современных портативных устройств. С одной стороны, использование малогабаритных компонентов позволяет уменьшить размеры печатной платы и тем самым снизить стоимость изделия. А с другой — благодаря компактным элементам удается ограничить массу и габариты самого устройства.
RTC производства Maxim отличаются сверхкомпактными габаритами. В частности, микросхема MAX31342 выпускается в восьмивыводном корпусе WLP с шагом выводов 0,5 мм и размером всего 1х2 мм, что позволяет умещать ее на печатной плате даже с жестким дефицитом свободного места.
Диапазон питающих напряжений. Чем шире диапазон питающих напряжений RTC, тем эффективнее используется емкость батарей и аккумуляторов. Это в первую очередь касается элементов питания с малым выходным напряжением.
В частности, MAX31342 имеет диапазон рабочих напряжений 1,6…3,6 В и может без проблем напрямую питаться от дисковых батареек 3 В, для которых напряжение разряда составляет 2,0 В. Причем данные MAX31342 будут сохранены, даже если напряжение питания упадет до 1 В.
Теперь, когда определены важнейшие характеристики RTC, нам осталось ответить на важный вопрос: зачем использовать микросхему RTC, если у большинства микроконтроллеров есть встроенные часы реального времени.
Часы реального времени: встроенные или внешние?
Для начала стоит отметить, что у большинства современных микроконтроллеров есть встроенные часы реального времени. Более того, встроенный блок RTC будет предпочтительным выбором для большинства приложений, так как он дает целый ряд преимуществ:
Тем не менее, у внешних микросхем RTC есть одно важное достоинство, которое может сыграть решающую роль при выборе часов реального времени. Речь идет о возможности обеспечения очень малого потребления.
Собственное потребление встроенных RTC будет выше, чем у дискретных микросхем. Дело в том, что встроенные RTC, являясь частью архитектуры микроконтроллера, требуют работы некоторых вспомогательных системных компонентов. В результате потребление дискретных RTC, не имеющих на борту ничего лишнего, значительно меньше.
Например, как уже говорилось выше, типовое потребление MAX31342 составляет всего 150 нА при 3 В и температуре 25°С, а при 85°С – около 250 нА (рисунок 4). Для сравнения, один из лучших сверхмалопотребляющих контроллеров в режиме ожидания с активным RTC и питанием от дежурной батарейки (3 В) обеспечивает типовое потребление 376 нА при 25°С. Однако при температуре 85°С потребление увеличивается до 602 нА. Тот же самый микроконтроллер в режиме ожидания, но с отключенным RTC и питанием от дежурной батарейки (3 В), обеспечивает типовое потребление всего 6 нА при 25°С и 264 нА при температуре 85°С. Даже если прибавить к этому потребление MAX31342, то суммарное потребление системы окажется существенно ниже (соответственно, 156 и 514 нА), чем у микроконтроллера с активным встроенным RTC.
Стоит еще раз подчеркнуть, что мы рассмотрели пример одного из лучших сверхмалопотребляющих контроллеров. Для микроконтроллеров общего назначения все оказывается еще хуже, так как для них типовое потребление при питании от дежурной батарейки начинается от единиц мкА.
Как уже отмечалось выше, RTC производства Maxim требуют минимум внешних компонентов и занимают совсем мало места на печатной плате (рисунок 5), что позволяет использовать их даже при жестком ограничении свободного пространства.
Рис. 5. RTC от Maxim Integrated требуют минимум внешних компонентов
Если при проектировании устройства было принято решение использовать внешнюю микросхему RTC, то прежде чем выполнять трассировку и компоновку печатной платы, следует внимательно ознакомиться с рекомендациями Maxim Integrated.
Особенности компоновки и трассировки печатной платы с RTC
На точность RTC сильное влияние оказывает качество согласования резонатора и нагрузочных емкостей. К сожалению, подбор емкостей осложняется наличием паразитной емкости печатной платы. Эту емкость необходимо по возможности минимизировать. Еще одной проблемой, препятствующей работе RTC, становятся помехи. Таким образом, только правильная трассировка и компоновка печатной платы позволят обеспечить приемлемый результат.
Подробный анализ процесса проектирования устройств с RTC рассматривается в руководствах Maxim Integrated, например, в [2]. Приведем только основные рекомендации, которые позволят избежать большей части проблем:
Если вы выбрали кварцевый резонатор в соответствии с требованиями Maxim Integrated (таблица 1), после чего выполнили трассировку печатной платы с учетом предложенных рекомендаций, то риск возникновения проблем минимален. Тем не менее, если проблемы все-таки возникнут, следует установить их источник.
Что делать, если возникли проблемы?
Так как вход RTC имеет очень высокий импеданс (более 9 ГОм), печатные проводники могут выступать в качестве антенны, принимающей шумы со всей платы. Помехи при этом могут восприниматься как тактовые импульсы и ускорять счет времени или, наоборот, кратковременно блокировать RTC, тем самым замедляя счет.
При возникновении проблем необходимо определить реальную частоту резонатора. К сожалению, частоту кварцевого резонатора нельзя измерять на выводах X1 и X2. Это связано с тем, что измерительные щупы имеют слишком высокую емкость и могут исказить сигнал. В качестве альтернативы можно использовать буферизированный сигнал на выходе RTC, разумеется, если такой выход есть. Например, MAX31342 позволяет выводить собственный опорный сигнал на выход CLKOUT.
Существует еще один простой и надежный способ контроля. Чтобы проверить, правильно ли работают часы реального времени, необходимо измерить реальную тактовую частоту RTC с помощью следующего алгоритма:
Если отклонения в обоих случаях были одинаковыми, то погрешность измерений не связана с шумами схемы. И наоборот, если отклонения оказались разными, то это означает, что собственные шумы схемы влияют на работу RTC.
Существует несколько вариантов дальнейших действий:
Несмотря на столь внушительный список проблем, в большинстве приложений работа с RTC не представляет особой сложности. Если же у вас появляются опасения, или предполагается работа платы в особых условиях (при повышенных/пониженных температурах, при высокой влажности и прочем), то на первом этапе можно воспользоваться готовым решением в виде отладочной платы. В качестве примера рассмотрим отладочную плату MAX31342EWA+T.
Обзор отладочной платы MAX31342EWA+T
Отладочная плата MAX31342EWA+T (рисунок 6) содержит на борту часы реального времени MAX31342EWA+, часовой кварцевый резонатор ECS-.327-6-12 производства ECS, микросхемы сдвига уровня NLSX4373DR2G, джамперы и колодку для установки MAX32625PICO [6]. MAX32625PICO позволяет подключать отладочную плату к ПК с помощью USB.
Рис. 6. Внешний вид отладочной платы MAX31342EWA+T
Для настройки работы MAX31342EWA+ используется специальное графическое ПО (рисунок 7), что существенно упрощает исследование возможностей RTC. Подробнее о возможностях этой отладочной платы можно узнать из демонстрационного видео [7].
Рис. 7. Прикладное ПО для работы с MAX31342EWA+T
Заключение
Часы реального времени являются важным элементом для широкого спектра устройств, начиная от настольных ПК и медицинской техники, и заканчивая промышленным оборудованием и портативными электронными устройствами.
Несмотря на целый ряд достоинств встроенных RTC, именно дискретные микросхемы RTC становятся оптимальным выбором при необходимости обеспечения минимального потребления.
Компания Maxim Integrated предлагает микросхемы RTC, которые отличаются минимальным потреблением и сверхкомпактными размерами. В частности, типовое потребление для RTC MAX31342 составляет всего 150 нА.