Arduino rtc: Arduino и часы RTC DS3231

Модуль часов реального времени DS3231 / Arduino и Raspberry Pi

Комментарии закрыты. Перейдите на форум поддержки продуктов в верхней части страницы.

[include-page id=»buy-include-file»]

Что входит в этот продукт?

Модуль часов реального времени DS3231 компании SwitchDoc Labs содержит два устройства, оба

DS3231 Test Jig

, подключенные к шине I2C 3,3 В или 5,0 В. Он содержит высокоточные часы реального времени Maxim DS3231 с температурной компенсацией и AT24C32 32 Кбит EEPROM , организованный как 4096 8-битных слов энергонезависимой памяти. Согласно тестам, проведенным в SwitchDoc Labs (см. ниже), DS3231 является явным победителем с измеренной точностью менее 0,3 PPM (частей на миллион) или, другими словами, теряет или выигрывает менее 0,026 секунды в день. .

Программное обеспечение поддерживает обе функции хронометража DS3231, внутренний датчик температуры DS3231 и устройство EEPROM AT24C32.

 

 Адрес I2C 0x68 соответствует DS3231, а 0x56 — AT24C32. Обратите внимание, что на некоторых платах новой ревизии адрес AT24C32 равен 0x57.

Программное обеспечение SwitchDoc Labs на основе Python для продукта Raspberry Pi находится здесь.

Здесь находится программное обеспечение для Arduino.

Вы можете купить модуль SwitchDoc Labs DS3231 в магазине SwitchDoc Labs.

Спецификация DS3231

Спецификация AT24C32

 

Результаты тестов

Модуль SwitchDoc Labs DS3231/AT24C32

Лаборатория SwitchDoc провела несколько месяцев тестов производительности и проверки этого модуля DS3231 и сравнила его с другими часами реального времени. Мы выбрали DS3231 из-за его превосходной точности. Мы измеряем результаты в PPM (частях на миллион). Например, потеря 1 секунды в день — это дрейф в 11,5 PPM, а 1 PPM — дрейф в 0,0864 секунды в день. Погрешность измерения PPM (частей на миллион) показана на графике ниже:

Тест 3,4 миллиона секунд — PPM

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

Таблица результатов ниже:

Устройство Длина теста (в секундах) Измеренная часть на миллион Спецификация PPM
ДС1307 292 869 15 частей на миллион 23 ч/млн
ДС3231 3 432 851 < 0,3 частей на миллион 2 части на миллион
ПКФ8563 3 432 851 24 стр/мин 29 частей на миллион
МСР79400 3 432 851 4 части на миллион Не указано напрямую

 

Дополнительные результаты для других часов реального времени приведены здесь и в окончательной статье в выпуске 7 и 8 журнала Raspberry Pi Geek Magazine.

Проверка Raspberry Pi

После подключения модуля SwitchDoc Labs DS3231 к Raspberry Pi (3,3 В, GND, SCL, SDA) выполните следующую команду:

 pi@MouseAir2 ~/RTCEval/SDL_DS3231 $ sudo i2cdetect - у 1

 

Результаты должны быть примерно такими. 0x68 — это DS3231, а 0x56 — это AT24C32. Обратите внимание, что на некоторых платах новой ревизии адрес AT24C32 равен 0x57.

 0 1 2 3 4 5 6 7 8 9 а б в г д е
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- УУ -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- 56 -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- 

После загрузки драйверов с github выполните следующую команду:

  pi@MouseAir2   ~/RTCEval/SDL_DS3231 $  sudo python testSDL_DS3231.
py
 pi@MousePydo3SDL $_DSCEval/ 
 Тест SDL_DS3231 Версия 1.0 — SwitchDoc Labs

Программа началась:2014-12-21 02:01:23
------------------
------------------
 Протестируйте EEPROM AT24C32.
------------------
запись первых 10 адресов со случайными данными
адрес = 0 записываемое значение = 41
адрес = 1 записываемое значение = 249адрес = 2 запись значение = 198
адрес = 3 запись значение = 238
адрес = 4 запись значение = 190
адрес = 5 запись значение = 101
адрес = 6 запись значение = 171
адрес = 7 запись значение = 62
адрес = 8 запись значение = 255
адрес = 9 запись значение = 169
------------------
чтение первых 10 адресов
адрес = 0 значение = 41
адрес = 1 значение = 249
адрес = 2 значение = 198
адрес = 3 значение = 238
адрес = 4 значение = 190
адрес = 5 значение = 101
адрес = 6 значение = 171
адрес = 7 значение = 62
адрес = 8 значение = 255
адрес = 9значение = 169
------------------
------------------
Малина Пи= 21.12.2014 02:01:25
DS3231= 21.
12.2014, 02:01:25 DS3231 Температура = 21,75 Малина Пи= 21.12.2014 02:01:35 DS3231= 21.12.2014, 02:01:35 DS3231 Температура = 21,75 Малина Пи= 21.12.2014 02:01:45 DS3231= 21.12.2014, 02:01:45 DS3231 Temp= 21,75

Зачем использовать часы реального времени?

Часы реального времени необходимы для любого проекта, требующего точного учета времени, особенно если у вас не всегда есть подключение к Интернету. Arduino имеет только программные часы для хронометража. Если он выключится, его больше нет. Raspberry Pi, отправленный на воздушном шаре, или Pi, работающий в отдаленном Карибском бассейне, например Project Curacao. Raspberry Pi довольно хорошо показывает время, но только если он подключен к Интернету. Pi использует интернет-сервис под названием NTP для установки часов при включении питания, если Интернет доступен. Затем он вызывает серверы NTP (некоторые из них на самом деле размещены в Национальном институте стандартов и технологий (NIST) и связаны с их атомными часами).

Вы не получите точность атомных часов, используя NTP, но это довольно хорошо.

Правильный выбор RTC для вашего проекта

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

Однако многие проекты предъявляют гораздо более высокие требования. Когда вы создаете часы, регистратор данных или что-то еще, что основано на стабильном ощущении течения времени в течение более чем нескольких минут, вам понадобятся часы реального времени. Так называемые из-за их характера работы с в реальном времени, , как мы, люди, склонны понимать это, эти устройства берут на себя обязательство предоставлять услуги хронометража с высокой степенью точности. Мы составили руководство по часто используемым деталям и возможностям их применения, чтобы вы всегда могли делать все правильно с первого раза.

Ключевые требования

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

Мне просто нужно знать который час!

Рекомендуемая деталь: DS1307

DS-1307 часто является выбором по умолчанию для RTC. Однако, если вам нужны расширенные функции, такие как сигналы тревоги или выходы прямоугольных импульсов, лучше искать более дорогие модели.

DS1307 носит гордое звание де-факто RTC для тех, кто экспериментирует с микроконтроллерами. Работая от 5 В, с потреблением тока 500 нА при резервном питании от батареи, это базовое решение для проекта, в котором необходимо отслеживать время. В отличие от более продвинутых решений, DS1307 использует внешний кварцевый резонатор 32,768 кГц для хронометража. Согласно техническому описанию, это означает, что на точность хронометража в некоторой степени влияет реализация конструкции из-за различных емкостей и шума. По этой причине Maxim не предоставляет запрещённого значения точности, но для средней сборки тактовой частоты или базового регистратора данных DS1307 справится с задачей. Модули DS1307 легко доступны, и часто это самое дешевое решение RTC, доступное в большинстве торговых точек.

Мне нужно что-то точное, с сигнализацией!

Рекомендуемая деталь: DS3231 (I2C), DS3234 (SPI)

DS3234 отличается тем, что использует интерфейс SPI вместо I2C. Он также содержит 256 байт адресуемой пользователем оперативной памяти.

Для тех, кому нужна точность, на которую они могут положиться, RTC со встроенным генератором является ключевым. Эти устройства гарантируют заводскую точность, так как при установке кристалла невозможна ошибка пользователя. Такие детали, как DS3231 и DS3234, соответствуют этим требованиям, поскольку их кварцевый генератор с температурной компенсацией (TCXO) может похвастаться точностью до ±2 ppm при температурах от 0°C до +40°C. Это происходит в ущерб току в режиме ожидания, обычно 1500 нА, что означает, что резервные батареи работают не так долго.

Эти более современные детали способны работать при напряжении от 2,3 до 5,5 В, что упрощает их использование с различными микроконтроллерами. Они также имеют прямоугольные и тревожные выходы. Их можно использовать для генерации тактов для другого оборудования или для пробуждения микроконтроллеров из спящего режима с помощью вывода GPIO, установленного в качестве прерывания. RTC обычно используются таким образом, чтобы проекты с батарейным питанием могли максимально использовать свои батареи, удерживая основной микроконтроллер в спящем режиме с низким энергопотреблением и просыпаясь только при необходимости. На борту также есть бонусный датчик температуры, который можно считывать, что может пригодиться в некоторых проектах.

Эти модули продаются с такими терминами, как DeadOn, из-за их точности. Однако дополнительные функции и более сложное оборудование стоят дороже.

Мне нужен RTC, который едва потребляет энергию, и все остальное!

Рекомендуемая деталь: RV-1805, RV-3028

RV-1805 потребляет так мало энергии, что этот модуль Sparkfun вообще может обходиться без резервной батареи. Вместо этого суперкап сохраняет время до 35 дней без внешнего питания.

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

Для таких применений подойдет RV-1805 и его более новая замена RV-3028. В комплекте с сигнализацией и другими высокотехнологичными функциями их устройство для вечеринок потребляет абсолютно ничтожно малое количество электроэнергии. В специальном режиме, в котором используется маломощный RC-генератор с кварцем в качестве резервной калибровки, RV-1805 потребляет всего 22 нА в режиме измерения времени. Это достаточно мало, так как модуль Sparkfun указывает только суперкап, который способен поддерживать установленное время в течение полных 35 дней, в то время как другие RTC вместо этого должны полагаться на батареи. RV-3028 увеличивает этот показатель до 100 нА, а Pimoroni заявляет о потенциальном времени работы 9лет на включенной батарее. Точность этих деталей также на высшем уровне (±2 ppm RV-1805, ±1 ppm RV-3028), что делает их идеальными для точной регистрации данных в удаленных средах.

Особое упоминание: модули Raspberry Pi

RTC Pi — дешевое и простое решение для синхронизации Pi вдали от Интернета.

Raspberry Pi, как и многие компьютеры 1980-х годов, не имеет часов реального времени. Это устраняет необходимость в батарее, но также может вызвать хаос при ведении системного журнала и других обязанностях, особенно в несетевых средах. К счастью, многие из перечисленных выше устройств RTC доступны в виде специальных модулей, разработанных для конкретного форм-фактора Raspberry Pi. Они доступны во всех видах, от скромного DS1307 до острого как бритва DS3231.

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

Заключение

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

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

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