Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессорные системы управления электроприводами и технологическими комплексами. Учебное пособие
.pdf
Предварительные делители таймеров/счётчиков. Блоки предварительных делителей предназначены для формирования тактовых сигналов таймеров/счётчиков clk
, clkT1, clkT2, clkT3. На рис. 1.4 изображена
T0
схема блока, работающая в синхронном режиме, а на рис. 1.5 – схема с
возможностью работы в асинхронном режиме.
Рис. 1.4. Схема блока тактирования, работающая в синхронном режиме:
n = 0,1,3 для ATmega162x (PSRx-PSR310); 1,2,3 для ATmega 64 и ATmega 128x
(PSRx-PSR321); 0,1 для остальных моделей
Как показано на рис. 1.4 и 1.5, в состав каждого блока входят собственно 10-разрядный предварительный делитель и выходной мультиплексор (селектор тактового сигнала), а для таймеров, имеющих возможность работы в асинхронном режиме, еще и входной мультиплексор исходного тактового сигнала.
Некоторые таймеры/счётчики могут использовать в качестве тактового сигнала внешний
сигнал. Такими таймерами обладают модели
микроконтроллеров, отмеченные в табл. 1.5. при этом нужно учитывать, что частота внешнего сигнала должна быть в 2,5 раза меньше
тактовой частоты микроконтроллера.
11

Рис. 1.5. Схема блока тактирования, работающая в асинхронном режиме:
n = 1 для ATmega64 и ATmega128, n = 2 для остальных моделей (кроме ATmega8515х)
Таблица 1.5
Модели микроконтроллеров, таймеры которых могут управляться
внешними сигналами
Таймер/
счет-
чик
Atmega8x
Atmega8515x
T0 Δ Δ Δ Δ Δ Δ Δ Δ – –
T1 Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ
T2 – – – – – – – – Δ Δ
T3 – – – – – – – – Δ Δ
Atmega16x
Atmega161x
Atmega162x
Atmega163x
Atmega32x
Atmega323x
Atmega64x
Atmega128x
12

Режимы работы таймеров/ счётчиков. Всего определено четыре
режима работы таймеров счётчиков:
1) нормальный режим;
2) режим ШИМ с фазовой коррекцией;
3) режим – сброс при совпадении;
4) режим – быстрое ШИМ.
В табл. 1.6 отмечены данные режимы, а также указаны биты для
выбора соответствующего режима работы.
Таблица 1.6
Выбор режима работы таймера/счетчика
Номер
режима
0 0 0 Normal
1 0 1 Phase Correct PWM
2 1 0 CTCn (Сброс при совпадении)
3 1 1 FAST PWM
WGMn1
(CTCn)
WGMn0
(PWMn)
Режимы работы
Первый режим (Normal) является наиболее простым, счетный регистр представляет собой суммирующий счётчик. По каждому импульсу тактового сигнала происходит увеличение счётчика на единицу. При переходе через значение $FF происходит переполнение и счёт
продолжается со значения $00. В том же такте сигнала, в котором происходит переполнение, выставляется в лог. 1 флаг TOV0
(TOV2). При
равенстве счётного регистра и регистра сравнения устанавливается
флаг прерывания OFC0 (OFC2). И если разряд OCIE0 (OCIE2) регистра TIMASK установлен – генерируется прерывание. Вместе с установкой флага прерывания при равенстве счётного регистра и регистра
сравнения может изменяться состояние вывода ОС0 (ОС2) микроконтроллера.
13

Таблица 1.7
Управление выводом ОС0 (ОС2) в режиме Normal
СОМn1 СОМn2 Описание
0 0 Таймер/счетчик Тn отключен от вывода ОСn
0 1 Состояние вывода меняется на противоположное
1 0 Вывод сбрасывается в 0
1 1 Вывод устанавливается в 1
n = 0 либо n = 2.
Режим СТС (сброс при совпадении). В этом режиме счётный регистр тоже функционирует как суммирующий счётчик, у которого
прибавление единицы осуществляется по каждому импульсу тактового
сигнала clk
(clkT2). Однако максимально возможное значение счётно-
T0
го регистра и, следовательно, разрешающая способность счётчика
определяются регистром сравнения OCR0 (OCR2). После достижения
значения, записанного в регистре сравнения, счёт продолжается со
значения «$00». В том же такте сигнала clk
(clkT2), в котором обнуля-
T0
ется счётный регистр, устанавливается флаг прерывания TOV0 (TOV2)
регистра TIFR. Временные диаграммы для этого режима работы таймера/счётчика изображены на рис. 1.6.
Устанавливается
флаг прерывания
n
ОС
Ocn
TCNT0
Ocn
Ocn
перекл
Период
0TCNT
COM
COM
10n
n10
1234
Рис. 1.6. Временные диаграммы для режима СТС
14

По достижении максимального значения устанавливается флаг
f
OCF0 (OCF2) регистра TIFR. Одновременно с установкой флага может
изменяться состояние вывода ОС0 (ОС2) микроконтроллера. Поведение вывода определяется разрядами СОМ01:СОМ00 (СОМ21:СОМ20)
регистра TCCR0 (TCCR2) (табл. 1.8).
Таблица 1.8
Управление выводом ОС0 (ОС2) в режиме СТС
СОМn1 СОМn2 Описание
0 0 Таймер/счетчик Тn отключен от вывода ОСn
0 1 Состояние вывода меняется на противоположное
1 0 Вывод сбрасывается в 0
1 1 Вывод устанавливается в 1
n = 0 либо n = 2.
Для генерации сигнала заданной частоты необходимо записать в
разряды СОМ01:СОМ00 (СОМ21:СОМ20) значение 01. Частота сформированного сигнала будет определяться выражением
fNOSRn
OCn clk I O
2(1 )
_/
,
где N – коэффициент деления.
При необходимости состояние вывода ОС0 (ОС2) может быть изменено принудительно установкой в лог. 1 разряда FOC0 (FOC2) регистра TCCR0 (TCCR2). При этом не будет формироваться прерывание и
не будет произведено сброса счётного регистра.
Режим FAST PWM означает быстродействующее широтноимпульсное моделирование и позволяет формировать высокочастот-
сигнал с широтно-импульсной модуляцией. В связи с высокой ча-
ный
стотой генерируемого сигнала данный режим с успехом может использоваться в таких работах, как регулирование мощности, выпрямление,
цифроаналоговое преобразование и др.
15

Счётный регистр в этом режиме функционирует как суммирующий
счётчик, у которого увеличение значения осуществляется по каждому
импульсу тактового сигнала clk
(clkT2). Состояние счётчика изменяет-
T0
ся от $00 до $FF, после этого счётный регистр сбрасывается и цикл
повторяется. При достижении счётчиком максимального значения
устанавливается флаг прерывания TOV0 (TOV2) регистра TIFR. При
равенстве содержимого счётного регистра и регистра сравнения OCR0
(OCR2) устанавливается флаг OCF0 (OCF2) регистра TIFR.
Особенностью работы схемы сравнения в этом режиме является
двойная буферизация записи регистра OCR0 (OCR2), заключающаяся
в том, что записываемое число на самом деле сохраняется в специальном буферном регистре. Изменение содержимого регистра сравнения происходит только в момент достижения счётчиком максимального значения $FF. Благодаря этому исключается появление
несимметричных импульсов сигнала на выходе модулятора (помех),
которые были бы
неизбежны при непосредственной записи в регистр
сравнения.
Поведение вывода ОС0 (ОС2) микроконтроллера в этом режиме
также определяется содержимым разрядов СОМ01: СОМ02
(СОМ21:СОМ20) регистра TCCR0 (TCCR2) (табл. 1.9 и рис. 1.7).
Таблица 1.9
Поведение вывода ОСn в режиме FAST PWM
СОМn1 COMn0 Поведение вывода ОСn
0 0 Таймер/счётчик Tn отключен
0 1 Не используется
1 0 Сбрасывается в 0 при равенстве регистров TCNTn
и OCRn. Устанавливается в лог. 1 при TCNTn = $00
(неинвертированный ШИМ-сигнал)
1 1 Устанавливается в лог. 1 при равенстве регистров
TCNTn и OCRn. Сбрасывается в 0 при TCNTn = $00
(инвертированный ШИМ-сигнал)
n = 0 либо n = 2.
16

OCRn
f
OCRn
TCNTn
TCNTn
OCRn
OCRn
OCRn
OCRn
Период
12 3456 7
Рис. 1.7. Формирование ШИМ-сигнала в режиме Fast – PWM
Частота формируемого сигнала
Устанавливается флаг
прерывания ОСn
Обновляется регистр
OCRn и устанавливается
флаг прерывания TONn
COM
COM
COM
COM
n1:0
n1:0
Ocn
TONn
2
=2
1:0n
3
=3
1:0n
_/
256
,
fN
OCn clk I O
где N – коэффициент деления.
Отдельно следует рассмотреть случаи, когда в регистре сравнения
находятся предельно возможные значения ($00 и $FF). В первом случае, если содержимое регистра сравнения OCR0 (OCR2) равно $00,
на выходе ОС0 (ОС2) при каждом 256-м такте сигнала clk
(clkT2) бу-
T0
дут наблюдаться короткие выбросы. Если же содержимое регистра
сравнения OCR0 (OCR2) равно $FF, то вывод ОС0 (ОС2) переключается в устойчивое состояние, определяемое установками разрядов
СОМ01:СОМ00 (СОМ21:СОМ20).
Режим Phase Correct PWM. Режим Phase Correct PWM – широтноимпульсное моделирование с точной фазировкой. В отличие от режима
FAST PWM здесь счётный регистр функционирует как
реверсивный
счётчик, изменение состояния которого осуществляется по каждому
импульсу тактового сигнала clk
(clkT2). Состояние счётчика сначала
T0
изменяется от $00 до $FF, а затем обратно до $00. Соответственно мак-
17

симальная частота сигнала при этом в два раза ниже максимальной
частоты сигнала в режиме FAST PWM. Тем не менее благодаря «симметричности» изменения состояния счётчика, данный режим предпочтительнее использовать в электрических приводах. При достижении
счётчиком максимального значения ($FF) происходит смена направления счёта, но счётчик остаётся в этом состоянии в течение каждого
риода сигнала clk
(clkT2). При достижении счётчиком минимального
T0
пе-
значения ($00) также происходит смена направления счёта и одновременно устанавливается флаг прерывания TOV0 (TOV2) регистра TIFR.
При равенстве содержимого счётного регистра и регистра сравнения
OCR0 (OCR2) устанавливается флаг регистра TIFR и изменяется состояние вывода ОС0 (ОС2). Каким образом изменяется состояние вывода
ОС0 (ОС2), определяется, как обычно, содержимым разрядов
СОМ01:СОМ00 (СОМ21:СОМ20) регистра TCCR0 (TCCR2) (табл. 1.10,
рис. 1.8).
Таблица 1.10
Поведение вывода ОС0 (ОС2) в режиме Phase Correct PWM
СОМn1 COMn0 Поведение вывода ОСn
0 0 Таймер/счётчик Tn отключен
0 1 Не используется
1 0 Сбрасывается в 0 при прямом счёте и устанавлива-
ется в лог. 1 при обратном счёте (неинвертированный ШИМ-сигнал)
1 1 Устанавливается в лог. 1 при прямом счёте и сбра-
сывается в 0 при обратном счёте (инвертированный
ШИМ-сигнал)
n = 0.
Для недопущения несимметричных выбросов в этом режиме также
реализована двойная буферизация записи в регистр OCR0 (OCR2). Благодаря этому действительное изменение содержимого регистра сравнения происходит только в момент достижения счётчиком максимального значения $FF.
18

Рис. 1.8. Формирование ШИМ-сигнала в режиме Phase Correct PWM
Если в регистр сравнения записать значение $00 или $FF, то при
следующем совпадении состояния счётчика и содержимого регистра
сравнения выход схемы переключается в устойчивое состояние согласно табл. 1.11.
Таблица 1.11
Переключение выхода схемы сравнения
СОМn1 СОМn2 Регистр OCRn Состояние вывода ОСn
1 0 $00 0
1 0 $FF 1
1 1 $00 1
1 1 $FF 0
n = 0 или n = 2.
19

Частота формируемого сигнала в рассматриваемом режиме сигнала
f
определяется выражением
_/
512
,
fN
OCn clk I O
где n – коэффициент деления предварительного делителя.
Тактирование
С микроконтроллерами семейства Mega могут использоваться самые различные источники тактового сигнала [2]. Прежде всего это
встроенный кварцевый генератор с подключаемым внешним резонатором. Рассматриваемые микроконтроллеры для формирования тактового сигнала могут использовать простейший RC-генератор. Необходимая RC-цепочка уже присутствует в микроконтроллере. Тем не менее
можно использовать внешнюю RC-цепь. Кроме
ния тактового сигнала имеется специальный вывод для подключения
внешнего источника тактовых импульсов.
Микроконтроллеры семейства Mega имеют до шести режимов пониженного энергопотребления, что важно для устройств с автономным питанием. Для ввода микроконтроллера в режим малого энергопотребления, т. е. в спящий режим, имеется ассемблерная команда
SLEEP.
Для выхода из этого режима выполняется сброс микро-
контроллера.
Сброс микроконтроллера может быть осуществлен также по другим различным событиям, а именно: сброс микроконтроллера внешним устройством, подача сигнала низкого уровня на вход RESET, снижение напряжения питания ниже минимального допустимого уровня,
срабатывание сторожевого таймера и др.
Упрощенное устройство синхронизации микроконтроллеров
мейства Mega показано на рис. 1.9, из которого видно, что на основе
основного тактового сигнала формируются дополнительные сигналы,
используемые для тактирования различных блоков и модулей.
Это такие сигналы:
clk
– тактовый сигнал центрального процессора, используется
cpu
для тактирования блоков микроконтроллера, отвечающих за работу с
ядром микроконтроллера (регистровый файл, память данных и т.п.).
При выключении этого сигнала центральный процессор останавливается и все вычисления прекращаются;
того, для формирова-
се-
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
