Система обробки подій мікроконтролерів AVR ATxmega

Система обробки подій мікроконтролерів сімейства AVR ATxmega

Система обробки подій є абсолютно новою і інноваційною функцією мікроконтролерів XMEGA. Системи обробки подій немає ні в tinyAVR , ні в megaAVR, а якщо точніше, її немає ні в одній іншій серії мікроконтролерів, створених до моменту написання цього документа.

Система обробки подій дозволяє організувати зв’язок між периферійними пристроями. У ній є вісім каналів, які користувач може використовувати для зв’язку між периферійними пристроями. Канал системи подій це не шина, а виділений канал, в якому в одну одиницю часу може просигналити тільки одна подія. Оскільки події надається виділений канал, воно буде дуже передбачуваним і швидким. Насправді, максимальна затримка складе 2 системних такту. Крім того, ця система допоможе скоротити кількість оброблюваних системою переривань. Це можливо завдяки тому, що будь-яке переривання також може бути подією. У обробці подій процесор не бере і немає необхідності в процедурах обробки переривань. У цілому, система обробки подій є надзвичайно потужною, оскільки вона розвантажує центральний процесор і може знизити енергоспоживання і збільшити продуктивність системи за рахунок скорочення числа оброблюваних переривань. Крім того, система подій може працювати в той час, коли процесор спить в режимі енергозбереження IDLE.

Система подій XMEGA – система взаємодії між периферійними модулями

Наприклад, систему обробки подій можна використовувати для зчіпки двох таймерів/лічильників, щоб отримати один 32-розрядний таймер/лічильник. Або можна використати одну подію для синхронізації двох модулів. Наприклад, можна використати подію зміни логічного рівня лінії порту введення/виведення для виконання перетворення АЦП і захоплення входу таймера/лічильника з метою отримати точні часові позначки для кожного перетворення. Ще одним прикладом може служити старт перетворення АЦП за подією для запису звуку з мікрофону. По завершенню перетворення DMA копіює результат в SRAM. Коли користувач натискає кнопку, генерується подія і DMA копіює дані далі в ЦАП для відтворення запису – і все це може бути зроблено в сплячому режимі.

Приклад взаємодії лічильника і АЦП в рамках системи обробки подій

Система синхронізації в мікроконтролерах ATxmega

В мікроконтролерах ATxmega реалізована гнучка система синхронізації з великим набором джерел тактового сигналу, серед яких є як точні вбудовані осцилятори, так і зовнішні кварцові осцилятори і резонатори. Для отримання більшого діапазону тактових частот можна використовувати високочастотну систему фазової підстройки частоти (PLL – Phase Locked Loop) і пре дільники. Для автоматичної калібровки внутрішніх осциляторів доступно дві схеми цифрової автопідстройки частоти (DFLL – Digital Frequency Locked Loop).

Після скидання мікроконтролери ATxmega завжди тактуються від внутрішнього осцилятора на 2 МГц. Настройка джерела тактового сигналу і коефіцієнт пре дільника можна в будь який момент змінити програмно.

Структурна схема системи синхронізації мікроконтролерів ATxmega A представлена на рис. 6.

Джерела тактового сигналу в мікроконтролерах ATxmega A можна розділити на дві категорії: внутрішні осцилятори і зовнішні тактові генератори. Більшість з ним можна на пряму включати і відключати програмно, в той час як для деяких інших це відбувається автоматично в залежності від поточних налаштувань периферії.

Для роботи внутрішніх осциляторів ніяких зовнішніх компонентів не потрібно.

–    Низьковольтний (ULP – Ultra Low Power) осцилятор на 32 кГц. Цей внутрішній осцилятор споживає порівняно мало енергії, але не розрахований на високу точність роботи. Він використовує внутрішній пер дільник, що забезпечує на виході, крім 32 кГц, також сигнал з частотою 1 кГц. Даний осцилятор вмикається автоматично при його призначенні в якості джерела тактового сигналу для лічильника реального часу, сторожового таймеру або системи пошуку провалів напруги.

–     Откалібрований RC-осцилятор на 32,768 кГц. Його вбудований предільник також забезпечує частоту 1,024 кГц. Калібровочне значення записується при скиданні апаратно в регістр R32KCAL. Його також можна змінити програмно.

–    Откалібрований RC-осцилятор на 32 МГц. Використовує цифрову схему автопідстройки частоти, яку можна використовувати для автоматичної калі бровки безпосередньо підчас виконання програми.

–    Откалібрований RC-осцилятор на 2 МГц. Використовує цифрову схему автопідстройки частоти, яку можна використовувати для автоматичної калі бровки безпосередньо підчас виконання програми.

Для реалізації зовнішніх осциляторів (кварцових або керамічних резонаторів) традиційно служать виводи XTAL1 та XTAL2, а вивід XTAL1також служить для подачі зовнішнього тактового сигналу.

Виводи TOSC1 та TOSC2 призначені для підключення кварцового осцилятора на 32 кГц. Типова схема підключення кварцового осцилятора або резонатора частотою 32 кГц або 0,4..16 МГц представлена на рис.

 

Структурна схема системи синхронізації мікроконтролерів xmega A

 

Типова схема підключення кварцового осцилятора або резонатора частотою 32 кГц або 0,4..16 МГц

Література:

  1. Программирование на языке С для AVR и PIC микроконтроллеров. Изд. 2е, переработаное и дополниное / Сост. Ю.А. Шпак—К.: «МК-Пресс», СПб.: «КОРОНА-ВЕК», 2011. – 544 с., ил.
  2. AVR XMEGA – 8/16-битные высокоэффективные маломощные флэш-микроконтроллеры. 
  3. Начинаем работать с микроконтроллерами XMEGA.
  4. AVR 8-bit XMMEGA А Manual. – 2012. – Rev. 1. – p. 432.

 

Автор: Чернишов В.О., ДК-12. ФЕЛ, КЕОА, НТУУ «КПІ».