Подключение часов реального времени DS1307 к микроконтроллеру STM8 через модуль I2C. Часть 1 - Особенности аппаратной части

Во многих приложениях процессы и события очень часто должны привязываться к астрономическому времени. Не оказалась исключением и моя экспериментальная система для выращивания рассады [1], в которой мне потребовалось включать и выключать фитолампы по определенному расписанию. Поскольку в микроконтроллерах STM8, выбранных в качестве аппаратной основы для ее реализации, модуль часов реального времени (Real Time Clock, RTC) отсутствовал, мне нужно было или реализовывать его самому, или использовать для этого внешние специализированные компоненты.

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

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

Однако подключение ее к микроконтроллеру STM8 [2] оказалось не такой простой задачей, как пишут в статьях из серии «получение результата за 5 минут». Дело в том, что связка STM8 + DS1307 с использованием модуля I2C имеет ряд специфических особенностей, которые могут легко поставить в тупик человека, не знакомого с этими устройствами. Поэтому я искренне надеюсь, что, прочитав эту статью, люди, не знакомые с микросхемами RTC и STM8, смогут быстро повторить подобную схему.

Сразу обращу внимание, что материал статьи рассчитан на подготовленных специалистов, уже знающих, что такое микроконтроллеры, периферийные модули и прочие элементарные вещи. Хорошим дополнением к этой статье станут описание интерфейса I2C [3], техническая документация на выбранные микросхемы [2, 4], а также примеры работы с модулем I2C из библиотеки STM8S/A Standard Peripherals Library (StdPeriph_Lib) [5].

  1. Datasheet Maxim DS1307
  2. Datasheet STMicroelectronics STM8S003F3
  3. Datasheet Texas Instruments LM1117
  4. Datasheet MaxLinear SP485

Окончание

ООО «Мегател», ИНН 3666086782, ОГРН 1033600037020

Добавить свое объявление

* заполните обязательные данные

Статистика eFaster:

посетило сегодня 100
сейчас смотрят 24
представлено поставщиков 1573
загружено
позиций
25 067 862