|
ШИРОТНО-ИМПУЛЬСНЫЙ МОДУЛЯТОР МК 8ХC196КС/КDКраткая характеристика8XC196KC/KD содержит три модуля "Широтно-импульсный модулятор" (Pulse Width Modulator; PWM0-PWM2). На выходе каждого модуля формируется последовательность импульсов различной программируемой скважности и фиксированной частоты. PWM модули имеют следующие основные компоненты (см. рис. 6.1):
Рис. 7.1. Блок-схема PWMx модулей Второй бит в регистре управления IOC2 (см. Приложение) (SLOW_PWM) управляет периодом импульса на выходе PWMx, подключая или отключая делитель частоты на два. Подключение делителя частоты заставляет значение восьмибитового счетчика увеличиваться один раз каждые два временных состояния; его отключение - один раз каждое временное состояние (при тактовой частоте 8 МГц одно временное состояние составляет 250 нс).
Каждый регистр управления (PWM_Control Register) содержит 8-битовое значение, которое загружается в
буферный регистр при переполнении 8-битового счетчика. Когда значение счетчика становится
равным 0, уровень сигнала на выходе PWMx становится равным 1 (сигнал переполнения счетчика
поступает на вход S RS-триггера). Компараторы сравнивают содержимое буферных регистров с
текущим значением счетчика. Уровень сигнала на выходе PWMx остается равным 1, пока значение
счетчика не равно значению в буферном регистре. При равенстве указанных выше значений
уровень сигнала на выходе PWMх станет равным нулю. Когда произойдет очередное переполнение
счетчика, уровень сигнала на выходе снова станет равным 1 (загрузка 00H в PWMx_CONTROL фиксирует выход PWM= 0).
На рис. 7.2 приведены примеры форм сигналов на выходе PWM.
Рис. 7.2. Формы сигналов на выходе PWM Записывая значения в регистр PWMx_CONTROL и IOC2 (второй разряд), программист определяет, как долго уровень сигнала на выходе PWMx в течение периода импульса остается высоким, то есть, задавая длительность импульса при постоянном периоде, управляет скважностью. Значение, записанное в регистр PWMx_CONTROL, может составлять от 0 до 255 временных состояний (от 0 до 99.6% скважности).
Аббревиатура - PWM0_CONTROL
Размер - 1 байт
Находится по адресу 17H
Использовать для записи в окне HWindow 0
Использовать для чтения в окне HWindow 15
Аббревиатура - PWM1_CONTROL
Размер - 1 байт
Находится по адресу 16H
Использовать для записи/чтения в окне HWindow 1
Аббревиатура - PWM2_CONTROL
Размер - 1 байт
Находится по адресу 17H
Использовать для записи/чтения в окне HWindow 1
Установка бита SLOW_PWM (IOC2.2) подключает делитель частоты тактовых импульсов PWM, общая длительность выходного импульса в этом случае составит 512 временных состояний и значение PWMx_CONTROL умножится на 4. Очистка бита IOC2.2 отключает делитель частоты; общая длительность выходного импульса в этом случае составит 256 временных состояний и значение PWMx_CONTROL умножится на 2.
Используйте следующие формулы, чтобы вычислить период импульса на выходе PWMx и его длительность (PWMx=1) (табл. 7.1).
Обратите внимание, что PWMx_CONTROL - 8-битовое значение и Fosc - тактовая частота резонатора в MГц.
Таблица 7.1
Например, если Fosc равна 16 MГц и IOC2.2 = 0, тогда период импульса на выходе PWMx 512/16 = 32 микросекунды. Если значение, записанное в регистр PWM0_CONTROL равно 8AH (138 - десятичное число) и IOC2.2 = 0, то уровень сигнала на выходе PWM0 остается высоким в течение (138x2)/16 = 17.25 микросекунд (и низким - 32-17.25 = 14.75 микросекунд, скважность при этом составляет приблизитель-но 54% (17.25/32~0/54). Когда бит IOC2.2 установлен, при тех же значениях будут генерироваться импульсы с периодом 1024.16 = 64 микросекунды и длительностью (138x4)/16 = 34.5 микросекунд (уровень сигнала на выходе остается низким в течение 29.5 микросекунд), скважность та же (34.5/64~0.54).
Каждый выход PWMx мультиплексируется с выводом порта. В таблице 7.2 приведены выводы параллельных портов, альтернативная функция использования которых - соответствующий выход широтно-импульсного модулятора. Также приводится управляющий регистр, установка одного из битов которого вместо функции порта выбирает альтернативную функцию использования порта - выход PWM. При выборе PWM1 или PWM2 функция вывода отключает квазидвунаправленную функцию порта 1.
Таблица 7.2
Как PWM модули, так и модуль быстрого вывода (HSO) может генерировать последовательность прямоугольных импульсов, различных по скважности и длительности. Фильтрация этих импульсов будет создавать гладкий аналоговый сигнал.
Чтобы ограничить колебания выходного сигнала, сигнал сначала надо буферизировать, а затем отфильтровать.
В качестве фильтра используется или простая RC-цепь, или активный фильтр.
Рис. 7.3. Схема использования PWM выхода как ЦАП
На рис. 7.3 приведена типовая схема, используемая для малого выходного тока (меньше 100 мA). Обратите внимание на температурный дрейф и дрейф источника питания при выборе компонентов для внешней схемы цифро-аналогового преобразователя (ЦАП). С правильно подобранными компонентами, используя или PWM, или HSO выходы, может быть изготовлен высокоточный 8-битовый ЦАП.
|