1 / 34

Мікроконтролери AVR

Мікроконтролери AVR. Лекція 9 Судаков О.О, Радченко С.П. « Сучасна мікропроцесорна техніка ». Сімейство мікроконтролер ів AVR. AT tiny – 8 розрядн і Малий набір перифер ії Малий набір інструкцій Мала ціна Малий об ’ єм пам ’ ят і для програм 0.5–16 kB ATMega – 8 розрядні

karif
Download Presentation

Мікроконтролери AVR

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Мікроконтролери AVR Лекція 9 Судаков О.О, Радченко С.П. «Сучасна мікропроцесорна техніка»

  2. Сімейство мікроконтролерів AVR • ATtiny – 8 розрядні • Малий набірпериферії • Малий набір інструкцій • Мала ціна • Малий об’єм пам’яті для програм 0.5–16 kB • ATMega– 8 розрядні • Розширений набірпериферії • Розширений набір інструкцій (множення) • Вища ціна • Збільшений об’єм пам’яті для програм 4–512 kB • XMEGA– 8 розрядні • Розширений набір функцій • Висока продуктивність • AVR 32 • ARM процесори не сумісні з AVR

  3. Особливості AVR • Гарвардська архітектура • Виконуваний код – лише flash пам’ять • Даны, які зміються - лише оперативна пам’ять (SRAM) • Переваги – паралельний доступ до пам’яті і даних – висока швидкодія • Недоліки - неефективне перепрограмування і збереження результатів роботи програми • Напруги живлення • 1.8 – 5.5 В • Максимальна тактова частота • 1.8 В - 4 МГц • 2.7 В – 10 МГц • 4.5 В – 20 МГц • Розрядність • Даних -8 • Адреса 16 розрядів • Відносно низьке енергоспоживання • Активний режим ~200 мкА при частоті 1 МГц • Режим енергозбереження < 1мкА

  4. Компоненти • Тактові генератори • Процесор • Пам’ять • Flash, EEPROM, SRAM • Окремі простори адрес • GPIO • Порти D,B,C • Таймери • 8-розрядні • 16-розрядний • вартовий • Послідовні шини • SPI • USART • I2C (TWI) • АЦП • 10 розрядів • 8-6 каналів • Контроль живлення

  5. Процесор • Велика кількість регістрів загального призначення • 32 8-розрядних регістра • 6 із них = 3 16- розрядних • 8-розрядний ALU • Більшість операцій за 1 такт

  6. Регістри процесора • Всі регістри відображені на оперативну пам’ять • Звертання до регістра = звертання до пам’яті • Однакові асемблерні команди • Короткі інструкції • 32 8-розрядних регістра • 8біт XL,XH,YL,YH,ZL,ZH = 16 біт X,Y,Z • Регістр стану • Вказівник стеку … Регістр стану (SREG) T-temporary V-overflow C-перенесення H-напівперенесення …. Регістри стеку

  7. Виконання команд • Переваги гарвардської архітектури • Лише читання пам’яті команд (запису немає) • Конвеєрне виконання • Поки одна команда читається інша виконується • ALU • За 1 такт виконується • Читання регістрів • Виконання • Запис в регістри

  8. Пам’ять • Гарвардська архітектура • 2 (або 3) окремих області пам’яті • SRAM – для оперативного збереження даних • FLASH – для постійного збереження даних і програм • (EEPROM – для постійного збереження даних під час вимкнення або перезапису FLASH) • Кожна область – окремий простір адрес • Адреса 0x000 FLASH це не адреса 0x000 SRAM • Виконання комад – тільки з FLASH • Всі області пам’яті плоскі (flat) • Не розбиті на сторінки (сегменти) • Для адрес пам’яті достатньо одного 16-розрядного регістра (11-14 біт)

  9. FLASH пам’ять • Для читання і виконання інструкцій • Програмний код • Програмні дані (постійні) • Обробники переривань • 2 області • Програма (Application) • Завантажувач (Boot) • Для зручності перепрограмування • Кожна програмна інструкція • 16-32 біт • Для запису спеціальні машинні інструкції (LPM,SPM)

  10. Оперативна пам’ять • Для оперативного запису-читання даних • Регістри процесора • Регістри периферії • Стек • Оперативні дані • Немає виконуваного коду • Читання/запис – 2 такти • По 8 біт кожна операція

  11. Особливості адресації пам’яті • Команди, переходи, функції, дані в програмі • Адреси у флеш-пам’яті • Доступ – 16 розрядів з кроком 2 адреси • Час доступу – 1 такт до 16 бітів • Всі оперативні дані, стек, • Адреси оперативної пам’яті • Доступ – 8 бітів з кроком 1 адреса • Час доступу 2 такти • Зарезервовані адреси пам’яті <0x60 • Регістри загального призначення • Регістри вводу-виводу (IO) • Час доступу 1 такт (IN, OUT) • Виконання доступу до даних • Безпосереднє завантаження (LDI) – 1такт • Пересилка з регістра в регістр (MOV)-1такт • Непряма (регістрова) адресація SRAM -2 такти • Непряма (регістрова) адресація FLASH -3 такти • Індексна з інкрементом/декрементом -2 такти • Виклик функцій (прямий.непрямий) – 3 такти • Повернення з функцій – 4 такти

  12. Запис флеш-пам’яті (до 10000 разів) • Процедура • Запис даних у SRAM • Стирання області FLASH • Запис області SRAMу FLASH • Запис сторінками • 32-64 слова • Є області • Read-While-Write • NonRead-While-Write • Програма • Звантажувач • Спеціальні регістри

  13. Обробники переривань • На початку FLASH • Чим менший номер, тим вищий пріоритет • Кожен вектор • 2(іноді 1 байт) • Обробка переривань – завдання програми …….. …

  14. Біти FUSE • Ще одна область Flash • Не відображається на програмну область • Фактично інша пам’ять з 1 коміркою 16 розрядів • Біти вмикають/вимикають рызны режими роботи мікроконтролера • Внутрішній-зовнішній RC генератор • Вибір тактового генератора для процесора • Дозвіл/заборона налагодження • … • Запис-читання • Запис лише через JTAG • Читання можливе в програмі

  15. Периферія • Тактові генератори • 2-3 внутрішніх • зовнішні • GPIO • 3-4 порти A,B,C,D • 8 розрядів • Таймери-лічильники • 2-3 таймера • 8-16 розрядів з PWM • Аналоговий компараптор • 1 канал, 8 комутованих входів • АЦП • 1 канал, 10 розрядів, 6 комутованих входів • Послідовні шини • USART,SPI,I2C • debugWIRE

  16. Системні годинники • Різні пристрої мають свої джерела тактування • Процесор (clkCPU) • Flash (clkFLASH) • Периферія (clkI/O) • Асинхронний (clkASY) • АЦП (clkADC) • Різні системні годинники тактуються різними генераторами • Внутрішній RC 128 кГц • Внутрішній RC 1-8МГц • Кварцевий НЧ • Зовнішні

  17. Керування тактовими генераторами • Дозвіл і підключення до пристроїв, коефіцієнт поділу • Fuse біти • На етапі прошивки • Запуск-зупинка • Під час роботи програми • Перериваннями • Калібровка • Під час роботи програми • Спеціальний регістр

  18. Ввімкнення і виконання програми • Ввімкнення • Виконання з адреси RESET вектора (0000) • RESET вектор можна перемкнути на область завантажувача • RESET • При ввімкненні • При втраті або низькому живленні • Коли спрацьовує Watchdog • При подачі сигналів на “ніжку”reset • Виконання • Зчитує послідовно і виконуэ команди поки не зупиниться • Переривання • Перериває зупинку, або код і виконує обробник переривань • Джерелом може бути периферія

  19. Режими низького енергоспоживання Спеціальні регістри керування SMCR – sleep mode control MCUCR PRR – power reduction register

  20. GPIO • Декілька портів вводу-виводу • A,B,C,D • Кожен порт 8 розрядів • Можна підключати “ніжки” до бітів портів • Кожен біт може бути на ввід або вивід • Можна підключати-відключати підтягуючі резистори (тільки до живлення) • Можна дозволяти забороняти переривання по кожному піну

  21. Підключення портів і резисторів • Регістри • DDxn (x=A,B,C,D - порти n=0-7 біти) ввід чи вивід • PORTxn – вивід (0 чи 1) • PUD глобальний дозвіл підтягуючих резисторів • PIN – введення

  22. Читання порту • Регістри PINxn • Наприклад PINB1 – біт 1 порта B • Запис в регістр - по спаду такта • Виконання інструкції – по фронту такта • Мінімальна затримка – 0.5 такта • Максимальна затримка – 1.5 такта • Після запису перед читанням – необхідно почекати 1 такт • 1 nop інструкція

  23. Переривання GPIO • Деякі виводи деяких потів можуть бути джерелами переривань • Зовнішні переривання INT0,INT1 • По 0, по фронту, спаду, зміні • регістр EICRA умова і сигнал – що викликало • Регістр EIMSK маскування переривань • Регістр EIFR прапорці яке з пепреривань було • По зміні рівня на “ніжці” PCINT0-23 • PCICR – дозвіл для портів B,C,D (3 біта) • PCIFR – по якому порту було переривання B,C,D (3 біта) • PCMSK1,PCMSK2 – маскування переривань (24 біта) • 2 обробника переривань (для INT і для PCINT) • Переривання будуть і коли порт на IN і на OUT

  24. Вибір функцій “ніжок” • За замовченням ніжки підключені до портів GPIO • Після ввімкнення • Переривання GPIO дозволяються, коли порти в режиміGPIO і сконфігуровані переривання • Ввімкнення альтернативних функцій вимикає GPIO і вмикає альтернативну функцію • Таймер • АЦП • Компаратор

  25. Таймери Таймер-лічник Джерела тактування Лічильник Джерела Захоплення • Типи таймерів • Timer0 • 8 біт • Внутрішнє, або зовнішнє джерело тактування • Режим порівняння (два регістри) • Виведення ШІМ • Timer1 • 16 біт • Внутрішнє, або зовнішнє джерело тактування • Режим порівняння (два регістри) • Виведення ШІМ • Режим захоплення • Timer2 • Як Timer0 • Внутрішнє джерело тактування, або власний тактовий генератор Регістри захоплення Регістри порівняння переривання Вихід ШІМ

  26. Джерела тактування таймерів • Таймер рахує тактові імпульси, які надходять • Подільник частоти 1(prescaler 1) для timer0і timer1 • Ділення на 8,64,256,1024 • Інший подільник частоти для timer2 • Ділення на 8,32,64,128,256,1024 • Кожен таймер може мати свій коефіцієнт поділу • Зовнішнє джерело • Подільники тактуються • системним годинником • Зовнішнє джерело • Частота не ділиться

  27. Регістри таймерів • Значення лічильника таймера • TCNT0 (8 біт),TCNT1(16 біт),TCNT2(8 біт) • Кількість нарахованих імпульсів • Регістри порівняння • OCR0A,OCR0B(8 біт), OCR1A,OCR1B (16 біт), OCR2A,OCR2B(8 біт) • Значення з якими порівнюється лічильник • Регістри переривань • TIMSK[0,1,2] – маскування переривань • TIFR[0,1,2] – прапорці наявності переривань (преповнення, захоплення, порівняння) • Регістри захоплення • ICR1 (16 біт) • Регістри керування • TCCR[0,1,2]ATCCR[0,1,2]B • При ввімкненні таймера порти переходять в режим виводу таймера

  28. OC flag Режими таймерів • Normal • БітиWGM02:0=0 • Рахуємо до максимуму і переходимо в нуль • Переривання по переповненню TOV • Clear on Compare • БітиWGM02:0=2 • Рахуємо до CCR[0,1,2]Aі переходимо в нуль • Переривання по порівнянню OCF[0,1,2]A • Fast PWM • БітиWGM02:0=3,7 • Fhase correct PWM • БітиWGM02:0=1,5

  29. Вихідні сигнали таймерів • Коли таймер дорахував до значень в регістрах OCR*AтаOCR*B • Вмикаються високий або низький рівні на «ніжках» виходу таймера • Генерується переривання по порівнянню OCF*AабоOCF*B • Режими виводу регулюється бітами COM*A1,COM*A2,COM*B1,COM*B2 • Наприклад COM0A1=1,COM0A2=0 перемкнути вихід OCA0 • Див. документацію

  30. Генерація ШІМ Скважність (OCRA+1)/256 0 – 1 імпульс 256 – постійне значення • Приклад Fast PWM • Записати необхідні біти в регістрах керування • В обробнику переривання по переповненню змінювати регістр OCRA

  31. Режим захоплення (timer1) • Встановлення джерела захоплення • Компаратор • Зовнішній вивід • Спеціальні біти в регістрах інших пристроїв • По фронту чи по спаду сигнала • Значення таймера копіюється спеціальний регістр • ICR1 • Генерується переривання • Прапорець ICF1 • Потрібно зберегти інформацію про результат захоплення • Вимірювання часових інтервалів

  32. Компаратор • Порівняння значень на 2-х ніжках • AIN0>AIN1біт ACOвстановлений • Замість AINT1можна включати AD0-AD7 (регістр ADMUX) • При переремиканні може генеруватись переривання (фронт, спад, перермикання) • Може бути джерелом захоплення timer1 • Підключення внутрішнього джерела опорної напруги • Регістри • ADSRB,ACSR,DIDR1, ADMUX

  33. АЦП • 10-бітне перетворення сигналу на вході • 1023*U/Uref • Опорна напруга Uref – вхід Aref, 1.1 В, Vcc • Вхід – один з виводів AD0-AD7 (регістр ADMUX) • Результат 2 регістраADCH ADCL • Запуск – біт ADSC=1 в регістрі ADCSRA • Постійний самозапуск ADATE=1 • Після завершення • Генерується переривання • Встановлюється прапорець ADIF • Тактова частота (50-200кГц) • Подільник встановлюється бітами ADPS • Вища частота – нижча точність • Час переретворення 13-25 тактів

  34. Висновки • Переваги AVR • Потужна периферія • Швидкість • Прості інтерфейси • Популярність • Недоліки AVR • 8 розрядність – складність для 16-розрядних операцій • Великий набір команд • Мала кількість режимів

More Related