Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL
Покупка
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
ДМК Пресс
Автор:
Евстифеев Андрей Викторович
Год издания: 2023
Кол-во страниц: 560
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-89818-589-3
Артикул: 065919.05.99
Книга посвящена вопросам практического применения однокристальных микроконтроллеров AVR семейств Tiny и Mega фирмы ATMEL. Рассмотрена архитектура, ее особенности. Приведены основные электрические параметры и временные характеристики. Подробно описано внутреннее устройство микроконтроллеров, системы команд, периферия, а также способы программирования с примерами реализации некоторых алгоритмов для конкретных цифровых устройств. Книга предназначена для разработчиков радиоэлектронной аппаратуры, инженеров,студентов вузов и радиолюбителей.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 11.03.01: Радиотехника
- 11.03.04: Электроника и наноэлектроника
- 28.03.01: Нанотехнологии и микросистемная техника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
— 1 — А. В. Евстифеев Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL МИРОВАЯ ЭЛЕКТРОНИКА С Е Р И Я Москва ДМК Пресс, Додэка, 2023 6е издание, электронное
УДК 621.316.544.1 (035.5) ББК 32.844.1-04я2 E26 E26 Евстифеев, А. В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL / А. В. Евстифеев. — 6-е изд., эл. — 1 файл pdf : 560 с. — Москва : ДМК Пресс, ДодэкаXXI, 2023. — (Мировая электроника). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-589-3 Книга посвящена вопросам практического применения однокристальных микроконтроллеров AVR семейств Tiny и Mega фирмы ATMEL. Рассмотрена архитектура, ее особенности. Приведены основные электрические параметры и временные характеристики. Подробно описано внутреннее устройство микроконтроллеров, системы команд, периферия, а также способы программирования с примерами реализации некоторых алгоритмов для конкретных цифровых устройств. Книга предназначена для разработчиков радиоэлектронной аппаратуры, инженеров,студентов вузов и радиолюбителей. УДК 621.316.544.1 (035.5) ББК 32.844.1-04я2 Электронное издание на основе печатного издания: Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL / А. В. Евстифеев. — 5-е изд. — Москва : ДМК Пресс, Додэка-XXI, 2015. — 558 с. — (Мировая электроника). — ISBN 978-5-97060-261-4. — Текст : непосредственный. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-589-3 © Издательский дом «Додэка XXI» © Издание, ДМК Пресс, 2015 ® Серия «Мировая электроника»
Оглавление — 3 — Оглавление Предисловие...........................................................................................................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
Оглавление — 4 — 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
Оглавление — 5 — 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
Оглавление — 6 — Глава 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
Оглавление — 7 — 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
Оглавление — 8 — Глава 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
— 9 — Предисловие Книга, которую вы держите в руках, — это вторая книга, посвященная микроконтроллерам AVR фирмы «Atmel». Эти 8разрядные RISCмикроконтроллеры для встраиваемых приложений являются, пожалуй, наиболее интересным и прогрессивным направлением, развиваемым фирмой. Микроконтроллеры этой серии представляют собой мощный инструмент, прекрасную основу для создания современных высокопроизводительных и экономичных встраиваемых контроллеров многоцелевого назначения. Популярность микроконтроллеров AVR постоянно увеличивается. Не последнюю роль в этом играет соотношение показателей «цена/быстродействие/энергопотребление», являющееся одним из лучших на рынке 8разрядных микроконтроллеров. Кроме того, постоянно растет число выпускаемых сторонними производителями разнообразных программных и аппаратных средств поддержки разработок устройств на их основе. Все это позволяет говорить о микроконтроллерах AVR как о новом индустриальном стандарте среди 8разрядных микроконтроллеров общего применения. В рамках единой базовой архитектуры микроконтроллеры AVR подразделяются на три семейства: • Classic AVR; • Mega AVR; • Tiny AVR. Микроконтроллеры семейства Classic были описаны в первой книге серии, а данная книга посвящена двум последним семействам — Tiny и Mega. Микроконтроллеры семейства Tiny имеют небольшие объемы памяти программ (1…2 Кбайта) и весьма ограниченную периферию. Практически все они выпускаются в 8выводных корпусах и предна
Предисловие — 10 — значены для т. н. «бюджетных» решений, принимаемых в условиях жестких финансовых ограничений. Область применения этих микроконтроллеров — интеллектуальные датчики различного назначения (контрольные, пожарные, охранные), игрушки, зарядные устройства, различная бытовая техника и другие подобные устройства. Микроконтроллеры семейства Mega, напротив, имеют наиболее развитую периферию, наибольшие среди всех микроконтроллеров AVR объемы памяти программ и данных. Они предназначены для использования в мобильных телефонах, контроллерах различного периферийного оборудования (принтеры, сканеры, современные дисковые накопители, приводы CDROM/DVDROM и т. п.), сложной офисной технике и т. д. Микроконтроллеры обоих семейств поддерживают несколько режимов пониженного энергопотребления, имеют блок прерываний, сторожевой таймер и допускают программирование непосредственно в готовом устройстве. В предлагаемой вашему вниманию книге представлена вся информация, необходимая для изучения микроконтроллеров AVR семейств Tiny и Mega. Однако следует заметить, что всеобъемлющим справочником данная книга не является, хотя и написана на основе документации, предоставляемой фирмой «Atmel». Поэтому, прежде чем приступить к практическому использованию рассматриваемых микроконтроллеров, настоятельно рекомендуется обратиться к официальной информации, размещенной на Webсайтах фирмы (www.atmel.com, www.atmel.ru).