Период сигнала PWM (T) зависит от максимального числа, до которого выполняется счет на сложение. При Nmax = 255 период в 510 раз больше периода следования импульсов на счетном входе базового счетчика. При Nmax = 511 и 1023 это отношение равно 1022 и 2046 соответственно.
Разряд СТС1 регистра TCCR1B в режиме PWM не используется. Запрос прерывания T/Cl OVF формируется при переходе базового счетчика от числа 0 к числу 1. При записи кода в регистр OCR1 код запоминается в регистре временного хранения. Перепись кода в регистр OCR1 выполняется при появлении в базовом счетчике максимального числа, что предотвращает появление в сигнале PWM импульса со случайной длительностью.
В качестве выхода ОС1 у микроконтроллера типа 2313 используется вывод порта РВЗ, а у микроконтроллера типа 4433 - вывод порта PB1
Таймер-счетчик типа Е входит в состав периферийных устройств микроконтроллеров типа 8515, 8535, т163 и тЮЗ и имеет имя Т/С1. Он содержит шестнадцатиразрядный базовый счетчик и выполняет функцию сравнения/PWM в двух каналах (А и В) и функцию захвата.
В структуру таймера-счетчика типа Е входят все элементы структуры таймера-счетчика типа D. Элементы на схеме, используемые при выполнении функции сравнения/РWМ, образуют канал А.
Дополнительными элементами являются компаратор канала В (KB), регистр сравнения OCR1BH, L, два дополнительных разряда СОМ1В0 и СОМ1В1 в регистре TCCR1A, дополнительный разряд OCF1B в регистре T1FR и дополнительный разряд OCIE1B в регистре T1MSK. В канале В формируется запрос прерывания Т/С1 СОМРВ.
Сигнал, изменяемый при выполнении функции сравнения, и сигнал PWM поступают на выход ОС1В.
Выводы микроконтроллера, используемые в качестве входов Т1 и ICP и выходов ОС1А и ОС1В у микроконтроллеров разных типов, указаны в табл.14.
Таблица 14
Выводы Т/С1 | Тип МК | |||
8515 | 8535 | t163 | m10З | |
Т1 | РВ1 | РВ1 | РВ1 | PD6 |
ICP | ОБ. | PD6 | PD6 | PD4 |
ОС1А | PD5 | PD5 | PD5 | РВ5 |
ОС1В | О.В. | PD4 | PD4 | РВ6 |
О.В. - отдельный вывод корпуса.
В микроконтроллере типа ml63 в регистре TCCR1A имеются два дополнительных разряда - FOC1A и F0C1B. При установке разряда в единичное состояние при выполнении функции сравнения сигнал на выходе ОС1А/В принимает требуемое значение немедленно, не дожидаясь совпадения сравниваемых кодов. Запрос прерывания при этом не формируется и базовый счетчик в нулевое состояние не сбрасывается Разряд сбрасывается в нулевое состояние аппаратно. В режиме PWlVf эти разряды не используются.
В регистре SFIOR имеется дополнительный разряд PSR10. При установке этого разряда в единичное состояние пересчетная схема сбрасывается в исходное (нулевое) состояние. Разряд PSR10 сбрасывается в нулевое состояние аппаратно.
В состав сторожевого таймера входят автономный генератор, пере-счетная схема, регистр управления WDTCR (№ $21, у МК типа t28 - №$01) и схема управления.
Генератор GWDT формирует импульсную последовательность. Частота следования импульсов зависит от напряжения питания микроконтроллера (1 МГц при Vcc = 5 В, 350 кГц при Vcc = 3 В). В пересчетной схеме ПС, содержащей многоразрядный счетчик, выполняется деление частоты сигнала генератора. На восьми выходах пересчетной схемы формируются сигналы, частота которых в N раз меньше частоты входного сигнала. Выбор выхода пересчетной схемы с требуемым коэффициентом деления Доопределяется комбинацией состояний разрядов WDPO, WDP1 л WDP2 регистра WDTCR в соответствии с табл.15.
Таблица 15
WDP2 | WDP1 | WDP0 | N | TOUT, Усc = 5 В | TOUT, Vcc = 3 В |
0 | 0 | 0 | 16К | 15 мс | 47 МС |
0 | 0 | 1 | 32 К | 30 мс | 94 мс |
0 | 1 | 0 | 64 К | 60 мс | 190 мс |
0 | 1 | 1 | 128 К | 120 мс | 380 мс |
1 | 0 | 0 | 256 К | 240 мс | 750 мс |
1 | 0 | 1 | 512 К | 490 мс | 1,5 с |
1 | 1 | 0 | 1024 К | 970 мс | 3,0 с |
1 | 1 | 1 | 2048 К | 1,9 с | 6,0 с |
При единичном состоянии разряда WDE регистра WDTCR на выходе схемы управления СУ с частотой выбранного сигнала формируется запрос прерывания WDT Reset, при появлении которого происходит перезапуск микроконтроллера WDT Reset (п.4.2).
По команде с мнемокодом WDR (№ 117) выполняется сброс пересчетной схемы в исходное (нулевое) состояние.
Для запуска сторожевого таймера необходимо в ходе программы выполнить команду WDR и затем установить в единичное состояние разряд WDE регистра WDTCR.
Для остановки сторожевого таймера необходимо установить в единичное состояние разряд WDTOE регистра WDTCR и одновременно повторно установить в единичное состояние разряд WDE, затем не позднее, чем через четыре такта после этого сбросить в нулевое состояние разряд WDE. Разряд WDTOE сбрасывает в нулевое состояние аппаратно через четыре такта после установки его в единичное состояние. У микроконтроллера типа 1200 разряд WDTOE отсутствует.
Перезапуск сторожевого таймера происходит при выполнении команды WDR в ходе программы при единичном состоянии разряда WDE.
Программа, в которой предусмотрено использование сторожевого Таймера, должна периодически с интервалом меньшим, чем период формирования запроса прерывания WDT Reset, с использованием команды WDR перезапускать сторожевой таймер. Если при появлении сбоя команда WDR своевременно не выполняется, происходит перезапуск микроконтроллера. Интервал времени TOUT, через который следует выполнять команду WDR в ходе программы, при разных значениях коэффициента деления N и напряжения питания Vcc указан в табл.15.
Аналого-цифровой преобразователь входит в состав периферийных устройств микроконтроллеров типа 115, 4433, 8535, ml63 и ml0 Аналого-цифровой преобразователь содержит базовый преобразователь, выполняющий преобразование аналогового сигнала в десятиразрядный двоичный код методом последовательных приближении, аналоговый мультиплексор для подключения одного из входов микроконтроллера к входу базового преобразователя, регистр управления ADMUX (№ $07), регистр управления-состояния ADCSR (№ $06) п шестнадцатиразрядный регистр результата ADCH, L (№№ $05, $04).
Для подачи напряжения питания и опорного напряжения используются отдельные выводы микроконтроллера AVCC, AGND и AREF.
Вывод AGND соединяется с выводом GND микроконтроллера. Напряжение на выводе AVCC не должно отличаться от напряжения на выводе VCC микроконтроллера более, чем на ± 0,3 В. Напряжение на выводе AREF должно находиться в пределах от уровня на выводе AGND до уровня на выводе AVCC.
Аналоговые сигналы принимаются на выводы микроконтроллера ADC0, ADC1... ADC7. Величина напряжения аналогового сигнала может находиться в пределах от уровня на шине AGND до уровня на шине AVCC. Аналоговый мультиплексор AM подключает один из входов микроконтроллера к входу базового преобразователя CONV. Двоичный код номера подключаемого входа задается комбинацией состояний разрядов MUX2, MUX1, MUX0 регистра ADMUX.
Преобразование аналогового сигнала в цифровой код в преобразователе CONV выполняется под управлением тактового сигнала, частота которого должна находиться в пределах от 50 кГц до 200 кГц.
Тактовый сигнал формируется в пересчетной схеме ПС путем деления частоты тактового сигнала микроконтроллера СК. Пересчетная схема работает при единичном состоянии разряда ADEN регистра ADCSR. Коэффициент деления частоты (К) определяется комбинацией состояний разрядов ADPS2, ADPS1, ADPS0 регистра ADCSR в соответствии с табл.16.
Таблица 16
ADPS2 | ADPS1 | ADPS0 | к |
0 | 0 | 0 | 2 |
0 | 0 | 1 | 2 |
0 | 1 | 0 | 4 |
0 | 1 | 1 | 8 |
1 | 0 | 0 | 16 |
1 | 0 | 1 | 32 |
1 | 1 | 0 | 64 |
1 | 1 | 1 | 128 |
Преобразование начинается при установке в единичное состояние разряда ADSC регистра ADCSR. Разряд ADSC сохраняет единичное состояние до завершения преобразования и затем аппаратно переводится в нулевое состояние. Сформированный десятиразрядный код переписывается в регистр результата ADCH, L, при этом устанавливается в единичное состояние разряд ADIF регистра ADCSR и при единичном состоянии разряда ADIE регистра ADCSR в блок прерываний поступает запрос прерывания ADC CC (ADC Conversion Complete).
Разряд ADIF регистра ADCSR сбрасывается в нулевое состояние аппаратно при переходе микроконтроллера к выполнению прерывающей Программы или при выполнении команды установки бита в единичное состояние.
Чтение результата из шестнадцатиразрядного регистра ADCH, L Должно начинаться с чтения младшего байта. При этом блокируется занесение нового результата из базового преобразователя в регистр Результата и считанный затем старший байт принадлежит тому же Результату, что и считанный ранее младший байт.
Преобразователь может работать в одиночном режиме и в циклическом режиме. Выбор режима определяется состоянием разряда ADFR регистра ADCSR. При ADFR = 0 преобразователь работает в одиночном режиме.
Преобразование начинается при установке в единичное состояние разряда ADSC и выполняется за 14 тактов. Для выполнения следующего преобразования необходимо вновь установить в единичное состояние разряд ADSC.