Алгоритм 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и разместить их в адресном пространстве.

Наши рекомендации