Скачиваний:
18
Добавлен:
01.05.2014
Размер:
1.51 Mб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 5

ШИРОТНО - ИМПУЛЬСНЫЙ МОДУЛЯТОР

Цель работы: 1. Изучение функциональных возможностей широтно-импульсного модулятора микроконтроллеров I8XC196KC.

2. Изучение порядка программирования и применения широтно - импульсного модулятора микроконтроллера I8X196KC.

1. Общие сведения

1.1. Краткая характеристика широтно-импульсного модулятора.

8XC196KC содержит три модуля “ Широтно-импульсный модулятор “ (Pulse Windth Modulation; PWM). Выход каждого модуля (PWM Output) формирует импульсы различной программируемой) скваж-ности и фиксированной частоты.

PWM модули имеют следующие основные компоненты (см.Рис.5.1):

- Восьмибитовый счетчик (8 Bit Counter);

- Делитель частоты (синхронизации);

- Три компаратора (Comparator);

- Три регистра управления (PWMx Control Register);

- Три буферных регистра (Holding Register);

- Три RS триггера.

Бит SLOW_PWM (IOC2.2) управляет периодом выхода PWM, подключая или отключая делитель частоты. Подключение делитея частоты заставляет восьмибитовый счетчик увеличиваться один раз каждые два времени состояния; его отключение заставляет счетчик увеличиваться один раз каждое время состояния. (При тактовой частоте 8 МГц одно время состояния составляет 250 нс.)

Каждый регистр управления (PWM Control Register) содержит 8-битное значение, которое загружается в буферный регистр при переполнении 8-битного счетчика. Когда значение счетчика становится равным нулю, выход PWMx становится равным “1” (Cигнал переполнения счётчика поступает на вход “S” RS-триггера). Компараторы сравнивают содержимое буферных регистров с текущим

значением счетчика. Выход PWMx остается равным “1” , пока

Рис.5.1. Блок-схема PWM модуля

значение счетчика не равно значению в буферном регистре. Когда значение счётчика станет равным значению буферного регистра, выход PWM станет равным нулю. Когда произойдёт очередное переполнение счетчика, выход снова станет равным “1” . (Загрузка 00H в PWMx_CONTROL фиксирует выход PWM равным “0”.)

На рис.5.2 приведены примеры форм волн на выходе PWM.

Рис.5.2. Формы волн выхода PWM

1.2. Программирование скважности PWM

Регистр PWMx_CONTROL, вместе с битом SLOW_PWM (IOC2.2), определяет, как долго выход PWMx в течение импульса задерживается в состоянии равным “1”, то есть позволяет управлять скважностью. Значение, записанное в регистр PWMx_CONTROL может быть от 0 до 255 времен состояния (от 0 % до 99.6 % скважности).

PWMx Control Register

PWMO_CONTROL

17H

Hwindow 0 (Write),Hwindow 15 (Read)

PWM1_CONTROL

16H

Hwindow 1 (Read /Write)

PWM2_CONTROL

17H

Hwindow 1 (Read /Write)

PWMx_CONTROL

7

6

5

4

3

2

1

0

Установка бита SLOW_PWM (IOC2.2) подключает делитель частоты тактовых импульсов PWM; общая длина выходного импульса в этом случае составит - 512 времен состояния и значение PWMx_CONTROL умножается на 4. Очистка IOC2.2 отключает делитель частоты; общая длина выходного импульса в этом случае составит - 256 времен состояния и значение PWMx_CONTROL умножается на 2.

В таблице 5.1. приведены выходные частоты PWM при определенных частотах тактового генератора.

Таблица 5.1. Выходные частоты PWM

IOC2.2

8 MГц

10 MГц

16 MГц

20 MГц

Частота на XTAL1 (FOSC)

0

15.6 KГц

19.6 KГц

31.25 KГц

39.1 KГц

1

7.8 KГц

9.8 KГц

15.63 KГц

19.5 KГц

Используйте следующие формулы, чтобы вычислить период PWM и время, в течение которого выход PWM =“1”.

Обратите Внимание, что PWMx_CONTROL - 8-битное значение и Fosc - тактовая частота резонатора, в MГц.

Выход

PWMx

PWMx=“1”

Период

PWM

переполнение

счетчика

Делитель частоты отключен (IOC2.2=0)

Делитель частоты подключен (IOC2.2=1)

Период PWM (в микросекундах)

=512 / Fosc

=1024 / Fosc

PWMx =“1” (в микросекундах)

=PWMx_CONTROL x 2 / Fosc

=PWMx_CONTROL x 4 / Fosc

Например, если Fosc = 16 MГц и IOC2.2=0 , тогда период сигнала на выходе PWM - 32 микросекунды. Если в PWM0_CONTROL записано 8AH (десятичное число 138) и IOC2.2 =0 , PWM0 находится в состоянии “1” 17.25 микросекунд (и в состоянии “0” 14.8 микросекунд) из всех 32 микросекунд периода, скважность при этом приблизительно 54 %. Когда IOC2.2 в еденичном состоянии, те же самые значения будут генерировать период 64 микросекунды и PWM0 будет находится в состоянии “1” - 34.5 микросекунд (и находится в состоянии равным “0” 29.5 микросекунд), скважность та же самая, - приблизительно 54 %.

1.3. Предоставление PWM выходов

Каждый выход PWM мультиплексируется с контактом порта. В таблице 5.2 приведены контакты портов ввода-вывода , альтернатив-ная функция которых - соответствующий выход широтно-импульсного модулятора. Также приводится управляющий регистр, установка одного из битов которого, вместо функции порта, выбирает альтернативную функцию порта - выход PWM. При выборе PWM1 или PWM2 функция вывода отключает квази-двунаправленную функцию Порта 1 .

Таблица 4.2. Альтернативные функции вывода PWM

PWM Выход

Альтернативная функция порта “Выход PWM” допускается когда:

PWM0 P2.5

IOC1.0 = 1 (PWM_SEL)

PWM1 P1.3

IOC3.2 = 1 (PWM1_SEL)

PWM2 P1.4

IOC3.3 = 1 (PWM2_SEL)

Input/Output Control Register 1

IOC1

16H

Hwindow 0 (Write), Hwindow 15 (Read)

IOC1

7

6

5

4

3

2

1

0

PWM_SEL

Input/Output Control Register 2

IOC2

0BH

Hwindow 0 (Write), Hwindow 15 (Read)

IOC2

7

6

5

4

3

2

1

0

SLOW_PWM

Input/Output Control Register 3

IOC3

0CH

Hwindow 1 (Read /Write)

IOC3

7

6

5

4

3

2

1

0

R

R

R

R

PWM2_SEL

PWM1_SEL

SEL

1.4. Генерация аналоговых выходов (цифро-аналоговый преобразователь)

Как PWM модули, так и быстродействующий модуль вывода (HSO) могут генерировать цепочку прямоугольных импульсов, различных по скважности и по периоду. Фильтрация этих импульсов будет создавать гладкий аналоговый сигнал.

Чтобы сделать колебания выходного сигнала в допустимом аналоговом диапазоне, сначала надо буферизовать сигнал и затем отфильтровать его.

На рис.5.3. приведена структура схемы, необходимой для того, чтобы создать гладкий аналоговый сигнал. В качестве фильтра используется или простая RC-цепь или активный фильтр.

Рис. 5.3 Блок-схема буферного ЦАП

На рис.5.4 приведена типовая схема, используемая для малого выходного тока (меньше чем 100 мA). С правильно подобранными компонентами, используя или PWM или HSO выходы, может быть изготовлен высокоточный 8-битный цифро-аналоговый преобразователь.

Рис.5.4 Схема использования PWM выхода как ЦАП

2. Порядок выполнения работы

1. Изучить построение блока PWM микроконтроллера. Особое внимание уделить программированию регистров управления PWM и доступ к ним через окна.

2. Написать программу формирования аналогового сигнала средствами ШИМ микроконтроллера. Используется канал PWM1 (обусловлено схемной реализацией лабораторного макета). Сформировать изменение аналогового сигнала по форме заданной преподавателем из приложения 1.

3. Отладить программу и загрузить в контроллер. Запустить программу на выполнение. Наблюдать результаты на светодиодах и на виртуальных панелях. Для этого необходимо вставить в текст написанной Вами программы специальный модуль предложенный разработчиками и находящийся в файле ad.a96, который обеспечивает визуализацию процесса на экране в виде виртуальных приборов, оттранслировать и загрузить программу в контроллере. Затем следует выйти из интегрированной оболочки и запустить программу виртуальных приборов C:\INTEL\OSCILL\!oscil.bat.

4. Изменить режимы работы ШИМ и параметры формирования аналогового сигнала.

5. Зафиксировать полученные результаты работы, обратив внимание на используемые регистры управления.

6. Продемонстрировать работу преподавателю.

3. Содержание отчета

1. Алгоритм программирования блока ШИМ. Нахождение управляющих регистров в окнах 8XC196KC.

2. Формат управляющего слова PWM1_COMMAND .

3. Схемы алгоритмов и реализующие их программы .

9

Соседние файлы в папке Лабораторные работы по МПС