Блоки таймеров общего назначения (GPT1 & GPT2)
Микроконтроллеры
семейства С166 могут содержать один
или два модуля таймеров общего
назначения с внешними входами /
выходами, функциями перезагрузки и
сравнения и возможностью
объединения. Один из модулей (GPT1)
имеет три 16-ти разрядных
реверсивных таймера. Таймер T3
работает как основной, а таймеры T2 и
T4 как дополнительные. Регистр
дополнительного таймера может
служить для перезагрузки основного
таймера при его переполнении или
для захвата содержимого основного
таймера при возникновении внешнего
события. Имеется также возможность
каскадного соединения основного и
одного из дополнительных таймеров
для увеличения разрядности. При
этом образуется 33-х разрядный
таймер (в цепочку включается еще и
триггер на выходе таймера T3). Каждый
из таймеров имеет собственный
регистр управления. На блок-схеме
GPT1 все временные значения
приведены для частоты 20МГц.
Таймеры могут
работать в следующих основных
режимах:
- счетчик внешних
входных импульсов с
максимальной частотой до 1,25
МГц;
- таймер с
внешним сигналом управления
(активный высокий или низкий
уровень);
- таймер с
входным тактом от внутреннего
тактового генератора, который
проходит через делитель с
программируемым коэффициентом
от 8 до 1024.
В таблице
приведены значения входной частоты
и периода таймера при частоте
тактового генератора 20 МГц.
Второй модуль
таймеров (GPT2) имеет два 16-ти
разрядных таймера и более высокое
разрешение по входу (в модуле GPT2
максимальная частота внешних
счетных импульсов может достигать
2.5 МГц). В таблице приведены
значения входной частоты и периода
таймера для различных
коэффициентов деления.
Устройство захвата - сравнения CAPCOM2
Большинство
кристаллов семейства С166 содержит
одно или два устройства захвата -
сравнения (CAPCOM1, CAPCOM2).
Функциональная схема CAPCOM2 для C164CI,
C167 при частоте 20 МГц приведена ниже
(модуль CAPCOM1 имеет аналогичную
структуру). В каждом устройстве CAPCOM
содержится два 16-разрядных таймера
с разрешением 400 нс при частоте 20МГц
с регистром перезагрузки (Reload), 16 (8
для C164CI) независимых 16-разрядных
регистров, программируемых на
работу с любым из таймеров T7/T8 и
регистры управления. Кристалл С167
содержит два устройства CAPCOM, т.е. в
общей сложности 32 канала.
Каждый таймер
может работать как в режиме
таймера, так и в режиме счетчика и
обеспечивает временную
синхронизацию работы каналов
захвата - сравнения. Входные
импульсы на тактовый вход таймеров
поступают или от встроенного
тактового генератора с
коэффициентом деления от 8 до 1024,
или с выхода таймера T6 модуля GPT2.
Это обеспечивает широкий диапазон
значений периода и позволяет точно
подобрать необходимое разрешение.
Разнообразные режимы работы
каналов CAPCOM позволяют реализовать
быстрый ввод-вывод, генерацию
сигналов ШИМ и одиночных импульсов,
простое цифро-аналоговое
преобразование, измерение
интервалов времени. Основные
режимы работы модулей следующие:
- захват значения
таймера по нарастающему /
спадающему фронту входного
сигнала или по любому из
фронтов;
- режимы
сравнения 0 и 1 - возможно
несколько сравнений в течение
одного периода таймера, в
первом случае происходит
только генерация прерывания, а
во втором - происходит
переключение сигнала на выходе
при каждом сравнении;
режимы
сравнения 2 и 3 - возможно только
одно сравнение в течение
одного периода таймера, в
первом случае устанавливается
только флаг прерывания, а во
втором - по первому сравнению
устанавливается флаг
прерывания, и сигнал на выходе
переключается в "1", сброс
выхода осуществляется по
переполнению таймера.
Устройство захвата - сравнения CAPCOM6
В состав C164CI
входит мощное 6-канальное
устройство захвата - сравнения Capture
Compare Unit CAPCOM6, предназначенное
для управления всеми типами
приводов двигателей постоянного и
переменного тока: безщеточными
постоянного тока, шаговыми
двигателями, индукционными
двигателями. Внешний trap-сигнал для
быстрого отключения выводов
обеспечивает высокий уровень
безопасности системы в целом. За
счет алгоритма генерации сигналов
ШИМ, получаемых с точностью 10
разрядов при частоте 20 КГц, и
программируемого интервала
"мертвого времени"
достигается минимальный уровень
шума и потребления. Кроме того,
доступен 8-разрядный Downgrade - C504
с идентичным устройством захвата -
сравнения.
Устройство CAPCOM6 содержит
два блока: 3-канальное 16-разрядное
устройство CAPCOM и
1-канальное 10-разрядное устройство
сравнения COMP для
генерации ШИМ.
Основные функции
устройства CAPCOM
перечислены ниже:
- Каждый канал
осуществляет управление двумя
выходами в режиме сравнения и
одним входом в режиме
считывания на лету. Каналы
программируются на режим
работы, например, управляемый
активный логический уровень
выхода в режиме сравнения
позволяет генерировать два
инверсных сигнала. Скважность
(Duty Cycle) импульсов на выходе
изменяется от 0 % до 100 %.
- В режиме
считывания на лету при
появлении переднего или
заднего фронта сигнала на
выводе CC6x происходит
сохранение содержимого
таймера 1 в регистре CCх.
- Таймер 12 может
работать в одном из двух
режимов: прямой счет и сброс,
прямой счет и обратный счет.
Тактирующая частота таймера 12
задается в пределах от Fcpu до
Fcpu/128. Для автоматической
генерации интервала мертвого
времени (“dead-time“) предусмотрен
регистр смещения Offset T12OFF.
Прерывания вырабатываются при
сбросе таймера, изменении
направления счета, условии
совпадения, считывании на лету.
Устройство
сравнения COMP содержит
таймер 13, тактирующая частота
которого задается в пределах от Fcpu
до Fcpu/128. Основным режимом работы
является генерация стандартной ШИМ
с привязкой к фронту на выходе COUT63.
Кроме того, импульсы, генерируемые
устройством COMP, могут модулировать
сигналы от CAPCOM при их совместной
работе режимах многоканальной ШИМ.
Наиболее интересна работа CAPCOM6 в
режиме сравнения, когда выходы CC6x
изменяют состояние при совпадении
содержимого таймера T12 с
содержимым регистра сравнения ССх
или T13 с содержимым CMP13.
Состояние выходов COUTx может
изменяться синхронно с выходами ССх
или с задержкой. В первом случае
выходы COUTx изменяют
состояние при совпадении
содержимого таймера с содержимым
регистра сравнения ССх, а
во втором - при совпадении
содержимого таймера с содержимым
регистра сравнения ССх
плюс значение регистра смещения
T12OFF. Тем самым осуществляется
генерация интервала “мертвого
времени“. Кроме того, существует
два основных режима работы
таймеров.
Рабочий режим 0 -
стандартная ШИМ (привязка к фронту).
Данный режим характерен для
таймеров T12 и T13.
Таймер считает от 000H до значения в
регистре периода и далее
происходит сброс.
Рабочий
режим 1 - симметричная ШИМ
(привязка к центру). В данном режиме
работает только таймер T12,
который ведет счет в прямом и
обратном направлении между 000H и
значением в регистре периода.
В режимах
многоканальной ШИМ устройства CAPCOM
и COMP совместно вырабатывают
разнообразные сигналы ШИМ:
- 4-х полюсная
многоканальная ШИМ
- 5-и полюсная
многоканальная ШИМ
- 6-и полюсная
многоканальная ШИМ
- Режим
коммутации блоков
Остановимся на режиме
коммутации блоков для
трехфазного безщеточного привода
двигателя постоянного тока. Это
режим управления приводом
двигателя с помощью сигналов от
датчиков Холла, подключенных к
входам CC6POS0#, CC6POS1#,
CC6POS2#. Дешифрация входных
сигналов от датчика Холла
осуществляется с помощью
специальной управляющей таблицы,
где предусмотрены случаи покоя
двигателя и его вращения влево и
вправо. Генерируемые сигналы на
выходах CCx немодулированы,
а на выходах COUTx прорезаны
выходным сигналом таймера T13.
Аналого-цифровой преобразователь (АЦП)
Ряд
микроконтроллеров семейства C166
имеет встроенный АЦП, построенный
по принципу аппроксимации со
схемой выборки - хранения на
кристалле. Схема
мультиплексирования позволяет
организовать до 16 и более входных
каналов. Для компенсации ошибок
преобразования служит
автоматическая самокалибровка.
Полное время преобразования АЦП
составляет 9,7 мкс при частоте
процессора 20 МГц.
При периодическом
опросе датчика следующее
преобразование производится
автоматически по окончании
предыдущего. Времена выборки и
преобразования устанавливаются в
регистре управления АЦП. После
окончания преобразования регистр
результата содержит 10-разрядный
результат и номер канала, а в
регистре управления
устанавливается флаг прерывания.
Если результат преобразования не
считывается до начала следующего
преобразования, устанавливается
флаг ошибки, и вырабатывается
прерывание. Для сохранения
результата внеочередного
преобразования по выбранному
каналу во время непрерывного
преобразования предусмотрен
специальный регистр. Ниже
приведена упрощенная блок-схема
АЦП.