Периферийные устройства

Микросхема часов реального времени PCF8583

 Назначение выводов

pcf8583OSC1 – вход внешнего генератора 32768Гц.
OSC2 - выход генератора.
A0 – Линия выбора адреса
Vss – общий провод питания
SDA – линия данных шины I2C
SCL – линия тактового сигнала шины I2C
INT – выход прерывания для внешнего устройства. Требует подключения подтягивающего резистора.
Vdd– линия питания




Схема распределения памяти

Фактически микросхема PCF8583 представляет собой статическое ОЗУ, емкостью 256 байт, у которого первые 16 байт являются регистрами специального назначения. Назначение некоторых регистров зависит от режима работы микросхемы. Режим задается в регистре состояния имеющем адрес 00h. Все числа в регистрах часов по умолчанию хранятся в BCD формате. 

Адрес

Описание

00h

Регистр состояния

01h

Доли секунд

1/10с

1/100с

02h

Секунды

10с

03h

Минуты

10мин

1мин

04h

Часы

10ч

05h

Дата

10дн

06h

Месяц

10мес

1мес

07h

Таймер

10дн

08h

Регистр тревог

09h

Тревога. Доли секунд

1/10с

1/100с

0Ah

Тревога. Секунды

10с

0Bh

Тревога. Минуты

10мин

1мин

0Ch

Тревога. Часы

10ч

0Dh

Тревога.Дата

0Eh

Тревога. Месяцы

0Fh

Таймер тревоги

10h…FFh

Статическое ОЗУ

 Регистр состояния

Регистр состояния содержит биты задания режимов работы микросхемы и флаги.

 

7

6

5

4

3

2

1

0

SC

HLC

CM1

CM0

Mask

Alarm

FT1

FT0

  • FT0 – флаг Timer. Если бит Alarm установлен в 0, данный бит переключается с частотой 1 Гц.
  • FT1 – флаг Timer. Если бит Alarm установлен в 0, данный бит переключается с частотой ½ мин.
  • Alarm – бит разрешения режима «тревога» ( 0 - запрещен, 1 – разрешен)
  • Mask – при установке 1 позволяет считывать значения даты и месяца (05h,06h) в виде числа, а не в BCD формате.
  • CM1, CM0 – биты установки режима. 00 – часы с входной частотой 32768Гц, 01 – часы с входной частотой 50Гц, 10 – счетчик событий, 11 – режим тестирования.
  • HLC –
  • SC – флаг останова счета (0 – счет идет, 1 – счет остановлен по условию) 

Режим часов (Clock mode)

Режим часов устанавливается путем записи 00b или 01b в биты 4,5 регистра состояния.

В данном режиме микросхема осуществляет счет импульсов от тактового генератора и на основе этих данных вычисляет время и дату. Значения заносятся в регистры 01h-07h в двоично-десятичном формате. Старший полубайт отвечает за десятки, а младший за единицы. При чтении данных в регистрах 05h,06h рекомендуется устанавливать флаг mask. Это позволяет читать дату и месяц, не проводя дополнительных вычислений. Все регистры доступны на чтение и запись. Это позволяет установить текущее время, просто записав нужное значение в соответствующий регистр.

 В режиме часов имеются некоторые особенности работы регистров 04h-05h.

 Регистр Часов (04h)

Начальная установка после сброса – 00000000b 

7

6

5

4

3

2

1

0

HM

AM/PM

DH1

DH0

H3

H2

H1

H0

  • H0-H3 – единицы часов в BCD формате
  • DH0-DH1 – десятки часов
  • AM/PM – флаг до и после полудня.
  • HM – режим работы регистра часов (0 – 24-часовой формат AM/PM не задействован, 1 – 12-часовой формат с установкой флага AM/PM). 

Регистр Дата (05h)

Начальная установка после сброса – 00000001b 

7

6

5

4

3

2

1

0

Y1

Y0

DD1

DD0

D3

D2

D1

D0

  • D0-D3 – единицы дней в BCD формате
  • DD0-DD1 – десятки дней
  • Y0-Y1 – год. В случае установки флага Mask данные биты читаются как 0 

Регистр Месяц (06h)

Начальная установка после сброса – 00000001b 

7

6

5

4

3

2

1

0

W2

W1

W0

DM0

M3

M2

M1

M0

  • M0-M3 – единицы номера месяца в BCD формате
  • DM0 – десятки номера месяца
  • W0-W2 – номер недели в месяце. В случае установки флага Mask данные биты читаются как 0 

В режиме часов можно запустить таймер (07h). Он включается, если в регистре состояния записывается комбинация ХХ0Х Х1ХХb. Таймер имеет диапазон счета от 0 до 99. В случае переполнения таймера устанавливается флаг Timer в регистре состояния. Сброс этого флага осуществляется программно, путем обнуления соответствующих битов. Выбор функции счета  таймера выполняется в регистре тревог - Alarm Control (08h). В этом же регистре возможно подключить выход таймера к выводу INT микросхемы. 

Режим Alarm

Микросхема PCF8583 имеет возможность генерировать сигнал события (прерывания) при совпадении значений в счетных регистрах и регистрах alarm. При генерации сигнала могут учитываться не все регистры. Например, при ежедневном сигнале игнорируются значения, находящиеся в регистрах Тревога.Дата, Тревога.Месяцы.

 

Регистр Alarm Control (08h)

 

7

6

5

4

3

2

1

0

IntA

AT

A1

A0

IntT

T2

T1

T0

  • T0-T2 – функции таймера

000 – без таймера
001 – десятки и сотни секунд
010 – секунды
011 – минуты
100 – часы
101 – дни
110 – не используется
111 – тестовый сигнал на всех интервалах

  • IntT – прерывание от таймера (0 - нет, 1 - есть)
  • A0-A1 – функция alarm (00 – нет, 01 – ежедневный alarm, 10 – еженедельный alarm, 11 – alarm по дате).
  • AT – alarm по таймеру (0 - выкл, 1 - вкл)
  • IntA  - прерывание по режиму alarm (0 – нет, 1 – есть)

You have no rights to post comments