Алгоритм PTS- цикла формирования PWM сигнала с использованием одного модуля EPA.
КІ-09-1,2 Весна-2013
П/занятие № 3. Практика формирования периодических широтно-модулированных сигналов модулями EPA и PTS
EPA2 con | TB=1 | CE =1 | M1=1 | M0=1 | RE=0 | AD=0 | ROT=0 | ON/RT=0 |
• Произвести загрузку управляющего слова в регистр EPA2_CON с адресом 1F68h
(записать фрагмент № 1 программы)
2. Выполнить процедуру конфигурирования разряда порта Р1.2 для реализации альтернативной функции
Записать фрагмент № 2 программы, пример в лекции 2 «Программирование MCS-96/196 на примере процедуры конфигурирования линий порта на выполнение альтернативных функций»).
3. Размаскировать и разрешить как PTS-прерывание обслуживание запроса EPA int2 т.е. INT_MASK.2 :=1 (08h),
PTSSEL(LO).2 :=1 (06h).
(записать фрагмент № 3 программы)
Очистить, выбранный в качестве базового времени, Таймер 2 (с адресом 1F9Eh-low) и инициализировать его, без запуска, загрузкой управляющего слова в регистр T2 Control с адресом 1F9Ch.
Режим работы Таймера 2 выбираем, например, такой – Fcr =16Мгц, с программным выбором счета в сторону увеличения и с периодом его изменения в 16 микросекунд.
Управляющее cлово для T2 Control -46h.
CE | UD | M2 | M1 | M0 | P2 | P1 | P0 |
(записать фрагмент № 4 программы)
• При этом параметры выходного сигнала таковы:
t2= 100000мс/16мс= 6250 периодов счета (t2= 1860h),
t1= 0,6*t2= 3750 периодов счета (t1= 0EA6h), t2 - t1 =09BAh.
5. Загрузить в исходное состояние регистр EPA2_Time(с адресом 1F6Ah), формирующий момент появления выходных событий. Первое событие наступит через время t1.
(записать фрагмент № 5 программы)
6. Создать управляющий блок PTSCB для формирования PWM сигнала с одним модулем EPA и разместить его в выбранном месте адресного пространства.
TMOD | TBIT | ||||||
PWM с одним и с двумя модулями EPA |
• В приведенном формате управляющего слова CON :
- Бит TMOD (Toggle Mode) при 1значении определяет работу с одним модулем EPA, при 0 значении с двумя.
- Бит TBIT (Toggle bit) имеет смысл только для варианта с одним модулем и определяет тип сложения в каждом PTS-цикле содержимого регистра EPAx_Time либо с одной, либо с другой константой, т.е. это семафор направления.
1. При CON.0=0 в качестве второго слагаемого выбирается Const 1 (t1);
2. При CON.0=1 в качестве второго слагаемого выбирается Const 2 (t2 - t1);
3. В исходном состоянии CON.0=1, а в конце каждого PTS-цикла изменяется на противоположное.
Алгоритм PTS- цикла формирования PWM сигнала с использованием одного модуля EPA.
• При t = t1 в модуле CCMy изменяется значение сигнала на выводе P1.y/EPAy, формируется запрос EPA int y=1 и начинается его обслуживание, в ходе которого происходит следующее:
1. Считывается код из регистра EPAy_Time;
2. При CON.0 =1 считанный код складывается с константой Const 2=t2 - t1;
3. Результат сложения t1+(t2 –t1)= t2 записывается в регистр EPAy_time;
4. Изменяется значение бита CON.0, т.е. CON.0:=0.
• При t=t2 вновь изменяется значение сигнала на выводе P1.y/EPAy, формируется запрос прерывания EPA int y=1 и опять начинается PTS- цикл, в котором происходит уже следующее:
1. Считывается код из регистра EPAy_time;
2. При CON.0 =0 считанный код складывается с константой Const 1= t1;
3. Результат сложения t2 + t1 записывается в регистр EPAy_time;
4. Изменяется значение бита CON.0, т.е. CON.0:=1.
• При t = t2 + t1 вновь изменяется значение выходного сигнала, формируется запрос прерывания и выполняется такая же последовательность действий, как при t = t1.
И так далее.
• Таким образом, на выводе P1.y/EPAyформируется широтно –модулированный сигнал с периодом t2 и скважностью t1/t2.
• Запуск процесса формирования PWM сигнала осуществляется установкой в 1 бита T2 Control.7 в соответствующем месте основной программы.
(записать фрагмент № 7 “PUSK”)
• Недостаток этого варианта в том, что появляется возможность сбоя сигнала при значениях скважности близких к 0 и 1.
В варианте с двумя модулями этот недостаток исчезает.
• Модулями ССМ0 и ССМ1 блока ЕРА формируются запросы прерывания int 4 и int 3
• Обычный и PTS вектора перехода на обслуживание прерываний находятся по адресам FF2008h и FF2048h для int 4, по адресам FF2006h и FF2046h для int 3.
Последовательность действий:
1. Модуль ССМ0 настраивается для работы в режиме сравнения с выдачей единичного значения сигнала путем загрузки управляющего слова E0h в регистр EPA0_CON с адресом 1F60h.
2. Формат регистра специальных функций EPAY_CON (Y=0-9)
RM | TB | CE | M1 | M0 | RE | AD | ROT | ON/RT |
§ TB(Time Base). Выбор таймера текущего времени. TB=0 это таймер Т1, TB=1 таймер Т2.
§ CE (Comparator Enable). Выбор режима захватаприCE=0, режима сравненияприCE=1.
§ RE(Reenable Entry). Разрешение на повторное использование данных, введенных в регистр EPA Time,в режиме сравнения.
• Модуль ССМ1 настраивается для работы в режиме сравнения с выдачей нулевого значения сигнала, а также на совместное с модулем ССМ0 использование вывода Р1.1путем загрузки младшего байта управляющего словаD0h врегистр EPA1_CON(Lo) с адресом 1F64hи старшего байта 01hв регистр EPA1_CON(Hi) с адресом 1F65h .
(записать фрагмент № 8 программы)
3. Выполнить процедуру конфигурирования разряда порта Р1.1 для реализации альтернативной функции
(записать фрагмент № 9 программы )
4. Размаскировать и разрешить как PTS-прерывание обслуживание запроса int 4 т.е. INT_MASK.4 :=1,
PTSSEL(LO).4 :=1иint 3 т.е. INT_MASK.3 :=1,
PTSSEL(LO).3 :=1 .
5. Режим работы Таймера 2 выбираем такой же как и в варианте первом.
6. Загрузить в исходное состояние регистр EPA0_Time :=0 (с адресом 1F62h), а код момента времени t1 в регистр EPA1_Time :=0EA6h (с адресом 1F66h).
(записать фрагмент № 10 программы)
7. Создать управляющие блоки PTSCB0, PTSCB1и разместить их в адресном пространстве.