русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Апаратні засоби AVR

Системний тактовий генератор AVR.

AVR може використовувати три різних джерела системної частоти: кварцовий або керамічний резонатор, зовнішній тактовий сигнал або вбудований RC-генератор (є не у всіх моделях). Звичайний діапазон частот для AVR - від 0 до 16 МГц.
Кварцовий або керамічний резонатор може бути підключений до AVR (див. мал. 2.6). Якщо використовується одна з цих схем, то не слід підключати будь-які інші пристрої до жодного з висновків XTAL.

а) б)

Рис. 2.6. Схеми підключення до AVR керамічної і кварцового резонаторів

а) без вбудованих конденсаторів і б) з вбудованими конденсаторами.

Також AVR може синхронізуватися зовнішнім тактовим сигналом, що надходять на вхід XTAL1. Останній спосіб синхронізації - використання вбудованого RC-генератора. Такий генератор на даний момент є тільки в AT90S1200, він забезпечує тактову частоту 1 МГц. Цей режим задається за допомогою одного з бітів конфігурації (fuse bit) тільки при паралельному програмуванні МК.

 

Таймери AVR.

Джерелом сигналу перемикання таймерів/лічильників є або тактова частота процесора, або зовнішній синхросигнал. Тактова частота процесора може використовуватися безпосередньо або попередньо ділитися. Вибір джерела сигналу і коефіцієнта розподілу проводиться за допомогою мультиплексора (див. рис. 2.8). Біти CSxn, керуючі мультиплексором, розташовані в регістрі управління таймера TCCR0. У AT90S8515, який містить два таймерних блоку, є два мультиплексора - по одному на кожен блок. У AT90S1200 є тільки один таймерный блок і один мультиплексор. Вміст таймера інкрементіруется при вступі переднього фронту перемикає сигналу. Тому синхросигнал з зовнішнього виведення МК надходить у мультиплексор в прямому і інверсних. Значення зовнішнього сигналу перевіряється при вступі переднього фронту тактового сигналу процесора.
На рис. 2.7 показаний Таймер 0 - простий 8-розрядний таймер, вміст якого може бути вважати або записано. Відключення вхідного сигналу відбувається шляхом вибору «заземленого» входу за допомогою мультиплексора. При переповнення лічильника реалізується замасковане переривання.
Таймер 1 - більш складний 16-розрядний таймер. Він може видавати на вихід імпульси і ШІМ-сигнали. Його великою перевагою є можливість реалізації додаткових функцій, таких як таймер подій.

 

Рис. 2.7. Структура таймера 0.

 

Сторожовий таймер.

Сторожовий таймер являє собою окремий таймер з власної частотою на 1 МГц, що при включенні буде відраховувати потрібний проміжок часу. Якщо відбудеться переповнення до того, як команда WDR скине таймер в 0, то проводитися перезапуск МК.
Сторожовий таймер включається при установці в 1 біт WDE в регістрі управління сторожового таймера WDTCR. Вміст бітів WDPn цього регістра визначає інтервал часу до того, як сторожовий таймер виробить перезапуск МК.

 

Пристрій зовнішнього виводу.

Схема підключення зовнішнього висновку, показана на мал. 2.8, дає уявлення про його роботу. З кожним набором ліній («порту») пов'язане три адреси введення/виводу, які дозволяють визначати значення даних, записаних в порт, напрямок передачі даних (1 - висновок, 0 - введення) і реальне значення сигналу на зовнішньому виведення. Внаслідок цього є можливість «підтягти» висновки порту до високого потенціалу для роботи в режимі введення даних, і використовувати стан деяких висновків як запитів переривань.
Читання даних може бути або безпосередньо з зовнішнього висновку, або з виходу даних регістра порту. Така можливість є важливою особливістю роботи порту. Якщо зовнішня лінія перевантажена або випадково закорочена на землю», то стан зовнішнього виходу ніколи не буде змінюватися. Тому в деяких випадках дуже важливо мати можливість прочитати вміст регістра порту і порівняти його з реальним станом зовнішнього виводу.

 

Рис. 2.8. Схема зовнішнього виводу.

«Підтягування» зовнішнього виведення до високого потенціалу управляється не окремими бітами регістра, а для цього використовується спеціальна комбінована схема. Ця схема дозволяє «підтягування» тільки, коли зовнішній висновок працює в режимі введення даних, тобто коли біт даних регістра напрямки скинутий в 0, а біт даних регістра порту встановлено в 1.

 

Аналоговий ввід/вивід.

Вбудований аналоговий компаратор напруг дає можливість не тільки порівнювати вхідна напруга з опорним, але і вимірювати тривалість імпульсу за допомогою вбудованого таймера. Вихід компаратора (див. мал. 2.9). буде перебувати в стані 1, якщо значення напруги на позитивному (не інвертують) вході AIN0 більше, ніж на негативному (інвертують) AIN1.
 

Рис. 2.9. Пристрій компаратора напруги.

Стан може використовуватися для реалізації різних варіантів запиту переривання, які задаються за допомогою бітів ACIS1 і ACIS0 (див. таблицю 2.1.) у регістрі переривання і стану аналогового компаратора ACSR.
Таблиця 2.1. Установки бітів ACIS1 і ACIS0.


ACIS1

ACIS0

Тип переривання

0

0

Переривання з переключення виходу компаратора

0

1

Зарезервовано

1

0

Переривання по спадающему фронту (з 1 в 0)

1

1

Переривання за наростаючим фронту (з 0 до 1)

Визначити поточний стан виходу компаратора можна шляхом опитування значення біта ACO в ACSR. Для зменшення потужності споживання можна відключити компаратор, встановивши в 1 біт ACD в регістрі ACSR. Перед тим, як увімкнути або вимкнути компаратор, треба заборонити всі його переривання шляхом скидання в 0 біта ACIE в регістрі ACSR, щоб запобігти можливість надходження помилкових запитів переривання від компаратора.

У МК AT90S8515 до виходу компаратора можна підключити вхід захоплення таймера. При цьому можна зафіксувати момент зміни сигналу на виході компаратора, якщо в регістрі ACSR біт ACIC встановлений в 1. Така можливість дозволяє вимірювати тривалість сигналу, що надходить на компаратор.

 

Конфігурування МК

У AVR Є два типи бітів, які задають конфігурацію МК. Біти конфігурування «fuses bits» (плавкі перемички) використовуються для вибору режиму роботи AVR, тоді як біти захисту «lock bits» використовуються для заборони доступу до пам'яті.
. Біти конфігурування різні для різних типів AVR. У AT90S1200 установка в 1 біт RCEN підключає вбудований RC-генератор, при цьому зовнішні тактові імпульси ігноруються. Коли біт SPIEN скинутий в 0, дозволяється програмування МК послідовного інтерфейсу через порт SPI. У всіх цих моделях біти SPIEN і RCEN за замовчуванням скинуті в 0.
МК AT90S8515 має біти SPIEN і FSTRT, які дозволяють при використанні зовнішнього тактового генератора здійснювати швидке включення МК без звичайної затримки в 16мс.
Біти конфігурування «fuses bits» можуть бути встановлені або скинуті тільки при паралельному програмуванні.
Біти захисту «lock bits» використовуються для заборони/дозволу доступу до пам'яті програм в EEPROM, при цьому досягаються властивості наведені в таблиці 2.2.
Таблиця 2.2. Режими захисту й біти блокування


Біти блокування

Тип захисту

LB1

LB2

 

1

1

1

Захист не встановлено

2

0

1

Подальше програмування флеш-пам'яті заборонено

3

0

0

Як режим 2, але заборонено і читання

Примітка: біти блокування стираються тільки при повному стиранні пам'яті

 

Пам'ять даних EEPROM.

Операції читання і запису області даних EEPROM досить прості і надійні. Звернення до EEPROM проводиться за допомогою команд з індексного адресацією, які використовують адресу, що зберігається у регістрі EEAR.

Якщо EEPROM має ємність більше 256 байт, як у AT90S8515, то використовуються два адресних регістра: EEARH для зберігання старшої частини адреси і EEARL - для зберігання молодшої частини. Ці реєстри повинні зберігати правильну адресу до тих пір, поки не буде закінчено операція читання або запису.
Запис у пам'ять даних EEPROM здійснюється наступним чином:

  1. Очікування скидання в 0 біта EEWE в регістрі управління EECR пам'яті EEPROM;
  2. Запис у EEAR потрібного адреси;
  3. Запис в регістр даних EEDR потрібних даних;
  4. Установка в 1 біт EEMWE у регістрі EECR. (Біт EEMWE не використовується в AT90S1200);
  5. протягом чотирьох тактів після установки біта EEMWE встановити біт EEWE в 1 для початку запису в EEPROM. Операція запису займає від 2,5 до 4мс.

Біт EEMWE регістра EECR забезпечує апаратну блокування запису для того, щоб зменшити можливість випадкового зміни EEPROM.
Читання з EEPROM виконується аналогічним чином.

  1. Очікування скидання в 0 біта EEWE в регістрі управління EECR;
  2. Запис у EEAR потрібного адреси;
  3. Установка в 1 біт EERE в регістрі EECR;
  4. Читання даних з EEDR.

Операція запису повинна бути закінчена до того, як програма зробить спробу читання з EEPROM. Після встановлення у 1 біт EERE процесор переходить в стан очікування протягом двох тактів, поки дані вибираються з EEPROM. Це означає, що виконання команди «SBI EECR, EERE», яка ініціалізує операцію читання, займає не один такт, а три.

 

Підключення живлення і запуск.

Підключення живлення до AVR здійснюється дуже просто. Для цього потрібна напруга +5В, шина «земля», який розв ’ язує конденсатор. Всі моделі мають широкий діапазон напруг живлення 2,7 В - 6,0 В, що дозволяє легко реалізувати батарейне живлення, використовуючи від 2 до 4 звичайних батарей або нікель-кадмієвих елемента.

Що стосується споживання енергії, то МК споживають кілька мА в робочому режимі і кілька сотень мкА в режим очікування (sleep mode).
Висновок RESET має внутрішнє з'єднання з шиною живлення через резистор («1» до харчування), що рятує від необхідності використання зовнішнього з'єднання. В процесі налагодження системи, коли треба постійно перезапускати МК і спостерігати за його поведінкою, все, що для цього потрібно - це проста кнопка, яка буде замикати висновок RESET на землю (див. мал. 2.10). У закінченому системі ви можете залишати висновок RESET не підключеним.

 

 

Рис. 2.10. Запуск AVR за допомогою зовнішнього вимикача.

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

 

Програмування в системі.

Використовуючи програмування послідовного інтерфейсу, можна змінювати програму в пам'яті МК, вже встановленого в готову до застосування систему. Для цього плата з контролером повинна бути підключена до харчування і генератора тактових сигналів (див. мал. 2.11).

 

Рис. 2.11. Схемою підключення МК для програмування в системі.

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

Для запуску лінії використовується інше підключення. Нормально на цій лінії підтримується високий рівень сигналу, а програматор може подати на неї низький, щоб перевести МК в режим програмування послідовного інтерфейсу. Управління станом лінії RESET здійснюється схемою, що має вихід з відкритим колектором.

Цю схему можна використовувати для програмування прикладної системи. Треба поєднати МК (сигнали «земля», RESET, MISO, MOSI і SCK) з програматором за допомогою 5-і контактного IDC-роз'єму.

Переглядів: 9226

Повернутися в зміст: Архітектура мікроконтролерів




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн