Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика_зразок_звіт_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
466.94 Кб
Скачать

Особливості aTmega8

  1. Малоспоживаючий 8-розрядний мікроконтроллер з архітектурою AVR RISC.

  2. Пам'ять програм 8 Кб з можливістю перезаписувати 10 000 разів, 512 байт флеш-пам’яті для зберігання змінних (100,000 циклів перезапису), 1 Кб ОЗП і 32 регістри загального призначення.

  3. 23 порти вводу/виводу, об’єднаних в три групи.

  • Порт В (РВ0 – РВ7). Два виводи (РВ6 і РВ7) використовуються для підключення кварцового резонатора. Виводи РВ2 – РВ5 зарезервовані для програмування в середині схеми. Таким чином, для загального застосування лишаються порти РВ0 і РВ1.

  • Порт С (РС – РС: 7 виводів). Порти РС0 – РС5 можна використовувати в якості аналогових виводів. РС6 зазвичай використовується для скидання.

  • Порт D (PD0 – PD7: 8 виводів). Цей порт можна використовувати для загального призначення.

  1. Два 8-розрядних Таймера/Лічильника з роздільним прескалером, режим порівняння

  2. 16-розрядний Таймер/Лічильник з розділеним прескалером, режим порівняння, режим захвату.

  3. Таймер реального часу з незалежним генератором.

  4. 3 канали ШІМ.

  5. 6 каналів 10-розрядного АЦП.

  6. Послідовний інтерфейс з двома проводами.

  7. Програмований послідовний USART.

  8. Інтерфейс SPI с режимами Master/Slave.

  9. Програмований сторожовий таймер з окремим незалежним генератором.

  10. Вбудований аналоговий компаратор.

  11. Скидання при ввімкненні живлення, програмований захист від провалів живлення.

  12. Вбудований калібрований RC-генератор.

  13. Обробка внутрішніх і зовнішніх переривань.

  14. П’ять режимів з пониженим енергоспоживанням: Idle, ADC Noice Reduction, Power-save, Power-down, і Standly.

  15. Напруга живлення 4.5 – 5.5В.

  16. Тактова частота 0 – 16 МГц.

Структура мікроконтролера aTmega8

Структура мікроконтроллера ATmega8 показана в рис. 1.

Рис. 1. Структура мікроконтроллера ATmega8

Ядро процесора AVR об’єднує набір RISC-інструкцій з регістрами. Мікроконтроллер ATmega8 має наступні особливості: 8 Кб флеш-пам’яті програм, 512 байт флеш-пам’яті змінних, 1 Кб ОЗП, 23 порти вводу/виводу, 32 робочих регістри загального призначення, 3 програмованих Таймери/Лічильника з режимом порівняння, внутрішні і зовнішні переривання, програмований послідовний порт USART, двопортовий послідовний інтерфейс, 6-канальний АЦП з розширенням 10 біт, програмований сторожовий таймер з вбудованим генератором, послідовний порт SPI, 5 режимів пониженого енергоспоживання. Режим Idle вимикає процесор, при цьому живлення надходить на ОЗП, таймери/лічильники, порт SPI, і обслуговування переривання.

Пам’ять. У мікроконтролерах AVR реалізована Гарвардська архітектура, відповідно до якої розділені не тільки адресні простори пам'яті програм і пам'яті даних, але і шини доступу до них. Кожна з областей пам'яті даних (оперативна пам'ять і EEPROM) також розташована в своєму адресному просторі. Виділяють кілька видів пам’яті:

  1. Пам’ять програм (Flash ROM або Flash ПЗП).

  2. Пам’ять даних.

  3. Регістрова пам’ять (РЗП і РВВ).

  4. Енергонезалежна пам’ять даних (EEPROM).

  5. Оперативна пам’ять (ОЗП або RAM).

Периферія мікроконтролерів AVR включає: порти (від 3 до 48 ліній вводу/виводу), підтримку зовнішніх переривань, таймери-лічильники, сторожовий таймер, аналогові компаратори, 10-розрядний 8-канальний АЦП, інтерфейси UART, JTAG і SPI, пристрій скидання по зниженню живлення, широтно-імпульсні модулятори.

  1. Порти вводу/виводу (I/O). Порти вводу/виводу AVR мають число незалежних ліній "вхід/вихід" від 3 до 53. Кожна лінія порту може бути запрограмована на вхід або на вихід. Потужні вихідні драйвери забезпечують струмову навантажну здатність 20 мА на лінію порту (струм, що впадає) при максимальному значенні 40 мА, що дозволяє, наприклад, безпосередньо підключати до мікроконтролеру світлодіоди і біполярні транзистори. Загальне струмове навантаження на всі лінії одного порту не повинне перевищувати 80 мА (усі значення наведені для напруги живлення 5 В). Архітектурна особливість побудови портів вводу/виводу в AVR полягає в тому, що для кожної фізичного виводу (піна) існує 3 біти контролю/управління, а не 2, як у поширених 8-розрядних мікроконтролерах (Intel, Microchip, Motorola і т.д. ). Це дозволяє уникнути необхідності мати копію вмісту порту в пам'яті для безпеки і підвищує швидкість роботи мікроконтролера при роботі із зовнішніми пристроями, особливо в умовах зовнішніх електричних перешкод.

  2. Переривання (INTERRUPTS). Система переривань – одна з найважливіших частин мікроконтролера. Всі мікроконтролери AVR мають багаторівневу систему переривань. Переривання припиняє нормальний хід програми для виконання пріоритетного завдання, що визначається внутрішньою або зовнішньою подією. Для кожної такої події розробляється окрема програма, яку називають підпрограмою обробки запиту на переривання (для стислості – підпрограмою переривання), і розміщується в пам'яті програм. При виникненні події, що викликає переривання, мікроконтроллер зберігає вміст лічильника команд, перериває виконання центральним процесором поточної програми і переходить до виконання підпрограми обробки переривання. Після виконання підпрограми переривання здійснюється відновлення попередньо збереженого лічильника команд і процесор повертається до виконання перерваної програми. Для кожної події може бути встановлено пріоритет. Поняття пріоритет означає, що виконувана підпрограма переривання може бути перервана іншою подією тільки за умови, що вона має більш високий пріоритет, ніж поточний. В іншому випадку центральний процесор перейде до обробки нової події тільки після закінчення обробки попередньої.

  3. Таймери/лічильники (TIMER/COUNTERS). Мікроконтролери AVR мають у своєму складі від 1 до 4 таймерів/лічильників з розрядністю 8 або 16 біт, які можуть працювати і як таймери від внутрішнього джерела тактової частоти, і як лічильники зовнішніх подій. Їх можна використовувати для точного формування тимчасових інтервалів, підрахунку імпульсів на виводах мікроконтролера, формування послідовності імпульсів, тактування прийомопередатчика послідовного каналу зв'язку. У режимі ШІМ (PWM) таймер/лічильник може являти собою широтно-імпульсний модулятор і використовується для генерування сигналу з програмованою частотою і скважністю. Таймери/лічильники здатні виробляти запити переривань, перемикаючи процесор на їх обслуговування за подіям і звільняючи його від необхідності періодичного опитування стану таймерів. Оскільки основне застосування мікроконтролери знаходять в системах реального часу, таймери/лічильники є одним з найбільш важливих елементів.

  4. Сторожовий таймер (WDT). Сторожовий таймер (WatchDog Timer) призначений для запобігання катастрофічних наслідків від випадкових збоїв програми. Він має свій власний RC-генератор, що працює на частоті 1 МГц. Як і для основного внутрішнього RC-генератора, значення 1 МГц є наближеним і залежить насамперед від величини напруги живлення мікроконтролера і від температури. Ідея використання стоpожового таймеpа гранично проста і полягає в його pегуляpному скиданніі під керуванням пpогpамми або зовнішнього впливу до того, як закінчиться його видеpжка часу і не відбудеться скидання процесора. Якщо пpогpамма працює нормально, то команда скидання стоpожового таймеpа повинна pегуляpно виконуватися, оберігаючи поцессоp від скидання. Якщо ж мікpопpоцессоp випадково вийшов за межі пpогpами (напpиклад, від сильної перешкоди по ланцюгу живлення) або зациклився на якій-небудь ділянці програми, команда скидання стоpожового таймеpа скоpіш за все не буде виконана протягом достатнього часу і відбудеться повне скидання процесора, що ініціалізіpує всі pегістpи і пpіведе систему в робочий стан.

  5. Аналоговий компаратор (AC). Аналоговий компаратор (Analog Comparator) порівнює напруги на двох виводах (пінах) мікроконтролера. Результатом порівняння буде логічне значення, яке може бути прочитане з програми. Вихід аналогового компаратора можна включити на переривання від аналогового компаратора. Користувач може встановити спрацювання переривання по наростаючому або спадаючому фронту або по переключенню. Присутній у всіх сучасних AVR, крім Mega8515

  6. Аналого-цифровий перетворювач (A/D CONVERTER). Аналого-цифровий перетворювач (АЦП) служить для одержання числового значення напруги, поданої на його вхід. Цей результат зберігається в регістрі даних АЦП. Який з виводів (пінів) мікроконтролера буде входом АЦП, визначається числом, занесеним до відповідного регістра.

  7. Універсальний послідовний приймач (UART або USART). Універсальний асинхронний чи універсальний синхронно/асинхронний приймач (Universal Synchronous/Asynchronous Receiver and Transmitter – UART или USART) – зручний і простий послідовний інтерфейс для організації інформаційного каналу обміну мікроконтролера із зовнішнім світом. Здатний працювати в дуплексному режимі (одночасна передача і прийом даних). Він підтримує протокол стандарту RS-232, що забезпечує можливість організації зв'язку з персональним комп'ютером. (Для стикування МК і комп'ютера обов'язково знадобиться схема сполучення рівнів сигналів. Для цього існують спеціальні мікросхеми, наприклад MAX232.)

  8. Послідовний периферійний інтерфейс SPI. Послідовний периферійний трьохпровідний інтерфейс SPI (Serial Peripheral Interface) призначений для організації обміну даними між двома пристроями. З його допомогою може здійснюватися обмін даними між мікроконтроллером і різними пристроями, такими, як цифрові потенціометри, ЦАП/АЦП, FLASH-ПЗП і ін. За допомогою цього інтерфейсу зручно проводити обмін даними між декількома мікроконтролерами AVR. Крім того, через інтерфейс SPI може здійснюватися програмування мікроконтролера.

  9. Двопровідний послідовний інтерфейс TWI. Двопровідний послідовний інтерфейс TWI (Two-wire Serial Interface) є повним аналогом базової версії інтерфейсу I2C (двухпровідна двонаправлена шина) фірми Philips. Цей інтерфейс дозволяє об'єднати разом до 128 різних пристроїв з допомогою двобічної шини, що складається з лінії тактового сигналу (SCL) та лінії даних (SDA).

  10. Інтерфейс JTAG. Інтерфейс JTAG був розроблений групою провідних фахівців з проблем тестування електронних компонентів (Joint Test Action Group) і був зареєстрований як промисловий стандарт IEEE Std 1149.1-1990. Чотирипровідний інтерфейс JTAG використовується для тестування друкованих плат, внутрішньосхемного налагодження, програмування мікроконтролерів. Багато мікроконтроллерів сімейства Mega мають сумісний з IEEE Std 1149.1 інтерфейс JTAG або debugWIRE для вбудованої відладки. Крім того, всі мікроконтролери Mega з флеш-пам'яттю ємністю 16 кбайт і більше можуть програмуватися через інтерфейс JTAG.

  11. Тактовий генератор. Тактовий генератор виробляє імпульси для синхронізації роботи всіх вузлів мікроконтролера. Внутрішній тактовий генератор AVR може запускатися від декількох джерел опорної частоти (зовнішній генератор, зовнішній кварцовий резонатор, внутрішній чи зовнішній RC-ланцюжок). Мінімальна допустима частота нічим не обмежена (аж до покрокового режиму). Максимальна робоча частота визначається конкретним типом мікроконтролера і вказується Atmel в його характеристиках, хоча практично будь-який AVR-мікроконтроллер з заявленою робочою частотою, наприклад, в 10 МГц при кімнатній температурі легко може бути "розігнаний" до 12 МГц і вище.

  12. Система реального часу (RTC). RTC реалізована у всіх мікроконтролерах Mega і в двох кристалах «classic» – AT90 (L) S8535. Таймер/лічильник RTC має окремий переддільник, який може бути програмним способом підключений або до джерела основної тактової частоти, або до додаткового асинхронного джерела опорної частоти (кварцовий резонатор або зовнішній синхросигнал). Для цієї мети зарезервовані два виводи мікросхеми. Внутрішній осцилятор оптимізовано для роботи з зовнішнім "годинниковим" кварцовим резонатором 32,768 кГц.

  13. Живлення. AVR функціонують при напругах живлення від 1,8 до 6,0 Вольт. Струм споживання в активному режимі залежить від величини напруги живлення і частоти, на якій працює мікроконтроллер, і становить менше 1 мА для 500 кГц, 5 – 6 мА для 5 МГц і 8 – 9 мА для частоти 12 МГц. AVR можуть бути переведені програмним шляхом в один з трьох режимів зниженого енергоспоживання. Режим холостого ходу (IDLE). Припиняє роботу тільки процесор і фіксується вміст пам'яті даних, а внутрішній генератор синхросигналів, таймери, система переривань і сторожовий таймер продовжують функціонувати. Струм споживання не перевищує 2,5 мА на частоті 12 МГц. Стоповий режим (POWER DOWN). Зберігається вміст реєстрового файлу, але зупиняється внутрішній генератор синхросигналів, і, отже, зупиняються всі функції, поки не надійде сигнал зовнішнього переривання або апаратного скидання. При включеному сторожовому таймері струм споживання в цьому режимі складає близько 80 мкА, а при вимкненому – менше 1 мкА. (Всі наведені значення справедливі для напруги живлення 5 В). Економічний режим (POWER SAVE). Продовжує працювати тільки генератор таймера, що забезпечує збереження тимчасової бази. Всі інші функції відключені.

  14. Скидання при зниженні напруги живлення (BOD). Схема BOD (Brown-Out Detection) відстежує напругу джерела живлення. Якщо схема ввімкнена, то при зниженні живлення нижче деякого значення вона переводить мікроконтроллер в стан скидання. Коли напруга живлення знову збільшиться до порогового значення, запускається таймер затримки скидання. Після формування затримки внутрішній сигнал скидання знімається і відбувається запуск мікроконтролера.