Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кофанов_ЦП, ч. 2 (КЛ_ел.варіант).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.69 Mб
Скачать

Pfcp: Phase and Frequency Correct pwm – шім із симетрією по фазі і періоду.

Отже, добором частоти внутрішнього синхросигналу clk і коефіцієнта поділу CSn[2..0] або частоти зовнішніх імпульсів, що надходять до виводів МК Т0, Т1, встановлюється потрібна частота синхросигналів clkTn на входах Т/Л. Тоді сформований часовий інтервал (час затримки між переходами лічильника від МАХ до нуля та між встановленням прапорів переривання за переповненням TOVn) становитиме , де – модуль лічби (Mn = 256 для Т/Л0 і 65536 для Т/Л1). Наприклад, якщо = 1 МГц, то для Т/Л0 матимемо часову затримку = 256 мкс.

Рис. 9. Часові діаграми в режимі Normal

Відповідно до появи сигналів TOVn у блоках виведення сигналів збігу можна утворити імпульси форми меандр. Проте використовувати формування сигналів на виходах OCn у режимі Normal в документації фірми Atmel не рекомендовано, бо при цьому надто гальмується робота МП.

б) Режим CTC (Clear Timer on Compare Match) – скидання Т/Л під час збігу (WGM0[1:0] = 2, WGM1[3:0] = 4, 12). У цьому режимі кожний Т/Л функціонує також як підсумовувальний лічильник, тобто з надходженням вхідних синхроімпульсів clkT0, clkT1 його вихідний код N інкрементується (рис. 10). Але, на відміну від режиму Normal, лічильники скидаються по досягненні не максимально можливого коду (MAX = $FF або $FFFF), а коду ТОР, записаного до відповідного регістра порівняння: ТОР = OCR0 для Т/Л0 та ТОР = OCR1А (режим 4) або ICR1 (режим 12) для Т/Л1 (див. рис. 6.а,б). Отже, і модуль лічби М = = ТОР + 1 визначається згаданими регістрами.

Рис. 10. Часові діаграми в режимі СТС (скидання під час збігу)

Коли в міру зростання код лічильника сягає значення, записаного до регістрів порівняння OCRх (х = 0, 1A, 1B) або до регістра захоплення ICR1 (для Т/Л1), виникають запити на переривання, що фіксуються відповідними прапорами OCFх або ІCF1. Для утворення імпульсів у блоках виведення сигналів збігу (див. рис. 7), що надходять до виходів OCх (див. рис. 10), до регістрів TCCR0 та TCCR1A керування Т/Л0 та Т/Л1 відповідно потрібно записати біти COMх[1:0] = 01 (табл. 7.5). Якщо до регістрів порівняння OCR0, OCR1А або ICR1 примістити максимальне значення ТОР = МАХ = М – 1 ($FF для Т/Л0 і $FFFF для Т/Л1), то одночасно генеруються також прапори переривання за переповненням TOVn.

Таблиця 7.5 – Compare Match Output Mode – Режими виводів сигналів збігу OCх (х = 0, 1A, 1B) для режимів Т/Лn (n = 0, 1) без ШІМ

COMх1

COMх0

Стан виводу OCх під час збігу

0

0

Т/Л відключений від OСх (нормальна функція виводу)

0

1

Зміна стану на протилежний

1

0

Стан виводу скидається в «0»

1

1

Стан виводу встановлюється в «1»

Таким чином, записом потрібного коду до регістрів OCR0, OCR1А або ICR1 можна змінювати модуль лічби лічильника. Якщо до цих регістрів записано нуль, частота вихідного сигналу буде максимальною , а за довільного коду ТОР в регістрі частота становитиме

,