МИКРОСХЕМА ИНТЕГРАЛЬНАЯ К1921ВК01Т. Руководство пользователя (от 10.09.2019) - часть 7

 

  Главная      Книги - Разные     МИКРОСХЕМА ИНТЕГРАЛЬНАЯ К1921ВК01Т. Руководство пользователя (от 10.09.2019)

 

поиск по сайту            правообладателям  

 

   

 

   

 

содержание      ..     5      6      7      8     ..

 

 

 

МИКРОСХЕМА ИНТЕГРАЛЬНАЯ К1921ВК01Т. Руководство пользователя (от 10.09.2019) - часть 7

 

 

 

 

97 

14

 

Блоки ШИМ 

Архитектура  блока  ШИМ  разработана  по  принципу  минимальной  нагрузки  на 

процессор,  что  достигается  автоматизацией  формирования  выходных  импульсов  с 
настраиваемыми  пользователем  параметрами.  Так,  после  минимальных  настроек  этот 
блок  способен  работать  самостоятельно  как  выделенный  канал  ШИМ  с  собственным 
таймером, формируя выходные сигналы PWM_A и PWM_B.  

Микроконтроллер содержит девять блоков ШИМ (первые шесть из которых PWM0 – 

PWM5  являются  блоками  ШИМ  высокого  разрешения)  и  шесть  блоков  захвата, 
объединенных общей схемой синхронизации.  

Каждый блок ШИМ поддерживает следующую функциональность: 
- 16-разрядный таймер; 
-  два  вывода  PWM_A  и  PWM_B,  которые  могут  работать  в  режиме  фронтовой  и 

центрированной  модуляции  как  полностью  независимо,  так  и  комплементарно  с 
разделением генератором «мертвого времени»; 

- выходы PWM_A и PWM_B могут управляться в зависимости от событий цифровых 

компараторов  блока  АЦП,  а  также  от  событий  блока  аналоговых  компараторов, 
обеспечивая автоматический релейный режим поддержания заданной величины; 

- программное управление выходами ШИМ; 
- программное задание фазы счетчиков таймера для координации работы нескольких 

блоков ШИМ; 

- аппаратный контроль фазы при координации работы нескольких блоков ШИМ; 
- предотвращение  наложения  фронтов  за  счет  генератора  «мертвого  времени»  с 

независимой схемой задержки переднего и заднего фронтов выходного сигнала; 

- сигнал аварии может переводить выводы PWM_A и PWM_B в высокое, низкое или 

Z-состояние; 

- однократная и циклическая обработка сигналов аварии; 
- все  события  могут  инициировать  прерывания,  а  также  запускать  работу 

секвенсоров блока АЦП; 

- программируемый предделитель событий позволяет снизить нагрузку на процессор 

при обработке прерываний; 

- ШИМ-сигнал 

может 

модулироваться 

высокочастотным 

сигналом 

при 

использовании драйверов ключей с импульсным трансформатором. 

 

Для  начала  работы  с  блоками  ШИМ  для  разрешения  тактирования  необходимо 

установить  бит  PWMEN  регистра  APB_CLK,  а  также  установить  биты  поля  PWMRST 
регистра PER_RST1. 

 
Описание сигналов и выводов блока ШИМ: 

- PWM_A и PWM_B – выходы ШИМ; 
- TZ0 –  TZ5  –  входы,  соединенные  с  выводами  микроконтроллера  PWM_TZ0  – 

PWM_TZ5,  с  которых  принимаются  сигналы  аварии  (общие  для  всех  блоков  ШИМ,  и 
каждый блок может использовать или не использовать эти сигналы); 

-  PWM_SYNCI  –  вход,  соединенный  с  одноименным  выводом  микроконтроллера, 

служащий для приема внешнего синхросигнала; 

-  PWM_SYNCO  –  внутренний  сигнал  синхронизации  на  выходе  блока  0  ШИМ, 

являющий синхросигналом для остальных блоков ШИМ и блоков захвата;  

-  PWM_SOCA  и  PWM_SOCB  –  выходные  сигналы  для  запуска  секвенсоров  блока 

АЦП  (формируются  триггером  событий  блока  ШИМ).  Кроме  того,  эти  сигналы 
передаются на выводы микроконтроллера PWM_An и PWM_Bn (n – номер блока ШИМ); 

- TZINT, INT – внутренние сигналы прерываний. 
 

 

 

98 

Функциональная схема блока ШИМ показана на рисунке 14.1. 
 

 

 

 

 

Рисунок 14.1 – Блок ШИМ 

 

14.1

 

Таймер 

Таймер  представляет  собой  двунаправленный  счетчик  (TBCTR),  тактируемый 

сигналом  TBCLK,  который  формируется  на  основе  синхросигнала  SynCLK.  Частота 
сигнала TBCLK задается произведением коэффициентов двух делителей. Коэффициенты 
задаются  полями  CLKDIV  и  HPCLKDIV  регистра  TBCTL.  Для  работы  других  блоков 
ШИМ  счетчик  позволяет  формировать  события,  такие  как  совпадение  по  периоду 
CTR = PRD  (TBCTR  =  TBPRD),  совпадение  с  нулем  CTR  =  Zero  (TBCTR  =  0000h), 
совпадение  с  регистрами  CTR = CMPA  и  CTR = CMPB  (TBCTR = CMPA  и 
TBCTR = CMPB,  соответственно).  Событие  TBCTR  =  FFFFh  влияет  только  на  флаг 
CTRMAX регистра TBSTS.  

Всеми настройками работы счетчика таймера управляет регистр TBCTL. 

 

 

99 

Состояние счетчика отражают флаги регистра TBSTS.  
Входной  сигнал  тактирования  TBCLK  для  первого  блока  ШИМ  формируется  на 

основе  сигнала,  приходящего  с  вывода  PWM_SYNCI  микроконтроллера.  Кроме  того 
можно  программно  формировать  синхроимпульсы  PWM_SYNCI  посредством  записи 
единицы в бит SWFSYNC. 

На  выходе  первого  блока  ШИМ  формируется  сигнал  SYNCO,  который  является, 

синхросигналом  для  остальных  блоков  ШИМ  (см.  рисунок  14.2).  Сигнал  SYNCO  имеет 
три  источника  –  сигнал  на  выводе  PWM_SYNCI  микроконтроллера  (в  том  числе  и 
программно  сгенерированный),  событие  CTR  =  Zero  и  CTR  =  CMPB.  Выбор  источника 
осуществляется посредством поля SYNCOSEL. 

В  блоке  таймера  находятся  регистры  начальной  фазы  счета  TBPHS  и  периода 

(максимального значения счетчика)  TBPRD.  Регистр  периода имеет теневой регистр  для 
синхронной  загрузки  значения,  до  которого  счетчик  осуществляет  счет.  Управление 
загрузкой осуществляется битом PRDLD. 

Счетчик может работать в трех режимах счета (см. рисунок 14.2): 
- вверх (от 0000h до значения TBPRD, затем сброс в 0000h и т. д.); 
- вниз (от значения TBPRD до 0000h, затем загрузка значения TBPRD и т. д.);  
-  вверх-вниз  (от  0000h  до  значения  TBPRD,  затем  от  значения  TBPRD  до  0000h  и 

т. д.).  

 
Параметры счета задаются полем CTRMODE.  
 

 

 

 

 

Рисунок 14.2 – Режимы работы счетчика (при значении периода 0004h, указано как 

Tpwm) 

 
На рисунке для режима счета «вверх-вниз» дополнительно указано поведение флага 

CTRDIR. 

 
Синхронизация таймеров блоков ШИМ 

Реализована  возможность  организации  четырех  вариантов  схемы  синхронизациии 

блоков  ШИМ  с  помощью  переключателей,  управляемых  полем  SYNCSELECT  регистра 
PWM_CTRL, смотри рисунок 14.3а).  

 

 

 

 

100 

 

 

 

Рисунок 14.3 – Схема и особенности синхронизации модулей ШИМ 

 
Система  синхронизации  таймеров  включает  в  себя  таймеры  всех  блоков  ШИМ. 

Каждый  блок  ШИМ  имеет  вход  синхронизации  PWM_SYNCI  и  выход  синхронизации 
PWM_SYNCO.  

 

 

101 

Если бит PHSEN установлен, то в счетчик таймера будет автоматически загружаться 

значение регистра TBPHS при выполнении каждого из условий: 

-  изменение  входного  сигнала  PWM_SYNCI  (в  этом  случае  загрузка  значения 

TBPHS  в  регистр  TBCTR  происходит  на  следующий  такт  TBCLK  после  поступления 
импульса  на  вход  PWM_SYNCI  с  задержкой  в  два  системных  такта,  если 
TBCLK = SysCLK, или один такт, если TBCLK ≠ SysCLK); 

-  запись  единицы  в  бит  SWFSYNC  (программная  синхронизация),  которая 

генерирует импульс синхронизации, аналогичный импульсу с входа PWM_SYNCI. 

 
В  режиме  счета  вверх-вниз  необходимо  запрограммировать  бит  PHSDIR,  чтобы 

задать направление счета таймера после синхронизации. 

Если  бит  PHSEN  сброшен,  блок  ШИМ  не  будет  реагировать  на  входной  сигнал 

синхронизации,  а  только  передавать  напрямую  этот  сигнал  на  выход  PWM_SYNCO, 
чтобы  тактировать  другие  блоки  ШИМ.  Следующая  особенность  схемы  –  генерация  и 
распространение сигнала синхронизации от блока ШИМ занимает один такт TBCLK.  

К примеру, если по событию синхронизации блока 0 в счетчик блока 1 должен быть 

записан  ноль,  то  этот  ноль  запишется  только  на  следующий  такт  после  события, 
см. рисунок  14.3б).  Таким  образом,  при  синхронизации  от  другого  блока  ШИМ  нужно 
всегда  учитывать  этот  такт  и  записывать  значение  фазы,  следующее  по  порядку,  в 
соответствии с режимом счета, см. рисунок 14.3в). 

 

14.2

 

Компаратор 

Компаратор  –  это  блок,  сравнивающий  значение  счетчика  таймера  с  заданными 

значениями  порогов  срабатывания.  Значения  хранятся  в  регистрах  CMPA  и  CMPB. 
Значения,  записываемые  по  адресам  регистров  CMPA  и  CMPB,  предварительно 
размещаются в теневых регистрах. Это нужно для синхронной загрузки новых значений.  
Управление загрузкой регистров CMPA и CMPB осуществляется битами SHDWAMODE и 
SHDWBMODE, а также полями LOADAMODE и LOADBMODE регистра CMPCTL.   

 Блок  компаратора  формирует  на  выходах  два  события  CTR  =  CMPA  и 

CTR = CMPB,  возникающие  в  случае  совпадения  значения  счетчика  с  регистром  CMPA 
и/или регистром CMPB, соответственно.  

Для каждого компаратора событие может возникать: 
- один раз за период, если счетчик считает вверх или вниз; 
- один  раз  за  период,  если  счетчик  считает  вверх-вниз,  но  при  этом  значение  в 

регистре CMPA/CMPB равно 0000h или значению TBPRD; 

- два раза за период, если счетчик считает вверх-вниз и при этом значение в регистре 

CMPA/CMPB лежит в диапазоне 0001h – (TBPRD – 1). 

На рисунках 14.4 – 14.7 приведены примеры формирования сигналов событий.   
 
 
 
 
 
 
 
 

 
 
 
 
 

 

 

102 

 

 

 

Р

ис

ун

ок

 14.5 

– 

Д

иа

гра

м

м

а ра

бот

ы п

ри

 с

че

те в

ни

з 

 

 

 

Р

ис

ун

ок

 14.7 

– 

Д

иа

гра

м

м

а ра

бот

ы п

ри

 с

че

те в

ве

рх

-вн

из

С

ин

хро

ни

за

ци

я 

при

 с

че

те в

ве

рх

 

 

 

 

Р

ис

ун

ок

 14.4 

– 

Д

иа

гра

м

м

а ра

бот

ы п

ри

 с

че

те в

ве

рх

 

 

 

Р

ис

ун

ок

 14.6 

– 

Д

иа

гра

м

м

а ра

бот

ы п

ри

 с

че

те в

ве

рх

-вн

из

С

ин

хро

ни

за

ци

я 

при

 с

че

те в

ни

з 

 

 

 

 

103 

14.3

 

Обработчик событий 

Обработчик событий - блок, управляющий поведением сигналов на линиях PWMA и 

PWMB  (см.  рисунок  14.1)  в  зависимости  от  возникающих  событий  на  входе  блока  и 
направления счета счетчика таймера. На поведение выходных сигналов влияют импульсы 
входных сигналов при возникновении событий: CTR = PRD, CTR = Zero, CTR = CMPA, 
CTR = CMPB. 

Основные действия с сигналами PWMA и PWMB: 
- переключение в единицу или ноль; 
- инверсия (переключение в противоположное состояние); 
- сохранение без изменений. 
Поведение  сигналов  задается  независимо  друг  от  друга.  Кроме  этого,  обработчик 

событий позволяет программно задавать состояние сигналов PWMA и PWMB и величину 
«мертвого  времени»  ШИМ.  Управление  работой  блока  производится  посредством 
регистров  AQCTLA,  AQCTLB,  AQSFRC,  AQCSFRC.  Существует  вероятность  того,  что 
несколько  событий  могут  произойти  одновременно.  Для  таких  ситуаций  обработчик 
событий использует систему приоритетов событий (таблицы 14.1 – 14.3).  

 

Т а б л и ц а   1 4 . 1  – Распределение приоритетов событий при счете вверх 

Событие 

Приоритет 

Программное 

1 (наивысший) 

CTR = TBPRD 

CTR = CMPB (счет вверх) при счете вверх 

CTR = CMPA (счет вверх) при счете вверх 

4 (низший) 

 
Т а б л и ц а   1 4 . 2  – Распределение приоритетов событий при счете вниз 

Событие 

Приоритет 

Программное 

1 (наивысший) 

CTR = Zero 

CTR = CMPB (счет вниз) при счете вниз 

CTR = CMPA (счет вниз) при счете вниз 

4 (низший) 

 
Т а б л и ц а   1 4 . 3  – Распределение приоритетов событий при счете вверх-вниз 

Событие 

Приоритет 

Программное 

1 (наивысший) 

CTR = CMPB (счет вверх) при счете вверх или 
CTR = CMPB (счет вниз) при счете вниз 

CTR = CMPA (счет вверх) при счете вверх или  
CTR = CMPA (счет вниз) при счете вниз 

CTR = Zero или CTL = PRD 

CTR = CMPB (счет вверх) при счете вниз или  
CTR = CMPB (счет вниз) при счете вверх 

CTR = CMPA (счет вверх) при счете вниз или  
CTR = CMPA (счет вниз) при счете вверх 

6 (низший) 

 
В режиме счета вверх: 
-  если  компаратор  запрограммирован  так,  что  CMPA/CMPB  ≤  TBPRD  (счет  вверх), 

то событие произойдет при CTR = CMPA/CMPB;  

-  если  компаратор  запрограммирован  так,  что  CMPA/CMPB  >  TBPRD  (счет  вверх), 

то событие не произойдет;  

- если компаратор запрограммирован на срабатывание при счете вниз, то событие не 

произойдет. 

 

 

104 

В режиме счета вниз: 
- если компаратор запрограммирован так, что CMPA/CMPB ≤ TBPRD (счет вниз), то 

событие произойдет при CTR = CMPA/CMPB;  

- если компаратор запрограммирован так, что CMPA/CMPB ≥ TBPRD (счет вниз), то 

событие произойдет при CTR = TBPRD;  

-  если  компаратор  запрограммирован  на  срабатывание  при  счете  вверх,  то  событие 

не произойдет. 

В режиме счета вверх-вниз: 
-  если  счетчик  считает  вверх,  а  компаратор  запрограммирован  так,  что 

CMPA/CMPB < TBPRD (счет вверх), то событие произойдет при CTR = CMPA/CMPB;  

-  если  CMPA/CMPB  ≥  TBPRD  (счет  вверх),  то  событие  произойдет  при 

CTR = TBPRD; 

-  если  счетчик  считает  вниз,  а  компаратор  запрограммирован  так,  что 

CMPA/CMPB < TBPRD (счет вниз), то событие произойдет при CTR = CMPA/CMPB; 

-  если  CMPA/CMPB  ≥  TBPRD  (счет  вверх),  то  событие  произойдет  при 

CTR = TBPRD. 

 

 

Рисунок 14.8 – Работа таймера при счете вверх-вниз с симметричным выходом 

(центрированная модуляция) 

 
На рисунках 14.8 – 14.11 показано поведение линий PWMA и PWMB при различных 

видах модуляции. На рисунках приняты обозначения, пояснения к которым приведены в 
таблице 14.4. 

  

Т а б л и ц а   1 4 . 4  – Пояснения к обозначениям на рисунках 14.9 – 14.11 

Обозначение 

Пояснение 

CA 

CB 

События CTR = PRD, CTR = CMPA, CTR = CTRB, соответственно. 
Символ «×» указывает на то, что при возникновении этого события 
сигнал на линии PWMA/PWMB остается без изменений. Пунктирными 
линиями отмечены моменты возникновения события.  
Так, например (см. рисунок 14.9), при возникновении события 
 CTR = CTRB сигнал на линии PWMA остается без изменения, а 
сигнал на линии PWMB переключается в ноль   

× 

× 

× 

Событие CTR = Zero 

Символ «↑»/«↓» указывает на то, что при 
возникновении этого события сигнал на 
линии PWMA/PWMB переключается в 
единицу/ноль 

↑ 

↓ 

CA 

CA 

Событие CTR = CMPA  

↑ 

↓ 

CB 

CB 

Событие CTR = CMPB  

↑ 

↓ 

 

 

105 

 

 

Рисунок 14.9 – Независимый режим работы выходов (фронтовая модуляция) 

 

 

 

Рисунок 14.10 – Симметричный режим работы при счете вверх-вниз 

(центрированная модуляция) 

 

 

 

Рисунок 14.11 – Ассиметричный режим работы при счете вверх-вниз 

 
 
 

 

 

106 

14.4

 

Пороговый выключатель 

Пороговый  выключатель  контролирует  выходные  сигналы  PWMA  и  PWMB 

обработчика событий и позволяет удерживать их в определенном заданном пользователем 
состоянии  в  случае  прихода  сигнала  триггера  от  цифровых  компараторов  блока  АЦП. 
Этот блок удобен для организации релейного поддержания заданного уровня какой-либо 
физической величины, например для организации контура тока. В этом случае  цифровой 
компаратор, к каналу АЦП которого подключен сигнал датчика тока контура, формирует 
сигнал  о  превышении  током  задания,  а  соответствующий  пороговый  выключатель 
реагирует  на  это  превышение  и  включает/отключает  соответствующий  силовой 
транзистор посредством влияния на выход ШИМ.  

Функциональные возможности: 
-  входные  события  от  компараторов  блока  АЦП  могут  использоваться  всеми 

блоками ШИМ; 

-  при  регистрации  события  от  компаратора  блока  АЦП,  выходные  сигналы 

обработчика событий могут быть переведены в состояние логической единицы, нуля или 
оставлены без изменений; 

- поддерживаются однократное и циклическое срабатывания для удержания выхода; 
-  входное  событие  от  компаратора  блока  АЦП  может  анализироваться  в 

однократном и циклическом режимах; 

-  событие  срабатывания  компаратора  блока  АЦП  может  быть  сгенерировано 

программно; 

- пороговый выключатель может быть отключен, если он не требуется. 
 
Управление  пороговым  выключателем  осуществляется  посредством  регистров 

HDSEL, HDCTL и HDFRC. 

 
Функционирование 

Когда выходные сигналы компараторов блока АЦП переходят в состояние высокого 

уровня,  формируется  событие.  Каждый  пороговый  выключатель  блока  ШИМ  может 
использовать,  а  может  не  использовать  эти  события  в  своей  работе;  выбор,  по  сигналу 
какого  компаратора  блока  АЦП  формировать  событие  удержания,  задается  с  помощью 
регистра HDSEL. Длительность импульса на входном сигнале от компаратора блока АЦП 
не  должна  быть  меньше  периода  системного  синхросигнала.  Каждый  входной  сигнал 
компаратора  блока  АЦП  должен  быть  настроен  на  однократное  или  циклическое 
формирование события, выбор режима задается битами CBC и OSHT, а источник события 
полем DCMP. 

При  получении  события  от  компаратора  блока  АЦП  в  режиме  циклической 

обработки немедленно формируется реакция на основе содержимого регистра HDCTL, в 
результате чего меняется состояние сигналов на выходе порогового выключателя  взамен 
полученных  от  обработчика  событий  PWMA  и/или  PWMB  на  заданное  пользователем  в 
регистре  HDCTL.  Дополнительно  устанавливается  флаг  CBC  в  регистре  HDFLG,  и 
генерируется прерывание PWM_HDINT. Удержание выходных сигналов PWMA и PWMB 
заканчивается по событию TBCTR = 0000h, при условии, что событие компаратора блока 
АЦП  уже  не  активно.  Таким  образом,  в  режиме  циклической  обработки  состояние 
удержания сбрасывается в каждом периоде ШИМ. При этом флаг CBC остается активным 
до его программного сброса. Если после сброса флага CBC вновь будет получено событие 
компаратора блока АЦП, то флаг установится вновь. 

При получении события компаратора блока АЦП в режиме однократной обработки, 

также  немедленно  формируется  реакция  на  основе  содержимого  регистра  HDCTL, 
которая    меняет  состояние  выходных  сигналов  PWMA  и/или  PWMB.  В  дополнение, 
устанавливается  флаг  OST,  и    генерируется  прерывание  PWM__HDINT.  Удержание 

 

 

107 

выходных сигналов будет производиться до программного сброса записью единицы в бит 
OST регистра HDCLR. 

Способ  удержания  выходных  сигналов  при  получении  события  компаратора  блока 

АЦП программируется индивидуально для выходных сигналов PWMA и PWMB в регистр 
HDCTL. 

 

14.5

 

Генератор задержки ШИМ 

Блок  имеет  на  входе  сигналы  ШИМ  A  и  B  с  выходов  обработчика  событий,  а  на 

выходах  повторяет  эти  сигналы,  но  со  вставкой  задержки  («мертвое  время»)  в  момент 
переключения сигналов (если это необходимо). 

Задержку  можно  учесть  при  программировании  обработчика  событий,  но  чтобы  с 

высокой  вероятностью  избежать  ошибок,  желательно  использовать  генератор  задержки 
ШИМ.  

 
Основные функции генератора: 

-  генерация  пары  выходных  сигналов  (PWMA  и  PWMB),  с  выдержкой  интервалов 

(задержек) времени относительно входных сигналов PWMA, PWMB; 

-  программирование  задержки  для  активного  высокого  и  активного  низкого  уровня 

сигналов каналов PWMА и PWMB; 

- добавление программируемой задержки передних фронтов сигналов; 
- добавление программируемой задержки для задних фронтов сигналов; 
- возможность передачи сигналов с входов на выходы без изменений. 
 
Генератор  задержки  ШИМ  программируется  посредством  регистров  DBCTL, 

DBRED  и  DBFED.  Структурная  схема  генератора  «мертвого  времени»  ШИМ 
представлена на рисунке 14.12. 

 

 

 

Рисунок 14.12 – Структурная схема генератора «мертвого времени» ШИМ 

 

Функционирование 

Генератор  задержки  ШИМ  может  работать  с  четырьмя  источниками  (фронты 

сигналов PWMA и PWMB). Выбор источника задается полем MODE регистра DBCTL. 

Поле  POLSEL  позволяет  задать  инверсию  (переключение  значения  на 

противоположное) сигнала после внесения задержки (см. рисунок 14.13). 

Величины  задержек  по  переднему  и  заднему  фронту  программируются  раздельно 

посредством регистров DBRED и DBFED, соответственно. 

 

 

108 

 

 

Рисунок 14.13 – Временные диаграммы работы генератора «мертвого времени» в 

типовой конфигурации 

 

14.6

 

Фильтр коротких импульсов 

Фильтр коротких импульсов предназначен для блокирования прохождения на выход 

импульсов  с  длительностью  меньше  заданной.  Этот  блок  может  применяться,  если 
драйвер  силового  ключа  инвертора  не  имеет  такой  функции,  а  для  обеспечения 
правильного  режима  работы  транзистора  необходимо  запретить  открытие/закрытие 
транзистора на очень короткие времена. 

Основные функции фильтра: 
- программируемая ширина минимального пропускаемого импульса; 
- фильтр может быть отключен, если он не требуется. 
 
Ширина минимального импульса, допускаемого к прохождению на выход, задается 

в  регистре  FWDTH  в  тактах  PCLK  и  может  принимать  значение  от  00h  (фильтр 
выключен) до FFh. Импульсы длительностью меньше заданной пропускаться не будут. 

 

14.7

 

Модулятор 

Блок позволяет модулировать выходной ШИМ сигнал с помощью высокочастотных 

импульсов  программируемой  скважности.  Модулирование  требуется  для  управления 
силовыми ключами через импульсный трансформатор. 

Основные функции модулятора: 
- программируемая частота; 
- программируемая ширина первого импульса; 
- программируемая скважность второго и последующего импульсов; 
- модулятор может быть отключен (бит CHPEN регистра PCCTL). 
 
Модулятор  программируется  посредством  регистра  PCCTL.  Структурная  схема 

модулятора приведена на рисунке 14.14. 

 

 

 

109 

 

 

Рисунок 14.14 – Структурная схема модулятора 

 

Функционирование 

Ширина  первого  импульса  программируется  независимо  полем  OSHTWTH,  это 

требуется  для  открывания  ключа.  Для  остальных  импульсов  частота  модуляции 
формируется  на  основе  системной  частоты  при  помощи  делителя,  программируемого 
полем SHPFREQ. Скважность импульсов программируется полем CHPDUTY.  

Значения поля OSHTWTH лежат в диапазоне 0h – Fh. 
Ширина L первого импульса определяется по формуле 
  

L = T × 8 × (OSHTWTH + 1),  

(14.1) 

 

где T – период синхросигнала SysCLK. 

 
Значения поля CHPDUTY лежат в диапазоне 0h – 7h. 
Скважность D (с шагом 12,5 %) последующих импульсов определяется по формуле 
 

D = 12,5 × (CHPDUTY + 1). 

(14.2) 

 
На рисунке 14.15 приведен пример временных диаграмм работы модулятора. 

  

 

 

Рисунок 14.15 – Временные диаграммы работы модулятора 

 

 

110 

14.8

 

Детектор сигнала аварии 

Блок контролирует выводы PWMA и PWMB и может переводить их в определенное 

(запрограммированное) состояние в случае, если поступит сигнал аварии. 

Основные функции: 
-  входные  сигналы  аварии  с  выводов  микроконтроллера  PWM_TZ0  –  PWM_TZ5 

могут использоваться любым блоком ШИМ; 

-  в  случае  если  поступит  сигнал  аварии,  выводы  ШИМ  могут  быть  переведены  в 

одно  из  состояний:  логического  нуля,  логической  единицы,  высокоимпедансное  или 
оставлены без изменения; 

-  поддерживается  однократная  блокировка  выводов  для  ситуации  короткого 

замыкания или перегрузки по току; 

- поддерживается циклическая блокировка  для режима ограничения тока; 
- каждый входной источник сигнала аварии может быть обработан в однократном и 

циклическом режимах; 

- поддерживается программная генерация сигнала аварии; 
- детектор сигнала аварии может быть отключен, если он не требуется. 
 
Детектор  сигнала  аварии  программируется  посредством  регистров  TZSEL,  TZCTL, 

TZEINT, TZFLG, TZCLR и TZFRC. 

 
Функционирование 

Структурная схема детектора сигналов аварии показана на рисунке 14.16. 
 

 

 

 

Рисунок 14.16 – Структурная схема детектора сигналов аварии 

 
Переход  входных  сигналов  аварии  PWM_TZn  из  состояния  логической  единицы  в 

состояние  логического  нуля  формирует  событие  аварии.  Каждый  блок  ШИМ  может 
использовать  или  не  использовать  эти  события  в  своей  работе  (программируется 
посредством  регистра  TZSEL).  События  могут  формироваться  синхронно  (с  цифровым 
фильтром  помех)  или  асинхронно  (программируется  через  регистры  GPIO 
микроконтроллера).  При  синхронной  обработке,  длительность  импульса  на  входном 
сигнале сбоя должна быть не меньше периода синхросигнала TBCLK. Если же обработка 
производится в асинхронном режиме, то событие формируется и обрабатываются даже в 

 

 

111 

том  случае,  если  по  какой-либо  причине  отключилось  тактирование  микроконтроллера. 
Каждый  входной  сигнал  аварии  должен  быть настроен  на  однократное  или циклическое 
формирование события аварии (программируется посредством регистра TZSEL). 

При  получении  события  аварии  в  режиме  циклической  обработки  немедленно 

выполняется  действие,  заданное  регистром  TZCTL,  и  устанавливается  флаг  CBC  в 
регистре  TZFLG,  а  также  генерируется  прерывание  PWM_TZINT  (если  разрешено  в 
регистре  TZEINT  и  контроллером  прерываний).  Аварийное  удержание  выводов 
заканчивается  по  событию  TBCTR  =  0000h,  при  условии,  что  событие  аварии  уже 
неактивно.  Таким  образом,  в  режиме  циклической  обработки  событие  аварии 
сбрасывается в каждом периоде ШИМ, хотя флаг аварии CBC остается установленным до 
принудительного  программного  сброса.  Если  после  сброса  регистра  флага  CBC  вновь 
будет  получено  событие  аварии,  то  флаг  установится  вновь.  На  рисунке  14.17  показана 
схема формирования прерывания. 

 

 

 

Рисунок 14.17 – Схема формирования прерывания 

 
При  получении  события  аварии  в  режиме  однократной  обработки,  немедленно 

выполняется  действие,  заданное  регистром  TZCTL,  и  устанавливается  флаг  OST  в 
регистре  TZFLG,  а  также  генерируется  прерывание  PWM_TZINT  (если  разрешено  в 
регистре  TZEINT  и  контроллером  прерываний).  Аварийное  удержание  выводов 
заканчивается после принудительного программного сброса записью в бит OST регистра 
TZCLR.  

Аварийное  состояние  выводов  при  получении  события  сбоя  программируется 

индивидуально для выхода PWMА и PWMВ полями TZA и TZB регистра TZCTL. 

 

14.9

 

Триггер событий 

Основные функции: 
- получение событий, сформированных таймером и компаратором; 
- использование информации о направлении счета (вверх/вниз); 
- использование  делителя  событий,  для  формирования  сигнала  прерывания  и 

команды на запуск секвенсоров блока АЦП, со следующими состояниями: 

- делитель выключен (срабатывание на каждое событие); 
- срабатывание на каждое второе событие; 
- срабатывание на каждое третье событие; 

-  предоставление  доступа  процессора  к  содержимому  регистра  флагов  событий  и 

счетчикам событий; 

- возможность  программного  выставления  прерывания  и  сигнала  запуска 

секвенсоров блока АЦП. 

 
 

 

 

 

112 

Функционирование 

Триггер  событий  (не  показан  на  рисунке  14.1)  программируется  посредством 

регистров  ETSEL,  ETPS,  ETFLG,  ETCLR  и  ETFRC.  Функциональная  схема  триггера 
событий показана на рисунке 14.18. 

 

 

 

Рисунок 14.18 – Структурная схема триггера событий 

 
Триггер  может  генерировать  прерывания  (если  разрешено  битом  INTEN  регистра 

ETSEL)  по  каждому  первому,  второму  или  третьему  событию  (поле  INTPRD),  которое 
задается  полем  INTSEL.  Количество  возникших  событий  отражается  в  поле  INTCNT. 
Счетчик  INTCNT  считает  от  00b  до  INTPRD  и  сбрасывается  только  вместе  с  отправкой 
активного прерывания. 

Когда возникает совпадение INTCNT и INTPRD, то возможны варианты: 
- если прерывание разрешено и сброшен флаг INT (регистр ETFLG), то генерируется 

прерывание  и  устанавливается  флаг  INT,  а  счетчик  INTCNT  сбрасывается  в  00b  и 
начинает считать заново; 

-  если  прерывание  запрещено  или  флаг  INT  установлен,  то  счетчик  перестает 

считать события; 

- если прерывание разрешено, но флаг от предыдущего прерывания еще не сброшен, 

то счетчик хранит свое максимально достигнутое значение (INTCNT = INTPRD) до сброса 
флага  INT.  Это  позволяет  обработать  еще  прерывание,  пришедшее  за  то  время,  пока 
обрабатывалось предыдущее. 

 
Каждая  запись  в  INTPRD  сбрасывает  счетчик  INTCNT.  Запись  единицы  в  бит  INT 

регистра ETFRC увеличит значение счетчика на единицу.  

 

 

 

 

 

 

 

 

содержание      ..     5      6      7      8     ..