PCF8583
В оригинальной документации (Product Specification) [31 ] микросхема имеет наименование clock/calendar with 240x8 bit RAM. Это очень интересная микросхема, которая имеет в своем составе часы реального времени и статическое ОЗУ (RAM). Причем микросхема может использоваться и как только часы, и как только ОЗУ, а также выполнять совмещенные функции — все ячейки памяти находятся в одном адресном пространстве. Где можно применить данную микросхему? Например, запитав ее от отдельного автономного источника (гальванической батареи или аккумулятора), разместить в устройстве, требующем считывания текущего времени в процессе работы (скажем, для ведения протокола каких-либо измерений). Такие часы имеются в любом PC-совместимом компьютере для сохранения даты создания файлов. В составе уличных телефонов-автоматов тоже есть часы реального времени для фиксации времени разговора и определения просроченных телефонных карт. Часы реального времени можно использовать в разнообразных системах избирательного доступа, в бытовой технике (таймеры кухонной техники), в автомобильной электронике. Читатель сам найдет варианты применения PCF8583, если внимательно оглянется вокруг и задействует свою фантазию.
Итак, каковы заманчивые свойства микросхемы:
• управление по интерфейсу I2C;
• диапазон напряжений питания — от 2,5 до 6,0 В;
• часы реального времени сохраняют работоспособность в диапазоне напряжений 1...6 В;
• максимальный рабочий ток (fosc = 0 Гц) — 50 мкА;
• 240 х 8 bit низковольтное RAM;
• календарь на четыре года;
• универсальный таймер с функциями alarm и overflow;
• формат 24 и 12 часов;
• базовая частота 32 768 и 50 Гц;
• автоматический инкремент адреса при обращении по шине I2C;
• программируемые функции alarm, overflow и interrupt (прерывание).
Микросхема PCF8583 представляет собой статическое КМОП RAM, состоящее из 2048 битов, организованных в 256 байтов по 8 битов. Встроенный регистр адреса байта автоматически инкременти- рует свое значение после каждой операции записи (чтения) данных. Вывод АО используется для программирования slave-адреса микросхемы. Понятно, что без дополнительных средств к одной шине может быть подключено не более 2 микросхем PCF8583. Первые 8 байтов RAM используются для функционирования часов/календаря. Причем адрес 00h — специальный регистр статуса. Вторые 8 байтов (адреса 08...0Fh) могут быть запрограммированы как сигнальные регистры (alarm registers), а также возможно их использование как ячеек свободной памяти. Последующие 240 байтов — свободная память RAM, распределяемая и заполняемая по усмотрению пользователя.
Расположение выводов микросхемы PCF8583 приведено на рис. 3.74, назначение выводов — в табл. 3.39. Блок-схема внутреннего устройства — на рис. 3.75.
Таблица 3.39. Назначение выводов
Символ | Вывод | Описание |
0SC1 | 1 | Вход генератора |
OSCO | 2 | Выход генератора |
АО | 3 | Программирование slave-aflpeca |
Vss | 4 | Общий питания |
SDA | 5 | Линия SDA шины I2C |
SCL | CD | Линия SCL шины I2C |
INT | 7 | Вывод генерации прерывания |
V0D | оз | Питание«+» |
Рассмотрим теперь принципы работы с микросхемой. Как видно из рис. 3.75, первые 8 байтов использованы непосредственно для функционирования часов реального времени. Регистр статуса (control/status, адрес 00h) используется для конфигурирования микросхемы, индивидуальной ее настройки, а также для определения ситуаций, возникающих в процессе работы. Перечисляемые далее регистры имеют следующее функциональное назначение (в режиме clock modes):
• адрес Olh [hundredth of a seconds] — 1/10 и 1/100 секунды;
• адрес 02h [scconds] — секунды и десятки секунд;
• адрес 03h [minutes] — минуты и десятки минут;
• адрес 04h [hours] — десятки часов и часы;
• адрес 05h [year/date] — год и дата;
• адрес 06h [weekday/months] — неделя и месяц;
• адрес 07h [timer] — функциональный таймер.
Таймер рассчитан на 99 дней. Все числа хранятся в регистрах в упакованном BCD-формате (двоично-десятичном). Старшая тетрада байта относится к десяткам (например, десятки секунд), а младшая — к единицам (единицы секунд).
Регистры с адресами 08h...0Fh используются для задания функции alarm. То есть при разрешении отработки этой функции в регистре статуса при совпадении числа, занесенного в alarm-регистры, с числом, содержащимся в счетных регистрах 01h...07h, будет возникать сигнал прерывания.
Существует также режим event counter (счетчик событий), когда микросхема работает в режиме простого счетчика и может генерировать прерывание по совпадению чисел в регистрах [00h...03h] и [08h...0Ah], а также по таймеру 07h и OEh.
Назначение регистров в обоих режимах приведено на рис. 3.76.
Теперь поговорим подробнее о функции alarm. Как уже было сказано, эта функция может быть активизирована или отключена в регистре статуса 00h. Установками можно задавать датированный alarm, ежедневный alarm, недельный alarm, alarm по таймеру. О возникновении события «alarm» свидетельствует установка в низкий уровень сигнала на выводе 7 микросхемы. Необходимо обратить внимание читателя на то, что этот вывод выполнен по технологии «открытый
control/status | 00 | control/status | 00 | |
hundred of a second 1/10S I 1 /100s | 01 | D1 | DO | 01 |
seconds 10s I Is | 02 | D3 | D2 | 02 |
minutes 10min t 1min | 03 | D5 | D4 | 03 |
hours 10h I 1h | 04 | Свободно | 04 | |
year/date lOdav 1 1dav | 05 | Свободно | 05 | |
weekday/month 10month Г 1 month | 06 | Свободно | 06 | |
timer 10dav I 1dav | 07 | T1 tl[T;er ТО | 07 | |
alarm/control | 08 | alarm/control | 08 | |
hundred of a second 1/10s I 1/100s | 09 | D1 | alarm DO | 09 |
alarm seconds I | OA | D3 | D2 | OA |
alarm minutes 1 | DB | D5 | D4 | DB |
alarm hours 1 | OC | Свободно | DC | |
alarm date 1 | 0D | Свободно | 0D | |
alarm month | 0E | Свободно | 0E | |
alarm timer | OF | alarm timer | OF | |
Свободная | Свободная | |||
RAM | RAM |
clock mode event counter
Рис. 3.76. Назначение и формат регистров микросхемы PCF8583 в режимах clock modes и event counter
сток», а значит, требует подключения pull-up резистора к напряжению питания. Флаг прерывания (1NT) остается активным до момента повторного программирования режима alarm.
Если функция alarm не задействована (бит 2 регистра статуса установлен в «О»), ячейки 08h...0Fh могут быть использованы по усмотрению разработчика электронной схемы.
Назначение бита регистра статуса приведено на рис. 3.77. Регистр доступен как по условию чтения, так и по условию записи. Детальное описание регистров часов (hours), года и даты (year/date), недели и месяца (weekday/months) приведено на рис. 3.78—3.80. 12-часовой или 24-часовой формат можег быть установлен программированием бита 7 в регистре hours (адрес 04h). При осуществлении чтения по адресам 05h и 06h желательно установить флаг mask в регистре статуса. Это позволит пользователю непосредственно читать дату и месяц, не проводя дополнительные вычисления.
В случае использования режима event counter все данные в ячейках D0...D5 также должны содержаться в BCD-формате. Тетрада D5 в этом случае является старшей тетрадой, а тетрада DO — младшей.
Таблица 3.40
Единица измерения | Режим счета | Переход к следующей единице | Содержание счетчика месяца |
Hundredths of second | 00 to 99 | 99 to 00 | - |
Seconds | 00 to 59 | 59 to 00 | - |
Minutes | 00 to 59 | 59 to 00 | - |
Hours (24 h) | 00 to 23 | 23 to 00 | ; |
Hours (12h) | 12AM | - | - |
01 AM to 11 AM | - | - | |
12 PM | - | - | |
01 PMto 11 PM | 11 PMto 12 AM | - | |
Date | 01 to 31 | 31 to 01 | 1,3,5, 7, 8, 10, 12 |
01 to 30 | 30 to 01 | 4, 6, 9, 11 | |
01 to 29 | 29 to 01 | 2, year = 0 | |
01 to 28 | 28 to 01 | 2, year = 1,2,3 | |
Months | 01 to 12 | 12 to 01 | - |
Year | 0 to 3 | - | - |
Weekdays | 0 to 6 | 6 to 0 | - |
Timer | 00 to 99 | нет содержания | - |
Диапазон изменения величин во всех регистрах приведен в табл. 3.40.
В случае установки бита 2 регистра статуса в состояние «1» активизируется режим alarm, таймер и схема генерации прерываний (interrupt). Все эти функции могут быть определены с помощью регистра alarm control, располагающегося по адресу 08h. Возможные состояния этого регистра приведены на рис. 3.81.
Регистры, относящиеся к режиму alarm, следуют за регистром alarm control (адреса G9h...0Fh). Их адреса соответствуют счетным регистрам со смещением 08h. Сигнал alarm генерируется тогда, когда содержание этих регистров совпадает «бит в бит». Установки «год» и «педеля» не участвуют в генерации сигнала «alarm по определенной дате». Установки «дата» и «месяц» игнорируются при генерации сигнала «ежедневный alarm». Если выбран режим «недельный alarm», при генерации сигнала alarm будет учтено состояние регистра alarm weekdays (адрес OEh), показанного на рис. 3.82. При включении функции «часовой alarm» биты 6 и 7 регистра alarm hours должны соответствовать битам счетного регистра часов.
Таймер (адрес 07h) активизируется при установке в регистре статуса комбинации ХХОХ XIXX. Таймер может осуществлять счет от О (или от другой установленной величины) до 99. Флаг timer в регистре статуса должен быть установлен при превышении таймером указанной величины, а возврат обеспечивает программно. Этот флаг может генерировать внешнее прерывание при установке бита 3 в регистре alarm control.
Alarm от таймера может быть установлен по биту 6 в регистре alarm control. Когда счетное число таймера сравняется с величиной,
определенной в регистре alarm timer (адрес OFh) — при условии установки бита 1 в регистре статуса, — генерируется сигнал alarm. Этот сигнал может также сгенерировать внешнее прерывание при установке бита 7 в регистре alarm control.
Режим event counter (счетчик событий) активизируется установкой битов 4 и 5 в регистре статуса. Этот режим применяется в случае необходимости подсчета импульсов, поступающих на вход OSC1. Счетчик хранит 6 цифр, которые, как уже было сказано ранее, содержатся в памяти микросхемы в двоично-десятичном упакованном формате. Предельная величина счетчика 999 999 тактов входного импульса. Счетчик может генерировать сигнал alarm при программировании соответствующих регистров по адресам 09h, OAh, OBh и разрешения генерации сигнала alarm в регистре статуса (биты 4 и 5). Также должен быть установлен бит 1 в регистре статуса. Генерация внешнего прерывания на выводе 7 также возможна.
Все внешние прерывания, как уже было отмечено, передаются на вывод INT микросхемы. Активный уровень на этом выводе (при сгенерированном прерывании) — низкий. Возврат осуществляется установкой соответствующего флага в регистре статуса, который вызывал это прерывание. В режиме подсчета реального времени, если режим alarm не задействован, вывод INT может генерировать постоянные прерывания с частотой 1 Гц и скважностью 50%. Возможные состояния регистра alarm control в режиме event counter приведены на рис. 3.83.
Чтобы задействовать внешний генератор, к выводам OSC1 (вывод 1) и OSCO (вывод 2) нужно подключить кварцевый резонатор на частоту 32,768 кГц. Подстроенный конденсатор (триммер), подклю-
ченный между выводами OSC 1 и VDD, служит для подстройки частоты генератора. В таком режиме часы тактируются частотой 100 Гц. В режиме event counter или clock modes возможно задействование внешнего генератора частотой 50 Гц. В таком случае сигнал нужно подавать на вывод OSC1.
После сброса (power-on reset), осуществляющегося после включения питания, все регистры находятся в состоянии, определяемом схемой сброса: генератор 32,768 кГц, 24-часовой формат, первое января 0.00.00:00, на выводе INT — частота 1 Гц. Рекомендуется флаг stop counting в регистре статуса устанавливать после загрузки соответствующих счетных регистров. Только после этого можно разрешать счет. Загрузка неразрешенных (выходящих за диапазон) величин в регистры может привести к общему сбою счета.
Читателю, вероятно, пока не очень понятна логика работы с режимом alarm, с таймером, с генерацией прерываний. Для пояснения приводится рис. 3.84, где все связи отображены четко и в полном объеме. Протокол доступа по шине I2C для микросхемы PCF8583 точно такой же, как и для ЭСППЗУ с последовательным доступом, поэтому здесь он подробно не рассматривается.
В заключение приведем основные характеристики микросхемы, необходимые для проектирования.
Таблица 3.41
Параметр технических условий | Символ | Мин. | Норма | Макс. | Ед. изм. |
Напряжение питания (I2C активна) | Vdd | 2,5 | - | 6,0 | В |
Напряжение питания (I2C неактивна) | Vdd | 1,0 | - | 6,0 | В |
Потребляемый ток (fosc = 100 кГц) | 'dd | - | - | 200 | мкА |
Рабочая температура | ^amb | -40 | - | +85 | •с |
Микросхема выпускается в корпусах DIP8 и S08. Схема включения приведена на рис. 3.85.
Окончание таблицы 3.41
Параметр технических условий | Символ | Мин. | Норма | Макс. | Ед. изм. |
Температура хранения | ^stg | -60 | - | +150 | •с |
Интегрированная емкость генератора | Cose | - | 40 | - | пФ |
Стабильность генератора | Afosc | - | 2 ■ 10-7 | - | |
Входная частота в режиме event counter | f, | - | - | 1 | МГц |
Параметры кварцевого генератора | |||||
Последовательное сопротивление | Rs | - | - | 40 | кОм |
Параллельная входная емкость | Cl | - | 10 | - | пФ |
Подстроечный конденсатор (триммер) | C| | 5 | - | 25 | пФ |
DS1621
Эта микросхема [46] выпускается фирмой Dallas Semiconductors. В оригинальной документации она называется digital thermometer and thermostat. Микросхема в своем составе содержит датчик температуры, позволяющий проводить измерение температуры в диапазоне от --55 до +125 °С со стандартным шагом 0,5 °С либо в в диапазоне от -67 до +257 °F с шагом 0,9 °F. Кроме того, имеется встроенная схема термостата, позволяющая разрабатывать системы для поддержания определенной температуры. Среднее время преобразования сигнала — 1 с.
Расположение выводов микросхемы показано на рис. 3.86, а назначение выводов — в табл. 3.42.
Таблица 3.42. Назначение выводов микросхемы
Символ | Вывод | — . . . ------------------------------------------------------------------------------------------------------------------- Описание ; |
SDA | 1 | Линия SDA шины I2C |
SCL | 2 | Линия SCl-Шины I2C |
Tout | 3 | Сигнал термостатирования |
GND | 4 | Общий вывод |
А2 | 5 | Адресный вход 2 |
А1 | 6 | Адресный вход 1 |
АО | 7 | Адресный вход 0 |
Vdd | 8 | Питание«+» |
Измерение температуры происходит по оригинальной методике, показанной на рис. 3.87.
В составе микросхемы предусмотрено два генератора: один с высокой температурной стабильностью, второй — с сильной зависимостью частоты от температуры. Имеется также счетчик, который предварительно устанавливается на отсчет, соответствующий температуре -55 °С. Устройство «сумматор фронтов сигнала» компенсирует нелинейную зависимость частоты от температуры. Значение температуры представляется в 9-разрядном двоичном коде, данные передаются по шине двумя байтами. Вначале передается старший байт (начиная с бита MSB), вторым следует младший байт. Старший бит младшего байта носит название LSB и соответствует градации 0,5 °С. Семь последующих битов младшего байта всегда читаются как нулевые. Вообще-то точность измерения температуры можно по-
высить, произведя калибровку реального датчика в температурном диапазоне, введя необходимые поправки и применив методику, приведенную ниже. Но некалиброванный датчик нельзя использовать с повышенной точностью измерений.
Значения байтов DATA для некоторых температур приведены в табл. 3.43.
Таблица 3.43
Температура, 'С | Код |
+125 | 01111101 00000000 |
+25 | 00011001 00000000 |
+0,5 | 00000000 10000000 |
+0 | 00000000 00000000 |
-0,5 | 11111111 10000000 |
-25 | 11100111 00000000 |
-55 | 11001001 00000000 |
Микросхема может работать в режиме термостатирования. Для этого нужно задать верхнюю (ТН) и нижнюю (TL) температуры, естественно, в двоичном коде. Тогда напряжение на выводе Tout будет соответствовать диаграмме, приведенной на рис. 3.88.
При нагревании и превышении уставки ТН вырабатывается высокий уровень на выходе Тои1 и начинается процесс охлаждения. Когда температура станет ниже уставки TL, уровень сигнала на указанном выходе станет низким и вновь начнется нагрев. Реализуется так называемый процесс управления с гистерезисом температуры.
Разберемся теперь, как конфигурировать микросхему и получать данные от нее. На рис. 3.89 показан вид конфигурационного регистра. Он имеет следующие биты:
• DONE — бит завершения преобразования температуры в двоичный код. Когда DONE = 1, преобразование завершено;
• THF — флаг «высокая температура». Этот флаг устанавливается в «1». когда температура становится равной или больше установки ТН. Это г бит останется в положении «1», пока не будет сброшен программно или не будет отключено питание микросхемы;
• TLF — флаг «низкая температура». Этот флаг устанавливается в «1», когда температура становится равной или ниже установки TL. Работа с флагом аналогична работе с THF;
• NVB — флаг записи данных в энергонезависимую память. Установка в «1» свидетельствует о незавершенности записи ячейки памяти; после окончания записи аппаратно сбрасывается. Типичный цикл записи ячейки 10 мс;
• POL — бит полярности выхода Tout. При установке в «1» активный уровень высокий; при установке в «0» активный уровень низкий. Этот бит энерг онезависим;
• 1SHOT — бит управления циклом измерения. При установке в «1» преобразование выполняется однократно при получении соответствующей команды; при установке в «0» преобразование выполняется непрерывно. Этот бит энергонезависим.
Обычно микросхема функционирует в режиме непрерывного преобразования. Тем не менее, в режиме пониженного энергопотребления возможно использование однократных преобразований. Также в режиме однократного преобразования сигнал на выводе Тоц1 сохранит свое значение на момент окончания последнего преобразования вне зависимости от текущей температуры окружающей среды.
ентом. Допустимо использование команды только в режиме чтения;
• EEh — «старт счетчика» — команда начала преобразования температуры. После передачи этой команды не требуется передавать никаких дополнительных данных. В режиме непрерывного преобразования эта команда активизирует счетчик, заставляет его работать непрерывно;
• 22h — «стоп счетчика» — команда окончания преобразования температуры. После передачи команды не требуется дополнительных данных. В режиме непрерывного преобразования останавливает счетчик; для возобновления требуется передача предыдущей команды.
С помощью команд A8h и A9h можно повысить точность измерения температуры, вычислив ее с помощью формулы
где T[AAh], T[A9h], T[A8h] — соответствующие значения, считанные по командам.
Возможные комбинации управляющих сигналов приведены на рис. 3.90.
В табл. 3.44 приводятся режимы и содержание управляющих сигналов, с помощью которых возможно осуществить полноценную работу с микросхемой.
Таблица 3.44
Инструкция | Описание | Команда | Содержание данных в протоколе |
Режим преобразования температуры | |||
Чтение текущей температуры | Чтение регистра температуры | AAh | Чтение 2 байтов данных |
Чтение счетчика | Чтение счетчика с высоким температурным коэффициентом | A8h | Чтение байта данных |
Чтение slope | Чтение счетчика с низким температурным коэффициентом | A9h | Чтение байта данных |
Старт преобразования температуры | - | EEh | Не содержатся |
Стоп преобразования температуры | - | 22h | Не содержатся |
Режим термостата | |||
Обращение к ТН | Чтение и запись установки температуры в ТН | A1h | Запись данных |
Обращение к TL | Чтение и запись установки температуры в TL | A2h ACh | Запись данных |
Регистр конфигурации | Чтение и запись данных в регистр конфигурации | Запись данных |
Как уже было сказано ранее, датчик DS1621 измеряет температуру с определенной погрешностью. Минимальная погрешность (не более ±0,5 °С) лежит в диапазоне от -15 °С до +105 °С, за его пределами погрешность возрастает. График поведения погрешности датчика приведен на рис. 3.91.
В заключение приведем основные электрические характеристики DS1621.
Таблица 3.45
Параметр технических условий | Символ | Мин. | Норма | Макс. | Ед. изм. |
Напряжение питания | VDD | 2,7 | - | 5,5 | В I |
Время преобразования температуры | Ттс | - | 0,4 | 1,0 | с |
Частота сигнала SCL: в режиме low-speed в режиме fast-speed | 'scl | 0 0 | - | 100 400 | кГц |
Диапазон рабочих температур | -55 | - | +125 | 'С | |
Ток потребления в неактивном режиме | 'stby | - | - | 1 | мкА |
Литература:
Б. Ю. Семенов, «ШИНА I2С В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ» ,Москва СОЛОН-Р 2002
0 коммент.:
Отправить комментарий