logo
Автомат світлових ефектів на мікроконтролері AVR

1.2 Будова вибраного мікроконтролера

мікроконтролер світлодіодний алгоритм асемблер

В основі ядра AVR лежить розширена RІSC архітектура, що поєднує розвинутий набір команд і 32 регістри загального призначення. Усі 32 регістри безпосередньо підключені до арифметико-логічного пристрою (АЛП), що дає доступ до будь-яких двох регістрів за один машинний цикл.

Подібна архітектура забезпечує десятикратний виграш в ефективності коду в порівнянні із традиційними CІSC мікроконтролерами [9].

AT90S2313 пропонує наступні можливості:

· 2кб завантажуваної флеш памяті; 128 байт EEPROM;

· 15 ліній вводу/виводу загального призначення;

· 32 робочих регістри; налаштовувані таймери/лічильники з режимом співпадання;

· зовнішні й внутрішні переривання;

· програмований універсальний послідовний порт;

· програмований сторожовий таймер із вбудованим генератором;

· SPІ послідовний порт для завантаження програм;

· два програмно змінні режими низького енергоспоживання.

Холостий режим (Іdle Mode) відключає ЦПУ, залишаючи в робочому стані регістри, таймери/лічильники, SPІ порт і систему переривань.

Економічний режим (Power Down Mode) зберігає вміст регістрів, але відключає генератор, забороняючи функціонування всіх вбудованих пристроїв до зовнішнього переривання або апаратного скидання.

Мікросхеми виготовляються з використанням технології енергонезалежної памяті високої щільності фірми Atmel. Завантажувана флеш память на кристалі може бути перепрограмована прямо в системі через послідовний інтерфейс SPІ або доступним програматором енергонезалежної памяті. Поєднуючи в одному кристалі вдосконалений 8-бітовий RІSC процесор з, завантажуваною флеш памяттю, AT90S2313 є потужним мікроконтролером, який дозволяє створювати досить гнучкі й ефективні за вартістю обладнання.

AT90S2313 підтримується повною системою розробки, що включає в себе макроасемблер, програмний відладчик/симулятор, внутрішньосхемний емулятор і відладочний комплект.

Рисунок 1.8 - Опис виводів мікроконтролера AT90S2313

Умовні позначення на рисунку 1.8: VCC - вивід джерела живлення; GND - земля.

Port B (PB7..PB0) - порт B є 8-бітовим двонаправленим портом вводу/виводу. Для виводів порту передбачені внутрішні підтягуючі резистори (вибираються для кожного біта). Виводи PB0 і PB1 також є позитивним (AІN0) і негативним (AІN1) входами вбудованого аналогового компаратора. Вихідні буфери порту B можуть споживати струм до 20мА й безпосередньо управляти світлодіодними індикаторами. Якщо виводи PB0..PB7 використовуються як входи й ззовні встановлюються в низький стан, вони є джерелами струму, якщо включені внутрішні підтягуючі резистори. Крім того, порт B обслуговує деякі спеціальні функції.

Port D (PD6..PD0) - порт D є 7-бітовим двонаправленим портом із внутрішніми підтягуючими резисторами. Вихідні буфери порту D можуть споживати струм до 20мА. Якщо входи встановлені в низький стан, виводи порту D є джерелами струму, якщо задіяні підтягуючі резистори. Крім того, порт D обслуговує деякі спеціальні функції.

RESET - вхід скидання. При втриманні на вході низького рівня протягом двох машинних циклів (якщо генератор працює), здійснює скид.

XTAL1 - вхід інвертуючого підсилювача генератора й вхід зовнішнього тактового сигналу.

XTAL2 - Вихід інвертуючого підсилювача генератора.

XTAL1 і XTAL2 є входом і виходом інвертуючого підсилювача, який можна використовувати для генератора тактових імпульсів. Можна використовувати як кварцові, так і керамічні резонатори. При підключенні зовнішнього тактового сигналу вивод XTAL2 залишається непідключеним, а XTAL1 підключається до виходу зовнішнього генератора.

Рисунок 1.9 - Схема підключення кварцового генератора

Рисунок 1.10 - Схема підключення зовнішнього тактового сигналу

Регістровий файл швидкого доступу містить 32 8-розрядних регістри загального призначення, доступ до яких здійснюється за один машинний цикл. Тому за один машинний цикл виконується одна операція АЛП. Два операнда вибираються з реєстрового файлу, виконується операція, результат її записується в реєстровий файл - усе за один машинний цикл.

Шість із 32 регістрів можна використовувати як три 16-розрядних покажчика в адресному просторі даних, що дає можливість використовувати високоефективну адресну арифметику (16-розрядні регістри X, Y і Z). Один із трьох адресних покажчиків (регістр Z) можна використовувати для адресації таблиць у памяті програм. Це X-, Y- і Z- регістри.

АЛП підтримує арифметичні й логічні операції з регістрами, з константами й регістрами. Операції над окремими регістрами також виконуються в АЛП.

Крім регістрових операцій, для роботи з регістровим файлом можуть використовуватися доступні режими адресації, оскільки регістровий файл займає адреси $00-$1F в області даних, звертатися до яких можна як до комірок памяті.

Простір введення складається з 64 адрес для периферійних функцій процесора, таких як керуючі регістри, таймери/лічильники й інші. Доступ до простору вводу/виводу може здійснюватися безпосередньо, як до комірок памяті розташованим після реєстрового файлу ($20-$5F).

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

За допомогою команд відносних переходів і виклику підпрограм здійснюється доступ до всього адресного простору. Більша частина команд

AVR має розмір 16- розрядів, одне слово. Кожна адреса в памяті програм містить одну 16- або 32- розрядну команду.

При обробці переривань і виклику підпрограм адреса повернення запамятовується в стеці. Стек розміщається в памяті даних загального призначення, відповідно розмір стека обмежений тільки розміром доступної памяті даних і її використанням у програмі. Усі програми користувача повинні ініціалізувати покажчик стека (SP) у програмі, виконуваної після скидання (перше ніж викликаються підпрограми й дозволяються переривання). 8- розрядний покажчик стека доступний для читання/запису в області вводу/виводу.

Доступ до 128 байтів статичного ОЗУ, регістровому файлу й регістрам вводу/виводу здійснюється за допомогою пяти доступних режимів адресації підтримуваних архітектурою AVR.

Гнучкий модуль переривань має власний керуючий регістр у просторі вводу/виводу, і прапор глобального дозволу переривань у регістрі стану.

Кожному перериванню призначений свій вектор у початковій області памяті програм. Різні переривання мають пріоритет відповідно до розташування їх векторів. По молодших адресах розташовані вектори з більшим пріоритетом.

Усі команди, що оперують регістрами прямо адресуються до кожного з регістрів за один машинний цикл. Єдине виключення - пять команд, що оперують із константами SBCІ, SUBІ, CPІ, ANDІ, ORІ й команда LDІ, що завантажує регістр константою. Ці команди працюють тільки із другою половиною реєстрового файлу - R16..R31. Команди SBC, SUB, CP, AND і OR, також як і всі інші, можуть бути застосовні до всього реєстрового файлу.

Кожному регістру присвоєна адреса в просторі даних, вони відображаються на перші 32 комірки ОЗУ. Хоча регістровий файл фізично розміщений поза ОЗУ, подібна організація памяті дає гнучкий доступ до регістрів. Регістри X, Y і Z можуть використовуватися для індексації будь-якого регістру.

Крім звичайних функцій, регістри R26..R31 мають додаткові функції, ці регістри можна використовувати як адресні покажчики в області памяті даних. Ці регістри позначаються як X,Y,Z.

При різних режимах адресації ці регістри можуть використовуватися як фіксована адреса, для адресації з автоінкрементом або з авто декрементом.

АЛП процесора безпосередньо підключений до 32 регістрів загального призначення. За один машинний цикл АЛП робить операції між регістрами реєстрового файлу. Команди АЛП розділені на три основні категорії - арифметичні, логічні й бітові. Деякі мікроконтролери сімейства AVR мають апаратний умножувач в арифметичній частині АЛП.

27 AT90S2313 містить 2кб, завантажуваної флеш памяті для зберігання програм. Оскільки всі команди займають одне 16- розрядне слово, флеш память організована як 1K 16- розрядних слів. Флеш память витримує не менш 1000 циклів перезапису.

Програмний лічильник має ширину 10 біт і в такий спосіб адресується до 1024 слів програмної флеш-памяти.

Таблиці констант можуть розташовуватися в діапазоні адрес 0-2K. AT90S2313 містить 128 байт енергонезалежної памяті, що електрично стирається (EEPROM). EEPROM організована як окрема область даних, кожний байт якої може бути прочитаний і перезаписаний. EEPROM витримує не менш 100000 циклів запису/стирання. Нижче розглянуте й програмування памяті даних через SPІ інтерфейс

Таблиця 1.1 - Характеристики мікроконтролера AT90S2313

Рабоча температура

-55оС … +125 оС

Температура зберігання

-65оС … +150 оС

Напруга на будь-якому виході окрім RESET

-1.0V … Vcc+0.5 В

Напруга на будь-якому виході RESET

-1.0V … 13 В

Максимальна рабоча напруга

6.6 В

Таблиця 1.2 - Характеристики мікроконтролера AT90S2313 по постійному струму

Продовження таблиці 1.2

Примітки по мікроконтролеру AT90S2313:

1. В рабочому стані струм через виводи повинен обмежуватися наступними умовами:

- Максимальний струм через вивод - 20 мА (5V), 10 мА (3V);

2. Мінімальна напруга для режима пониженного споживання - 2V.

Таблиця 1.3 - Список регістрів мікроконтролера AT90S2313

Продовження таблиці 1.3