Перейти к содержимому


AT89C51RD2. Описание работы массива счётчиков (PCA).

Написано opengl , в Переводы с английского.

перевод даташита русская документация AT89C51 микроконтроллер
Ссылка на источник обязательна. Родной даташит здесь.Прикрепленный файл  AT89C51RD2_ED2.pdf (1.14МБ)


Перевод раздела из даташита на м/с AT89C51RD2
стр.36 Programmable Counter Array (PCA)

Программируемый массив счётчиков.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PCA обеспечивает больше возможностей без вмешательства ЦПУ по сравнению со
стандартными таймерами/счётчиками. Это касается уменьшения программного кода и
увеличение точности в работе. PCA содержит отдельный таймер/счётчик который
используется совместно с массивом из пяти модулей захвата/сравнения.
В качестве источника входного счётного сигнала может использоваться любой из
нижеперечисленных:

* Внешняя тактовая частота (Fclk_perif)/6
* Внешняя тактовая частота (Fclk_perif)/2
* Переполнение Таймера0
* Внешний вывод ECI (P1.2)

Каждый из модулей захвата/сравнения может быть запрограммировано для работы
в одном из следующих режимов:

* Захват по возрастающему/спадающему фронту
* Программный таймер
* Высокоскоростной выход
* ШИМ

Модуль 4 имеет дополнительный режим работы в качестве сторожевого таймера.
(см. раздел "PCA Watchdog Timer", стр. 47 даташита).

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

Ниже приведён перечень выводов микроконтроллера могущих использоваться для
работы с PCA. В противном случае вывод может использоваться как обычный
дискретный вывод.
+------------------------+--------------------+
| компонент PCA | Вывод микросхемы |
+------------------------+--------------------+
| 16-разрядный счётчик | P1.2/ECI |
| 16-разрядный модуль 0 | P1.3/CEX0 |
| 16-разрядный модуль 1 | P1.4/CEX1 |
| 16-разрядный модуль 2 | P1.5/CEX2 |
| 16-разрядный модуль 3 | P1.6/CEX3 |
+------------------------+--------------------+

Для выбора источника синхронизации общего счётчика служат биты CPS1 и CPS0
регистра CMOD (см. таблицу 22) Кроме того, в этом регистре есть дополнительные
биты для работы с PCA.

Таблица 22. Регистр CMOD.
CMOD - PCA Counter Mode Register (D9h)
7 6 5 4 3 2 1 0
+------+------+-----+-----+-----+------+------+-----+
| CIDL | WDTE | - | - | - | CPS1 | CPS0 | ECF |
+------+------+-----+-----+-----+------+------+-----+

+-----+------+---------------------------------------------------+
| бит | имя | описание |
+-----+------+---------------------------------------------------+
| | | Counter IDle Control |
| 7 | CIDL | Сбросить для разрешения работы в режиме idle. |
| | | Установить для запрета работы в режиме idle. |
+-----+------+---------------------------------------------------+
| | | WatchDog Timer Enable |
| 6 | WDTE | Сбросить для запрета работы модуля 4 в кач-ве WDT |
| | | Установить для разрешения. |
+-----+------+---------------------------------------------------+
| 5 | - | Резерв. |
+-----+------+---------------------------------------------------+
| 4 | - | Резерв. |
+-----+------+---------------------------------------------------+
| 3 | - | Резерв. |
+-----+------+---------------------------------------------------+
| | | PCA Count Pulse Select |
| 2 | CPS1 | CPS1 CPS0 источник синхронизации |
| | | ---- ---- ---------------------- |
+-----+------+ 0 0 Fclk_perif/6 |
| | | 0 1 Fclk_perif/2 |
| 1 | CPS0 | 1 0 переполнение таймера0 |
| | | 1 1 вывод ECI/P1.2 |
+-----+------+---------------------------------------------------+
| | | PCA Enable Counter Overflow Interrupt |
| 0 | ECF | Сбросить для запрета прерывания по биту CF в CCON |
| | | Установить для разрешения прерывания по биту CF |
+-----+------+---------------------------------------------------+
Состояние после сброса 00ХХХ000b.
Нет побитовой адресации.

Регистр CCON содержит бит управления запуском PCA и флаги для таймера (CF)
и каждого модуля (см.таблицу 23).

* Бит CR (CCON.6) устанавливается программно для запуска PCA и сбрасывается
для остановки.
* Бит CF (CCON.7) устанавливается когда PCA-счётчик переполняется, при этом
может произойти прерывание, если бит ECF в регистре CMOD установлен.
Программно бит CF может быть только сброшен.
* Биты с 0 по 4 являются флагами для модулей с 0 по 4 соответственно и
устанавливаются аппаратно при сравнении или захвате. Программно могут быть
только сброшены.

Таблица 23. Регистр CCON.
CCON - PCA Counter Control Register (D8h)
7 6 5 4 3 2 1 0
+------+------+-----+------+------+------+------+------+
| CF | CR | - | CCF4 | CCF3 | CCF2 | CCF1 | CCF0 |
+------+------+-----+------+------+------+------+------+

Значение в регистре после сброса = 00X0 0000b
Регистр допускает битовую адресацию
Функции сторожевого таймера реализуются 4-м модулем (См. рис.19).
Система прерываний от PCA показана на рис.17.