МИРОВАЯ ЭЛЕКТРОНИКА
А. В. Евстифеев
С Е Р И Я
Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL
5е издание
Мос...
107 downloads
1402 Views
2MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
МИРОВАЯ ЭЛЕКТРОНИКА
А. В. Евстифеев
С Е Р И Я
Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL
5е издание
Москва Издательский дом «ДодэкаXXI» 2008
—1—
УДК 621.316.544.1 (035.5) ББК 32.844.104я2 E26
E26
Евстифеев А.В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL, 5е изд., стер. — М.: Издательский дом «ДодэкаXXI», 2008. — 560 с. ISBN 9785941202201 Книга посвящена вопросам практического применения однокристальных микроконтроллеров AVR семейств Tiny и Mega фирмы ATMEL. Рассмотрена архитектура, ее особенности. Приведены основные электриче ские параметры и временные характеристики. Подробно описано внутреннее устройство микроконтроллеров, системы команд, периферия, а также способы программирования с примерами реализации некоторых алгоритмов для конкрет ных цифровых устройств. Книга предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов вузов и радиолюбителей. УДК 621.316.544.1 (035.5) ББК 32.844.104я2
ISBN 9785941202201
© Издательский дом «ДодэкаXXI», 2008 ® Серия «Мировая электроника»
—2—
Оглавление
Оглавление Предисловие...........................................................................................................9
Часть 1. Микроконтроллеры семейства Tiny Глава 1. Знакомство с семейством Tiny 1.1. Общие сведения .......................................................................................12 1.2. Отличительные особенности...................................................................12 1.3. Характеристики процессора ....................................................................13 1.4. Характеристики подсистемы ввода/вывода............................................13 1.5. Периферийные устройства ......................................................................14 1.6. Архитектура ядра......................................................................................14 1.7. Цоколевка и описание выводов...............................................................15 Глава 2. Архитектура микроконтроллеров семейства Tiny 2.1. Общие сведения .......................................................................................21 2.2. Организация памяти ................................................................................26 2.2.1. Память программ..............................................................................26 2.2.2. Память данных..................................................................................28 2.2.3. Энергонезависимая память данных (EEPROM) .............................38 2.3. Счетчик команд и выполнение программы ............................................42 2.3.1. Функционирование конвейера ........................................................42 2.3.2. Задержки в конвейере.......................................................................43 2.3.3. Счетчик команд ................................................................................44 2.3.4. Команды типа «проверка/пропуск» (Test & Skip)............................44 2.3.5. Команды условного перехода...........................................................44 2.3.6. Команда безусловного перехода ......................................................45 2.3.7. Команда вызова подпрограмм .........................................................45 2.3.8. Команды возврата из подпрограмм .................................................46 2.4. Стек...........................................................................................................46 Глава 3. Устройство управления микроконтроллеров семейства Tiny 3.1. Общие сведения .......................................................................................48 3.2. Тактовый генератор..................................................................................49 3.2.1. Кварцевый генератор .......................................................................49 3.2.2. Внешний сигнал синхронизации.....................................................50 3.2.3. Встроенный генератор с внешней или внутренней RCцепочкой .....................................................................................50 3.3. Режимы пониженного энергопотребления ............................................52 3.3.1. Режим Idle ........................................................................................53 3.3.2. Режим Power Down ...........................................................................53 3.3.3. Режим ADC Noise Reduction ...........................................................54 3.4. Сброс ........................................................................................................54
—3—
Оглавление 3.4.1. Сброс по включению питания......................................................... 55 3.4.2. Аппаратный сброс ............................................................................ 57 3.4.3. Сброс от сторожевого таймера ........................................................ 57 3.4.4. Сброс при снижении напряжения питания.................................... 58 3.4.5. Управление схемой сброса ............................................................... 59 3.5. Прерывания ............................................................................................. 66 3.5.1. Таблица векторов прерываний ........................................................ 66 3.5.2. Обработка прерываний .................................................................... 67 3.5.3. Внешние прерывания. Регистры GIMSK и GIFR .......................... 69 3.5.4. Прерывания от таймеров. Регистры TIMSK и TIFR ...................... 71 3.5.5. Управление прерываниями в микроконтроллерах ATtiny28x. Регистры ICR и IFR.......................................................................... 73 Глава 4. Порты ввода/вывода 4.1. Общие сведения....................................................................................... 76 4.2. Обращение к портам ввода/вывода ........................................................ 77 4.3. Конфигурирование портов ввода/вывода .............................................. 78 4.4. Аппаратный модулятор ........................................................................... 81 Глава 5. Таймеры в микроконтроллерах семейства Tiny 5.1. Общие сведения....................................................................................... 86 5.2. Назначение выводов таймеров/счетчиков ............................................. 86 5.3. Таймер/счетчик T0................................................................................... 87 5.4. Таймер/счетчик T1................................................................................... 90 5.4.1. Выбор источника тактового сигнала ............................................... 93 5.4.2. Режим таймера ................................................................................. 94 5.4.3. Режим ШИМ .................................................................................... 95 5.5. Сторожевой таймер ................................................................................. 97 Глава 6. Аналоговый компаратор 6.1. Общие сведения..................................................................................... 100 6.2. Функционирование компаратора ......................................................... 100 Глава 7. Аналогоцифровой преобразователь 7.1. Общие сведения..................................................................................... 104 7.2. Функционирование модуля АЦП ......................................................... 104 7.3. Повышение точности преобразования................................................. 111 7.4. Параметры АЦП .................................................................................... 112
Часть 2. Микроконтроллеры семейства Mega Глава 8. Знакомство с семейством Mega 8.1. Общие сведения..................................................................................... 114 8.2. Отличительные особенности ................................................................ 114 8.3. Характеристики процессора ................................................................. 115 8.4. Характеристики подсистемы ввода/вывода ......................................... 115 8.5. Периферийные устройства.................................................................... 116
—4—
Оглавление 8.6. Архитектура ядра.................................................................................... 116 8.7. Цоколевка и описание выводов............................................................. 117 Глава 9. Архитектура микроконтроллеров семейства Mega 9.1. Введение ................................................................................................. 148 9.2. Организация памяти .............................................................................. 148 9.2.1. Память программ............................................................................ 150 9.2.2. Память данных................................................................................ 153 9.2.3. Энергонезависимая память данных (EEPROM) ........................... 189 9.3. Счетчик команд и выполнение программы .......................................... 193 9.3.1. Счетчик команд .............................................................................. 193 9.3.2. Функционирование конвейера ...................................................... 193 9.3.3. Команды типа «проверка/пропуск» (Test & Skip).......................... 194 9.3.4. Команды условного перехода......................................................... 195 9.3.5. Команды безусловного перехода ................................................... 195 9.3.6. Команды вызова подпрограмм ...................................................... 197 9.3.7. Команды возврата из подпрограмм ............................................... 198 9.4. Стек......................................................................................................... 198 Глава 10. Тактирование, режимы пониженного энергопотребления и сброс 10.1. Общие сведения ................................................................................... 200 10.2. Тактовый генератор .............................................................................. 200 10.2.1. Тактовый генератор с внешним резонатором.............................. 203 10.2.2. Низкочастотный кварцевый генератор........................................ 204 10.2.3. Внешний сигнал синхронизации ................................................. 205 10.2.4. Внешняя RCцепочка ................................................................... 205 10.2.5. Встроенный генератор с внутренней RCцепочкой .................... 206 10.2.6. Управление тактовой частотой..................................................... 209 10.3. Режимы пониженного энергопотребления......................................... 210 10.4. Сброс..................................................................................................... 217 10.4.1. Сброс по включению питания ..................................................... 219 10.4.2. Аппаратный сброс......................................................................... 221 10.4.3. Сброс от сторожевого таймера ..................................................... 221 10.4.4. Сброс при снижении напряжения питания ................................ 222 10.4.5. Управление схемой сброса............................................................ 223 Глава 11. Прерывания 11.1. Общие сведения ................................................................................... 230 11.2. Таблица векторов прерываний ............................................................ 230 11.3. Обработка прерываний ........................................................................ 239 11.4. Внешние прерывания........................................................................... 240 Глава 12. Порты ввода/вывода 12.1. Общие сведения ................................................................................... 248 12.2. Регистры портов ввода/вывода............................................................ 249 12.3. Конфигурирование портов ввода/вывода........................................... 250
—5—
Оглавление Глава 13. Таймеры 13.1. Общие сведения ................................................................................... 255 13.2. Назначение выводов таймеров/счетчиков ......................................... 256 13.3. Прерывания от таймеров/счетчиков................................................... 257 13.4. Предделители таймеров/счетчиков .................................................... 261 13.4.1. Управление предделителями........................................................ 262 13.4.2. Использование внешнего тактового сигнала.............................. 263 13.5. Таймеры/счетчики T0 и T2 .................................................................. 264 13.5.1. Управление тактовым сигналом .................................................. 269 13.5.2. Режимы работы ............................................................................ 270 13.5.3. Асинхронный режим .................................................................... 276 13.6. Таймеры/счетчики T1и T3................................................................... 279 13.6.1. Обращение к 16разрядным регистрам ....................................... 287 13.6.2. Управление тактовым сигналом .................................................. 288 13.6.3. Режимы работы ............................................................................ 288 13.7. Сторожевой таймер.............................................................................. 300 Глава 14. Аналоговый компаратор 14.1. Введение............................................................................................... 305 14.2. Функционирование компаратора ....................................................... 306 Глава 15. Аналогоцифровой преобразователь 15.1. Общие сведения ................................................................................... 310 15.2. Функционирование модуля АЦП ....................................................... 311 15.3. Результат преобразования ................................................................... 320 15.4. Повышение точности преобразования ............................................... 321 15.5. Параметры АЦП .................................................................................. 323 Глава 16. Универсальный асинхронный (синхронный/асинхронный) приемопередатчик 16.1. Общие сведения ................................................................................... 324 16.2. Использование модулей USART/UART ............................................. 326 16.2.1. Скорость приема/передачи.......................................................... 333 16.2.2. Формат кадра ................................................................................ 336 16.2.3. Передача данных .......................................................................... 338 16.2.4. Прием данных .............................................................................. 340 16.3. Мультипроцессорный режим работы ................................................. 345 Глава 17. Последовательный периферийный интерфейс SPI 17.1. Введение............................................................................................... 347 17.2. Функционирование модуля SPI .......................................................... 347 17.3. Режимы передачи данных ................................................................... 352 17.4. Использование вывода SS ................................................................... 353 Глава 18. Последовательный двухпроводный интерфейс 18.1. Общие сведения ................................................................................... 355
—6—
Оглавление 18.2. Принципы обмена данными по шине TWI ......................................... 356 18.3. Обзор модуля TWI ................................................................................ 361 18.4. Взаимодействие прикладной программы с модулем TWI .................. 367 18.5. Режимы работы модуля TWI................................................................ 370 18.5.1. Режим «Ведущий передатчик» ..................................................... 370 18.5.2. Режим «Ведущий приемник» ....................................................... 374 18.5.3. Режим «Ведомый приемник» ....................................................... 378 18.5.4. Режим «Ведомый передатчик» ..................................................... 382 18.5.5. Комбинирование различных режимов ........................................ 385 18.5.6. Арбитраж ....................................................................................... 386 18.6. Параметры интерфейса TWI ................................................................ 387
Часть 3. Команды микроконтроллеров семейств Tiny и Mega Глава 19. Общие сведения о системе команд 19.1. Введение в систему команд.................................................................. 390 19.2. Операнды.............................................................................................. 390 19.3. Типы команд......................................................................................... 392 19.3.1. Команды логических операций.................................................... 392 19.3.2. Команды арифметических операций и команды сдвига............. 393 19.3.3. Команды операций с битами........................................................ 393 19.3.4. Команды пересылки данных ........................................................ 394 19.3.5. Команды передачи управления .................................................... 394 19.3.6. Команды управления системой.................................................... 397 19.4. Сводные таблицы команд .................................................................... 397 Глава 20. Описание команд ................................................................................ 403
Часть 4. Программирование микроконтроллеров семейств Tiny и Mega Глава 21. Введение в программирование микроконтроллеров AVR 21.1. Общие сведения ................................................................................... 472 21.2. Защита кода и данных .......................................................................... 473 21.3. Конфигурационные ячейки................................................................. 475 21.4. Идентификатор .................................................................................... 479 21.5. Калибровочная ячейка......................................................................... 480 21.6. Организация памяти программ и данных микроконтроллеров семейства Mega..................................................................................... 480 Глава 22. Последовательное программирование при высоком напряжении 22.1. Общие сведения ................................................................................... 482 22.2. Управление процессом программирования ........................................ 483 Глава 23. Программирование по последовательному каналу 23.1. Общие сведения ................................................................................... 489 23.2. Переключение в режим программирования ....................................... 492 23.3. Управлением процессом программирования FLASHпамяти ........... 496 23.4. Управление процессом программирования EEPROMпамяти.......... 497
—7—
Оглавление Глава 24. Параллельное программирование 24.1. Общие сведения ................................................................................... 498 24.2. Переключение в режим параллельного программирования.............. 504 24.3. Стирание кристалла............................................................................. 505 24.4. Программирование FLASHпамяти ................................................... 505 24.5. Программирование EEPROMпамяти ............................................... 508 24.6. Конфигурирование микроконтроллеров............................................ 510 24.6.1. Программирование конфигурационных ячеек........................... 510 24.6.2. Программирование ячеек защиты............................................... 511 24.6.3. Чтение конфигурационных ячеек и ячеек защиты..................... 511 24.6.4. Чтение ячеек идентификатора и калибровочной константы ..... 512 Глава 25. Программирование по интерфейсу JTAG 25.1. Общие сведения ................................................................................... 514 25.2. Использование интерфейса JTAG для программирования кристалла. Команды JTAG..................................................................................... 517 25.2.1. AVR_RESET (код команды $0C) ................................................. 518 25.2.2. PROG_ENABLE (код команды $04)............................................ 518 25.2.3. PROG_COMMANDS (код команды $05).................................... 518 25.2.4. PROG_PAGELOAD (код команды $06)....................................... 519 25.2.5. PROG_PAGEREAD (код команды $07) ...................................... 519 25.2.6. Алгоритм программирования ...................................................... 519 Глава 26. Самопрограммирование микроконтроллеров семейства Mega 26.1. Общие сведения ................................................................................... 528 26.2. Области RWW и NRWW ...................................................................... 530 26.3. Функционирование загрузчика........................................................... 531 26.3.1. Управление процессом самопрограммирования ........................ 531 26.3.2. Изменение памяти программ ...................................................... 535 26.3.3. Изменение ячеек защиты загрузчика .......................................... 536 26.3.4. Чтение конфигурационных ячеек и ячеек защиты..................... 536 26.3.5. Пример реализации программызагрузчика ............................... 537
Приложения Приложение 1. Сводная таблица микроконтроллеров AVR семейства Tiny ....... 542 Приложение 2. Сводная таблица микроконтроллеров AVR семейства Mega ..... 544 Приложение 3. Чертежи корпусов микроконтроллеров AVR семейств Tiny и Mega ............................................................... 549 Приложение 4. Электрические параметры микроконтроллеров AVR семейств Tiny и Mega ............................................................... 552
Предметный указатель ............................................................................... 554
—8—
Предисловие Книга, которую вы держите в руках, — это вторая книга, посвящен ная микроконтроллерам AVR фирмы «Atmel». Эти 8разрядные RISCмикроконтроллеры для встраиваемых приложений являются, пожалуй, наиболее интересным и прогрессивным направлением, раз виваемым фирмой. Микроконтроллеры этой серии представляют со бой мощный инструмент, прекрасную основу для создания современ ных высокопроизводительных и экономичных встраиваемых контроллеров многоцелевого назначения. Популярность микроконтроллеров AVR постоянно увеличивается. Не последнюю роль в этом играет соотношение показателей «цена/бы стродействие/энергопотребление», являющееся одним из лучших на рынке 8разрядных микроконтроллеров. Кроме того, постоянно растет число выпускаемых сторонними производителями разнообразных программных и аппаратных средств поддержки разработок устройств на их основе. Все это позволяет говорить о микроконтроллерах AVR как о новом индустриальном стандарте среди 8разрядных микрокон троллеров общего применения. В рамках единой базовой архитектуры микроконтроллеры AVR подразделяются на три семейства: • Classic AVR; • Mega AVR; • Tiny AVR. Микроконтроллеры семейства Classic были описаны в первой книге серии, а данная книга посвящена двум последним семейст вам — Tiny и Mega. Микроконтроллеры семейства Tiny имеют небольшие объемы памяти программ (1…2 Кбайта) и весьма ограниченную периферию. Практически все они выпускаются в 8выводных корпусах и предна
—9—
Предисловие значены для т. н. «бюджетных» решений, принимаемых в условиях же стких финансовых ограничений. Область применения этих микрокон троллеров — интеллектуальные датчики различного назначения (контрольные, пожарные, охранные), игрушки, зарядные устройства, различная бытовая техника и другие подобные устройства. Микроконтроллеры семейства Mega, напротив, имеют наиболее развитую периферию, наибольшие среди всех микроконтроллеров AVR объемы памяти программ и данных. Они предназначены для ис пользования в мобильных телефонах, контроллерах различного пери ферийного оборудования (принтеры, сканеры, современные дисковые накопители, приводы CDROM/DVDROM и т. п.), сложной офисной технике и т. д. Микроконтроллеры обоих семейств поддерживают несколько ре жимов пониженного энергопотребления, имеют блок прерываний, сторожевой таймер и допускают программирование непосредственно в готовом устройстве. В предлагаемой вашему вниманию книге представлена вся инфор мация, необходимая для изучения микроконтроллеров AVR семейств Tiny и Mega. Однако следует заметить, что всеобъемлющим справоч ником данная книга не является, хотя и написана на основе докумен тации, предоставляемой фирмой «Atmel». Поэтому, прежде чем при ступить к практическому использованию рассматриваемых микроконтроллеров, настоятельно рекомендуется обратиться к офи циальной информации, размещенной на Webсайтах фирмы (www.atmel.com, www.atmel.ru).
— 10 —
Часть 1 Микроконтроллеры семейства Tiny Гла в а 1
Знакомство с семейством Tiny
Гла в а 2
Архитектура микроконтроллеров семейства Tiny
Гла в а 3
Устройство управления микроконтроллеров семейства Tiny
Гла в а 4
Порты ввода/вывода
Гла в а 5
Таймеры в микроконтроллерах семейства Tiny
Гла в а 6
Аналоговый компаратор
Гла в а 7
Аналогоцифровой преобразователь
— 11 —
Часть 1. Микроконтроллеры семейства Tiny
Глава 1. Знакомство с семейством Tiny
1.1. Общие сведения Как и все микроконтроллеры AVR фирмы «Atmel», микрокон троллеры семейства Tiny являются 8разрядными микроконтролле рами, предназначенными для встраиваемых приложений. Они изго тавливаются по малопотребляющей КМОПтехнологии, которая в сочетании с усовершенствованной RISCархитектурой позволяет достичь наилучшего соотношения быстродействие/энергопотребле ние. Удельное быстродействие этих микроконтроллеров может до стигать значения 1 MIPS/МГц (1 миллион операций в секунду на 1 МГц тактовой частоты). Модели микроконтроллеров семейства Tiny и их основные параметры приведены в приложениях 1 и 4. Мик роконтроллеры описываемого семейства предназначены в первую очередь для низкостоимостных («бюджетных») приложений и соот ветственно являются самыми дешевыми из всех микроконтроллеров AVR. Важной особенностью этих микроконтроллеров является эффективное использование выводов кристалла, например, в 8вы водном корпусе все выводы (кроме, разумеется, выводов питания) могут использоваться в качестве линий ввода/вывода.
1.2. Отличительные особенности Перечислим вкратце основные особенности микроконтроллеров семейства Tiny: • возможность вычислений со скоростью до 1 MIPS/МГц; • FLASHпамять программ объемом 1…2 Кбайт (число циклов сти рания/записи не менее 1000); • оперативная память (статическое ОЗУ) объемом 1…2 Кбайт;
— 12 —
Глава 1. Знакомство с семейством Tiny • • • •
• •
память данных на основе ЭСППЗУ (EEPROM) объемом до 64 байт (число циклов стирания/записи не менее 100000); возможность защиты от внешнего чтения и модификации памяти программ и данных (в EEPROM); возможность программирования непосредственно в системе че рез последовательный интерфейс*; различные способы синхронизации: встроенный генератор с внутренней или внешней времязадающей RCцепочкой; встроенный генератор с внешним резонатором (пьезокерамиче ским или кварцевым); внешний сигнал синхронизации; наличие двух или трех режимов пониженного энергопотребле ния; некоторые модели микроконтроллеров могут работать при пони женном до 1.8 В напряжении питания.
1.3. Характеристики процессора Основными характеристиками центрального процессора микро контроллеров рассматриваемого семейства являются: • полностью статическая архитектура; минимальная тактовая час тота равна нулю; • АЛУ подключено непосредственно к регистрам общего назначе ния; • большинство команд выполняются за один машинный цикл; • многоуровневая система прерываний; поддержка очереди преры ваний; • 5…8 источников прерываний (из них до 2х внешних)**; • трехуровневый аппаратный стек.
1.4. Характеристики подсистемы ввода/вывода Основными характеристиками подсистемы ввода/вывода являются: программное конфигурирование и выбор портов ввода/вывода; выводы могут быть запрограммированы как входные или как вы ходные независимо друг от друга; • входные буферы с триггером Шмитта на всех выводах; • возможность подключения к входам внутренних подтягивающих резисторов (сопротивление резисторов составляет 35…120 кОм). • •
* Не во всех моделях. ** Зависит от конкретной модели микроконтроллера.
— 13 —
Часть 1. Микроконтроллеры семейства Tiny
1.5. Периферийные устройства Набор периферийных устройств, имеющихся в составе того или иного микроконтроллера, зависит от конкретной модели и может быть определен по сводной таблице, приведенной в Приложении 1. Вообще же в составе микроконтроллеров семейства встречаются следующие периферийные устройства: • 8разрядный таймер/счетчик с предделителем (таймер T0)*; • второй 8разрядный таймер/счетчик с предделителем (таймер T1)**; • сторожевой таймер WDT*; • одноканальный генератор сигнала с ШИМ разрядностью 8 бит (один из режимов работы таймера T1); • аналоговый компаратор*; • 10разрядный АЦП (4 канала); • аппаратный модулятор.
1.6. Архитектура ядра Ядро микроконтроллеров AVR семейства Tiny выполнено по усо вершенствованной RISC (enhanced RISC) архитектуре (Рис. 1.1), в ко торой используется ряд решений, направленных на повышение быст родействия микроконтроллеров. $$
ПЗУ (EEPROM)
Счетчик команд
Регистры управления
Регистр команд 32 регистра общего назначения
АЦП
Дешифратор команд АЛУ
Сторожевой таймер (WDT)
Таймеры
Порты ввода/вывода
Аналоговый компаратор
Модуль прерываний
ATM2IL001
ПЗУ (FLASH)
Последовательный синхронный интерфейс SPI
Рис. 1.1. Архитектура ядра микроконтроллеров AVR семейства Tiny * Присутствует во всех моделях. ** Присутствует только в модели ATtiny 15L.
— 14 —
Глава 1. Знакомство с семейством Tiny
Арифметикологическое устройство (АЛУ), выполняющее все вычис ления, подключено непосредственно к 32м рабочим регистрам, объеди ненным в регистровый файл. Благодаря этому АЛУ выполняет одну опера цию (чтение содержимого регистров, выполнение операции и запись результата обратно в регистровый файл) за один машинный цикл. Кроме того, в микроконтроллерах семейства Tiny каждая из команд занимает только одну ячейку памяти программ. В микроконтроллерах AVR реализована Гарвардская архитектура, кото рая характеризуется раздельной памятью программ и данных, каждая из ко торых имеет собственные шины доступа к ним. Такая организация позволя ет одновременно работать как с памятью программ, так и с памятью данных. Разделение шин доступа позволяет использовать для каждого типа памяти шины различной разрядности, а также реализовать конвейеризацию. Кон вейеризация заключается в том, что во время исполнения текущей команды производится выборка из памяти и дешифрация кода следующей команды. В отличие от RISCмикроконтроллеров других фирм, в микрокон троллерах AVR используется 2уровневый конвейер, а длительность ма шинного цикла составляет всего один период кварцевого резонатора. В результате, при более низкой тактовой частоте они могут обеспечивать ту же производительность, что и RISCмикроконтроллеры других фирм.
1.7. Цоколевка и описание выводов В семейство Tiny входит в общей сложности 8 моделей микрокон троллеров, которые составляют 4 группы: • ATtiny11, ATtiny11L (Рис. 1.2) имеют FLASHпамять программ объе мом 1 Кбайт. Максимальное количество контактов ввода/вывода равно 6 (вывод 1 может использоваться только как входной); • ATtiny12, ATtiny12L, ATtiny12V (Рис. 1.3) имеют FLASHпамять программ объемом 1 Кбайт и EEPROMпамять данных объемом 64 байт. Максимальное количество контактов ввода/вывода равно 6; • ATtiny15L (Рис. 1.4) имеет FLASHпамять программ объемом 1 Кбайт и EEPROMпамять данных объемом 64 байт. Макси мальное количество контактов ввода/вывода равно 6; • ATtiny28L, ATtiny28V (Рис. 1.5) имеют FLASHпамять программ 2 Кбайт. Количество контактов ввода/вывода равно 19 (из них 11 — контакты ввода/вывода общего назначения, а 8 — входные контакты). Пока книга готовилась к печати, фирма «Atmel» выпустила еще две модели микроконтроллеров семейства — ATtiny26/ATtiny26L. Эти мик роконтроллеры имеют FLASHпамять программ объемом 2 Кбайт, ОЗУ
— 15 —
Часть 1. Микроконтроллеры семейства Tiny
объемом 128 байт и EEPROMпамять данных объемом 128 байт. Количество контактов ввода/вывода в этих моделях равно 16. В данной книге эти модели по понятным причинам не описываются, однако ос новные их параметры приведены в Приложении 1. Для сравнения в Табл. 1.1 приводятся основные параметры микро контроллеров, такие, как объем памяти (программ и данных), количе ство контактов ввода/вывода, тип корпуса, диапазон рабочих частот и напряжение питания. Полная информация по каждой модели приве дена в Приложении 1. Дополнительно следует отметить, что все мик роконтроллеры семейства Tiny выпускаются как в коммерческом (диа пазон рабочих температур 0...+70°C), так и в промышленном (диапазон рабочих температур –40...+85°C) исполнениях. Таблица 1.1. Основные параметры микроконтроллеров AVR семейства Tiny Память программ (FLASH) [Кбайт]
Память данных (EEPROM) [байт]
ATtiny11
1
—
6
4.0…5.5
0…6
ATtiny11L
1
—
6
2.7… 5.5
0…2
ATtiny12
1
64
6
4.0…5.5
0…8
ATtiny12L
1
64
6
2.7… 5.5
0…4
ATtiny12V
1
64
6
1.8…5.5
0…1.2
ATtiny15L
1
64
6
2.7…5.5
0…1.2
ATtiny28L
2
—
19
2.7…5.5
0…4
ATtiny28V
2
—
19
1.8…5.5
0…1.2
Обозна чение
Количество Напряжение Тактовая линий питания частота ввода/вывода [В] [МГц]
Тип корпуса DIP8 SOIC8 DIP8 SOIC8 DIP8 SOIC8 DIP8 SOIC8 DIP8 SOIC8 DIP8 SOIC8 DIP28 TQFP32 MLF32 DIP28 TQFP32 MLF32
В Табл. 1.2…1.5 для каждой группы микроконтроллеров приведены названия выводов и указаны их функции (как основные, так и допол нительные). Кроме того, для каждого вывода в таблицах указан его тип (вход, выход, вход/выход, вывод питания).
— 16 —
Глава 1. Знакомство с семейством Tiny
В таблицах использованы следующие обозначения: I – вход; O – выход; I/O – вход/выход; P – выводы питания. $<IL002>$
ATtiny11/11L (RESET) PB5
1
8
VCC
(XTAL1) PB3
2
7
PB2 (T0)
(XTAL2) PB4
3
6
PB1 (INT0/AIN1)
GND
4
5
PB0 (AIN0)
PDIP/SOIC
Рис. 1.2. Расположение выводов (вид сверху) моделей ATtiny11/11L
Таблица 1.2. Описание выводов модели ATtiny11/11L Обозначение
Номер вывода
Тип вывода
Описание
PB0 (AIN0)
5
I/O
0й разряд порта B (Положительный вход компаратора)
PB1 (INT0/AIN1)
6
I/O
1й разряд порта B (Вход внешнего прерывания/ Отрицательный вход компаратора)
PB2 (T0)
7
I/O
2й разряд порта B (Вход внешнего тактового сигнала таймера/счетчика T0)
PB3 (XTAL1)
2
I/O
PB4 (XTAL2)
3
I/O
PB5 (RESET)
1
I
GND VCC
4 8
P P
3й разряд порта В (Вход тактового генератора) 4й разряд порта В (Выход тактового генератора) 5й разряд порта В (Вход сброса) Общий вывод Вывод источника питания $<IL003>$
ATtiny12/12L/12V (RESET) PB5
1
8
VCC
(XTAL1) PB3
2
7
PB2 (SCK/T0)
(XTAL2) PB4
3
6
PB1 (MISO/INT0/AIN1)
GND
4
5
PB0 (MOSI/AIN0)
PDIP/SOIC
Рис. 1.3. Расположение выводов (вид сверху) моделей ATtiny12/12L/12V
— 17 —
Часть 1. Микроконтроллеры семейства Tiny Таблица 1.3. Описание выводов модели ATtiny12/12L/12V Номер вывода
Тип вывода
PB0 (MOSI/AIN0)
5
I/O
0й разряд порта B (Вход данных при программировании/Положительный вход компаратора)
PB1 (MISO/INT0/ AIN1)
6
I/O
1й разряд порта B (Выход данных при программировании/Вход внешнего прерывания/ Отрицательный вход компаратора)
PB2 (SCK/T0)
7
I/O
2й разряд порта B (Вход тактового сигнала при программировании/Вход внешнего тактового сигнала таймера/счетчика T0)
PB3 (XTAL1)
2
I/O
3й разряд порта В (Вход тактового генератора)
PB4 (XTAL2)
3
I/O
4й разряд порта В (Выход тактового генератора)
PB5 (RESET)
1
I/O
5й разряд порта В, тип выхода — открытый коллектор (Вход сброса)
GND
4
P
Общий вывод
VCC
8
P
Вывод источника питания
Обозначение
Описание
$<IL004>$
ATtiny15L (RESET) PB5
1
8
VCC
(XTAL1) PB3
2
7
PB2 (SCK/T0)
(XTAL2) PB4
3
6
PB1 (MISO/INT0/AIN1)
GND
4
5
PB0 (MOSI/AIN0)
PDIP/SO
Рис. 1.4. Расположение выводов (вид сверху) модели ATtiny15L
— 18 —
Глава 1. Знакомство с семейством Tiny Таблица 1.4. Описание выводов модели ATtiny15L Обозначение
Номер Тип вывода вывода
Описание
PB0 (AIN0/ AREF/ MOSI)
5
I/O
0й разряд порта B (Положительный вход компаратора/Вход опорного напряжения для АЦП/Вход данных при программировании)
PB1 (AIN1/ OC1A/MISO)
6
I/O
1й разряд порта B (Отрицательный вход компаратора/Выход таймера/счетчика T1 (режимы Compare, PWM)/Выход данных при программировании)
PB2 (ADC1/ T0/INT0/ SCK)
7
I/O
2й разряд порта B (Вход АЦП/Вход внешнего тактового сигнала таймера/счетчика T0/Вход внешнего прерывания/Вход тактового сигнала при программировании)
PB3 (ADC2)
3
I/O
PB4 (ADC3)
2
I/O
PB5 (ADC0/ RESET)
1
I/O
5й разряд порта В (Вход АЦП/Вход сброса)
GND VCC
4 8
P P
Общий вывод Вывод источника питания
3й разряд порта В (Вход АЦП) 4й разряд порта В (Вход АЦП)
PD2
PD1
PD0
RESET
PA0
PA1
PA3
PA2 (IR)
32
31
30
29
28
27
26
25
$<IL005>$
ATtiny28L/28V Ключ RESET
1
28
PA0
PD0
2
27
PA1
PD1
3
26
PA3
PD3
1
24
PB7
PD2
4
25
PA2 (IR)
PD4
2
23
PB6
PD3
5
24
PB7
NC
3
22
NC
PD4
6
23
PB6
VCC
4
21
GND
VCC
7
22
GND
GND
5
20
NC
NC
6
19
NC
XTAL1
7
18
VCC
XTAL2
8
17
PB5
8
XTAL1
9
20
VCC
XTAL2
10
19
PB5
PD5
11
18
PB4 (INT1)
9
10
11
12
13
14
15
16
PD6
12
17
PB3 (INT0)
PD7
13
16
PB2 (T0)
PD7
(AIN0) PB0
14
15
PB1 (AIN1)
(AIN0) PB0
(AIN1) PB1
(T0) PB2
(INT0) PB3
(INT1) PB4
NC
PD6
21
PD5
GND
PDIP
TQFP, MLF
Рис. 1.5. Расположение выводов (вид сверху) моделей ATtiny28L/28V
— 19 —
Часть 1. Микроконтроллеры семейства Tiny Таблица 1.5. Описание выводов моделей ATtiny28L/28V Обозначение
Номер вывода DIP
TQFP, MLF
Тип вывода
Описание
XTAL1
9
7
I
Вход тактового генератора
XTAL2
10
8
O
Выход тактового генератора Вход сброса
RESET
1
29
I
PA0
28
28
I/O
PA1
27
27
I/O
0й разряд порта A 1й разряд порта A 2й разряд порта A (Выходной контакт сповышенной нагрузочной способностью)
PA2 (IR)
25
25
O
PA3
26
26
I/O
PB0 (AIN0)
14
12
I/O
PB1 (AIN1)
15
13
I/O
PB2 (T0)
16
14
I/O
PB3 (INT0)
17
15
I/O
PB4 (INT1)
18
16
I/O
PB5
19
17
I/O
5й разряд порта B
PB6
23
23
I/O
6й разряд порта B
PB7
24
24
I/O
7й разряд порта B
PD0
2
30
I/O
PD1
3
31
I/O
PD2
4
32
I/O
PD3
5
1
I/O
PD4
6
2
I/O
PD5
11
9
I/O
PD6
12
10
I/O
PD7
13
11
I/O
GND
8, 22
5, 21
P
Общий вывод
VCC
7, 20
4
P
Вывод источника питания
NC
21
3, 6, 19, 20, 22
—
Не используются
3й разряд порта A 0й разряд порта B (Положительный вход компаратора) 1й разряд порта B (Отрицательный вход компаратора) 2й разряд порта B (Вход внешнего тактового сигнала таймера/счетчика T0) 3й разряд порта B (Вход внешнего прерывания) 4й разряд порта B (Вход внешнего прерывания)
8разрядный двунаправленный порт ввода/вывода D
— 20 —
Глава 2. Архитектура микроконтроллеров
Глава 2. Архитектура микроконтроллеров семейства Tiny
2.1. Общие сведения Микроконтроллеры AVR семейства Tiny являются 8разрядными микроконтроллерами с RISCархитектурой. Они имеют электрически стираемую FLASHпамять программ (ряд моделей имеет также энер гонезависимую EEPROMпамять данных), а также разнообразные пе риферийные устройства. Состав этих устройств меняется от модели к модели, более того, одно и то же устройство в разных моделях исполь зует различные ресурсы микроконтроллера (в частности, различные выводы). В то же время некоторые периферийные устройства присут ствуют во всех микроконтроллерах семейства: сторожевой таймер, аналоговый компаратор, 8разрядный таймер/счетчик реального вре мени и, естественно, порты ввода/вывода. На Рис. 1.6 и Рис. 1.7 приведены структурные схемы микрокон троллеров ATtiny11/11L и ATtiny12/12L/12V соответственно. Их отли чительные особенности: • 6разрядный порт ввода/вывода; • 3уровневый аппаратный стек; • встроенный тактовый RCгенератор; • возможность подключения внешнего резонатора; • использование тактового генератора сторожевого таймера в каче стве системного (только ATtiny11x). Структурная схема микроконтроллера ATtiny15L приведена на Рис. 1.8. Его отличительные особенности: • EEPROMпамять данных объемом 64 байт; • 6разрядный порт ввода/вывода; • возможность работы только от встроенного тактового RCгенератора; • два 8разрядных таймера/счетчика; • 4канальный АЦП.
— 21 —
Часть 1. Микроконтроллеры семейства Tiny $<IL006>$
8–разрядная шина данных
Счетчик команд
Указатель стека
Аппаратный стек
FLASH–память программ
Встроенный генератор
Сторожевой таймер Регистр команд
Регистры общего назначения
Регистр управления
Дешифратор команд
Z
Регистр состояния
Шина управления
АЛУ
Таймер/ счетчик
Регистр состояния
Модуль прерываний
Узел программирования
Генераторы
Регистр данных PORTB
Регистр направления PORTB
Драйверы PORTB
PB0…PB5
Рис. 1.6. Структурная схема микроконтроллеров ATtiny11/11L
— 22 —
ATM2IL006
Аналоговый компаратор
Синхрони– затор
Глава 2. Архитектура микроконтроллеров $<IL007>$
8–разрядная шина данных
Счетчик команд
Встроенный генератор
Встроенный калибруемый генератор
Сторожевой таймер
Синхрони– затор
Указатель стека
Аппаратный стек
FLASH–память программ
Регистр управления
Регистр команд
Регистры общего назначения
Регистр состояния
Дешифратор команд
Z
Таймер/ счетчик
Шина управления
АЛУ
Модуль прерываний
Регистр состояния
EEPROM
SPI
Регистр данных PORTB
Генераторы
Регистр направления PORTB
Драйверы PORTB
PB0…PB5
Рис. 1.7. Структурная схема микроконтроллеров ATtiny12/12L/12V
— 23 —
ATM2IL007
Аналоговый компаратор
Узел программирования
Часть 1. Микроконтроллеры семейства Tiny $<IL008>$
8–разрядная шина данных
Счетчик команд
Встроенный генератор
Встроенный калибруемый генератор
Сторожевой таймер
Синхрони– затор
Указатель стека
Аппаратный стек
FLASH–память программ
Регистр управления
Регистр команд
Регистры общего назначения
Регистр состояния
Дешифратор команд
Z
Таймер/ счетчик 0
Шина управления
АЛУ
Таймер/ счетчик 1
Регистр состояния
Модуль прерываний
Модуль внутрисхемного программирования
EEPROM
Аналоговый компаратор
Мульти< плексор Регистр данных PORTB
АЦП
Регистр направления PORTB
Драйверы PORTB
PB0…PB5
ATM2IL008
Узел программиро< вания
Рис. 1.8. Структурная схема микроконтроллера ATtiny15L
Структурная схема микроконтроллеров ATtiny28L/28V приведена на Рис. 1.9. Их отличительные особенности: • 3 порта ввода/вывода: порт A (4разрядный), порт B (8разряд ный) и порт D (8разрядный); • встроенный тактовый RCгенератор; $<IL009>$ Рис. 1.9. Структурная схема микроконтроллеров ATtiny28L/28V
— 24 —
Глава 2. Архитектура микроконтроллеров
XTAL1
XTAL2
8–разрядная шина данных
Счетчик команд
FLASH–память программ
Регистр команд
Дешифратор команд
Встроенный генератор
Генератор
Сторожевой таймер
Синхрони– затор
Встроенный калибруемый генератор
Указатель стека
RESET
Аппаратный стек
Регистр управления и состояния
Регистры общего назначения
Таймер/ счетчик Аппаратный модулятор
Z Модуль прерываний АЛУ
Шина управления
Аналоговый компаратор
Узел программиро< вания
Регистр данных PORTB
PORTB
Регистр состояния
Регистр данных PORTD
Рег. направления PORTD
Регистр данных PORTА
Рег.управления PORTА
PORTA
PORTD
1
Рис. 1.9. Структурная схема микроконтроллеров ATtiny28L/28V • • •
возможность подключения внешнего резонатора; два входа внешних прерываний; наличие аппаратного модулятора для управления светодиодным индикатором.
— 25 —
Часть 1. Микроконтроллеры семейства Tiny
2.2. Организация памяти Организация памяти микроконтроллеров AVR семейства Tiny вы полнена по схеме Гарвардского типа, в которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Память данных состоит из двух областей: регист ровая память и память на основе EEPROM. Каждая область располо жена в своем адресном пространстве. Обобщенная карта памяти микроконтроллеров AVR семейства Tiny приведена на Рис. 1.10. $<IL010>$
$000
Память данных 32 регистра общего назначения
FLASH F_END
64 регистра ввода/вывода
Модель
ATiny11/11L ATiny12/12L/12V ATiny15L ATiny28L/28V
Память данных $0000
EEPROM
$000 E_END
$001F $0020 $005F Память программ (FLASH) Верхняя граница Объем, слов (F_END) $3FF $3FF $3FF $7FF
1K 1K 1K 1K
Память данных (EEPROM) Верхняя граница Объем, байт (F_END) < $03F $03F
$
7
0 R0 R1 R2 … … R28 R29
R31 (регистр Z, старший байт)
ATM2IL012
R30 (регистр Z, младший байт)
Рис. 1.12. Структура файла регистров общего назначения
Два старших регистра общего назначения формируют 16разряд ный индексный регистр Z, который используется в качестве указателя при косвенной адресации памяти программ и памяти данных. Так как объем адресуемой памяти данных составляет всего 32 байт, при обра щении к ней используется только младший байт (регистр R30). Со держимое старшего байта индексного регистра (регистр R31) при кос венной адресации памяти данных автоматически очищается процессором. Более подробно использование этого регистра описано в подразделе 2.2.2.3.
— 29 —
Часть 1. Микроконтроллеры семейства Tiny
2.2.2.2. Регистры ввода/вывода Регистры ввода/вывода располагаются в так называемом простран стве ввода/вывода размером 64 байт. Все РВВ можно разделить на две группы: служебные регистры микроконтроллера и регистры, относя щиеся к периферийным устройствам (в том числе порты ввода/выво да). Размер каждого регистра — 8 бит. Распределение адресов пространства ввода/вывода зависит от кон кретной модели микроконтроллера, т. к. разные модели имеют различ ный состав периферийных устройств и соответственно разное количест во регистров. Размещение РВВ в адресном пространстве ввода/вывода для всех моделей семейства приведено в Табл. 1.6. Прочерк в таблице оз начает, что для данной модели этот адрес зарезервирован, но запись по этому адресу запрещена. Все регистры будут подробно описаны в соот ветствующих главах книги, а в этой главе будут рассмотрены только слу жебные регистры, общие для всех микроконтроллеров семейства. Таблица 1.6. РВВ микроконтроллеров семейства Tiny Таблица 1.6. РВВ микроконтроллеров семейства Tiny
Продолжение таблицы 1.6 ATtiny
Название
Функция
Адрес 11x 12x 15L 28x
SREG GIMSK GIFR TIMSK TIFR MCUCR MCUSR TCCR0 TCNT0 OSCCAL TCCR1 TCNT1 OCR1A OCR1B SFIOR WDTCR EEAR EEDR EECR PORTA PACR PINA
Регистр состояния Общий регистр маски прерываний Общий регистр флагов прерываний Регистр маски прерываний от таймера/счетчика Регистр флагов прерываний от таймера/счетчика Общий регистр управления микроконтроллером Регистр состояния микроконтроллера Регистр управления таймером/счетчиком Т0 Счетный регистр таймера/счетчика Т0 (8разрядный) Регистр калибровки тактового генератора Регистр управления таймером/счетчиком Т1 Счетный регистр таймера/счетчика Т1 Регистр совпадения A таймера/счетчика Т1 Регистр совпадения B таймера/счетчика Т1 Регистр специальных функций Регистр управления сторожевым таймером Регистр адреса EEPROM Регистр данных EEPROM Регистр управления EEPROM Регистр данных порта A Регистр управления порта A Выводы порта A
— 30 —
$3F $3B $3A $39 $38 $35 $34 $33 $32 $31 $30 $2F $2E $2D $2C $21 $1E $1D $1C $1B $1A $19
— — — — — — — — — — — —
— — — — — — — —
— — —
— — — — — — — — — — — — — — — — — —
Глава 2. Архитектура микроконтроллеров Продолжение таблицы 1.6 ATtiny Название
Функция
Адрес 11x 12x 15L 28x
PORTB DDRB PINB PORTD DDRD PIND ACSR ADMUX MCUCS ADCSR ICR ADCH IFR ADCL TCCR0 TCNT0 MODCR WDTCR OSCCAL
Регистр данных порта B Регистр направления данных порта B Выводы порта B Регистр данных порта D Регистр направления данных порта D Выводы порта D Регистр управления и состояния аналогового компаратора Регистр управления мультиплексором АЦП Регистр управления и состояния микроконтроллера Регистр управления и состояния АЦП Регистр управления прерываниями Регистр данных АЦП (старший байт) Регистр флагов прерываний Регистр данных АЦП (младший байт) Регистр управления таймером/счетчиком Т0 Счетный регистр таймера/счетчика Т0 (8разрядный) Регистр управления модулятором Регистр управления сторожевым таймером Регистр калибровки тактового генератора
$18 $17 $16 $12 $11 $10 $08 $07 $06 $05 $04 $03 $02 $01 $00
— — — — — — — — — — —
— — — — — — — — — — — — — — —
— — — — — — — — — — — — — — —
— — — — — —
К любому регистру ввода/вывода можно обратиться с помощью команд IN и OUT, выполняющих пересылку данных между одним из 32х РОН и про странством ввода/вывода. Кроме того, имеются 4 команды поразрядного доступа, использующие в качестве операндов регистры ввода/вывода: ко манды установки/сброса отдельного бита (SBI и CBI) и команды проверки со стояния отдельного бита (SBIS и SBIC). Однако указанные команды могут об ращаться только к 1й половине регистров ввода/вывода (адреса $00…$1F). SREG (регистр состояния) Регистр состояния SREG (Status REGistr) располагается по адресу $3F. Этот регистр является, по сути дела, набором флагов, показывающих теку щее состояние микроконтроллера. Эти флаги автоматически устанавлива ются в «1» или в «0» при наступлении определенных событий (в соответствии с результатом выполнения команд). Все разряды этого регистра доступны как для чтения, так и для записи в любой момент времени; после сброса микро контроллера все разряды регистра сбрасываются в «0». Содержимое этого ре гистра показано ниже на Рис. 1.13, а его описание приведено в Табл. 1.7.
— 31 —
Часть 1. Микроконтроллеры семейства Tiny
$3F Чтение (R)/Запись (W) Начальное значение
6
5
4
3
2
1
0
I
T
H
S
V
N
Z
C
R/W 0
R/W 0
R/W 0
R/W 0
R/W 0
R/W 0
R/W 0
R/W 0
ATM2IL013
$<IL013>$
7
Рис. 1.13. Формат регистра состояния SREG
Название
Разряд
Таблица 1.7. Разряды регистра состояния SREG Описание
7
Общее разрешение прерываний. Для разрешения прерываний этот флаг должен быть уста новлен в «1». Разрешение/запрещение отдельных прерываний производится установкой или сбросом соответствующих разрядов регистров масок прерываний (см. Главу 4). Если I флаг сброшен (0), то прерывания запрещены независимо от состояния этих регистров. Флаг сбрасывается аппаратно после входа в прерывание и восстанавливается командой RETI для разрешения обработки следующих прерываний
6
T
5
4
Хранение копируемого бита. Этот разряд регистра используется в качестве источника или приемника командами копирования битов BLD (Bit LoaD) и BST (Bit STore). Заданный разряд любого РОН может быть скопирован в этот разряд командой BST или установлен в соответствии с содержимым данного разряда командой BLD
Флаг половинного (Half) переноса. Этот флаг устанавливается в «1», если имел место пере H нос из младшей половины байта (из 3го разряда в 4й), или заем из старшей половины байта при выполнении некоторых арифметических операций Флаг знака (Sign). Этот флаг равен результату операции «Исключающее ИЛИ» (XOR) ме жду флагами N (отрицательный результат) и V (переполнение числа в дополнительном S коде). Соответственно этот флаг устанавливается в «1», если результат выполнения ариф метической операции меньше нуля
3
Флаг переполнения (Overflow) дополнительного кода. Этот флаг устанавливается в «1» при переполнении разрядной сетки знакового результата. Используется при работе со знако V выми числами (представленными в дополнительном коде). Более подробно — см. описа ние системы команд
2
N
Флаг отрицательного (Negative) значения. Этот флаг устанавливается в «1», если старший (7й) разряд результата операции равен «1». В противном случае флаг равен «0»
1
Z
Флаг нуля (Zero). Этот флаг устанавливается в «1», если результат выполнения операции равен нулю
0
C
Флаг переноса (Carry). Этот флаг устанавливается в «1», если в результате выполнения операции произошел выход за границы байта
GIMSK, TIMSK, GIFR, TIFR (регистры управления прерываниями) Эти четыре регистра предназначены для управления внешними прерываниями (регистры GIMSK и GIFR) и прерываниями от тайме ров (регистры TIMSK и TIFR). Регистры масок GIMSK (General Inter
— 32 —
Глава 2. Архитектура микроконтроллеров
rupt MaSK — общий регистр маски прерываний) и TIMSK (Timer Inter rupt MaSK — регистр маски прерываний от таймеров) используются для разрешения/запрещения отдельных прерываний, а регистры фла гов GIFR (General Interrupt Flag Register — общий регистр флагов пре рываний) и TIFR (Timer Interrupt Flag Register — регистр флагов пре рываний от таймеров) содержат флаги, показывающие, произошло или нет соответствующее прерывание. В моделях ATtiny28x вместо описанных используются два других регистра: регистр управления прерываниями ICR (Interrupt Control Register) и регистр флагов преры ваний IFR (Interrupt Flag Register). Подробно эти регистры будут рас смотрены в разделе 3.5 книги, посвященном прерываниям. MCUCR (регистр управления микроконтроллером) Регистр управления микроконтроллером имеется во всех моделях, кроме ATtiny28x, и расположен по адресу $35. Этот регистр содержит ряд флагов, используемых для общего управления микроконтролле ром. Состав флагов, размещенных в регистре MCUCR, несколько ме няется от модели к модели. Неиспользуемые разряды регистра доступ ны только для чтения и содержат «0». Все используемые разряды регистра доступны как для чтения, так и для записи в любой момент времени. После сброса микроконтроллера во всех разрядах регистра записаны «0». Формат этого регистра для различных моделей приведен на Рис. 1.14, а описание его разрядов приведено в Табл. 1.8. При измене нии состояния разрядов ISC01 и ISC00 возможна ложная генерация прерывания INT0. Чтобы этого избежать, рекомендуется на время из менения указанных разрядов запретить внешнее прерывание. $<IL014>$
$35 Чтение (R)/Запись (W) Начальное значение
$35 Чтение (R)/Запись (W) Начальное значение
$35 Чтение (R)/Запись (W) Начальное значение
7
6
5
4
3
2
1
0