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
- 1. Будова мікроконтролера ATMEGA8, огляд алгоритмів, схемних та програмних рішень поставленої задачі
- 1.1 Огляд схемних рішень світлової сигнальної індикації
- 1.2 Будова вибраного мікроконтролера
- 2. Розробка схем структурної, принципової та алгоритму роботи програми
- 3. Розробка програми на мові програмування ASSEMBLER
- 4. Розробка програми на мові програмування C
- 5. Моделювання в PROTEUS VSM
- Висновки