Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Микроконтроллеры AVR семейства Mega : руководство пользователя

Покупка
Артикул: 816625.01.99
Доступ онлайн
300 ₽
В корзину
Книга представляет собой справочное руководство по однокристальным микроконтроллерам AVR семейства Mega фирмы ATMEL. Рассмотрена архитектура микроконтроллеров AVR, ее особенности, приведены основные электрические параметры. Подробно описано внутреннее устройство микроконтроллеров, система команд, периферия, а также способы программирования. Основой данного издания послужила популярная книга «Микроконтроллеры AVR семейств Tiny и Mega», материал которой был существенно переработан и дополнен описаниями новых моделей. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов.
Евстифеев, А. В. Микроконтроллеры AVR семейства Mega : руководство пользователя : справочное пособие / А. В. Евстифеев. - 2-е изд. - Москва : ДМК Пресс, Додэка-XXI, 2023. - 589 с. - (Программируемые системы). - ISBN 978-5-89818-430-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/2104736 (дата обращения: 18.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
С Е Р И Я
ПРОГРАММИРУЕМЫЕ СИСТЕМЫ

А. В. Евстифеев

МИКРОКОНТРОЛЛЕРЫ AVR

СЕМЕЙСТВА Mega

Руководство
пользователя

Москва 
ДМК Пресс, Додэка, 2023

2-издание, электронное
УДК 621.316.544.1 (035.5)
ББК 32.844.1-04я2
Е26

Е26
Евстифеев, А. В.
Микроконтроллеры AVR семейства Mega : руководство пользователя / 
А. В. Евстифеев. — 2-е изд., эл. — 1 файл pdf : 589 с. — Москва : ДМК Пресс, 
Додэка-XXI, 2023. — (Программируемые системы). — Систем. требования: 
Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.

ISBN 978-5-89818-430-8

Книга представляет собой справочное руководство по однокристальным микроконтроллерам 
AVR семейства Mega фирмы ATMEL. Рассмотрена архитектура микроконтроллеров 
AVR, ее особенности, приведены основные электрические параметры. 
Подробно описано внутреннее устройство микроконтроллеров, система команд, периферия, 
а также способы программирования. Основой данного издания послужила 
популярная книга «Микроконтроллеры AVR семейств Tiny и Mega», материал которой 
был существенно переработан и дополнен описаниями новых моделей.
Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, 
студентов технических вузов.

УДК 621.316.544.1 (035.5) 
ББК 32.844.1-04я2

Электронное издание на основе печатного издания: Микроконтроллеры AVR семейства Mega : 
руководство пользователя / А. В. Евстифеев. — Москва : ДМК Пресс, Додэка-XXI, 2015. — 
588 с. — (Программируемые системы). — ISBN 978-5-97060-259-1. — Текст : непосредственный.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами 
защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.


ISBN 978-5-89818-430-8
© Издательский дом «ДодэкаXXI»
© Издание, ДМК Пресс, 2015
Оглавление 3

ОГЛАВЛЕНИЕ

Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

Глава 1. Знакомство с семейством Mega  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
1.2. Отличительные особенности. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
1.3. Характеристики процессора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  11
1.4. Характеристики подсистемы ввода/вывода  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  11
1.5. Периферийные устройства  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  12
1.6. Архитектура ядра . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  12
1.7. Цоколевка и описание выводов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13

Глава 2. Архитектура микроконтроллеров семейства Mega . . . . . . . . . . . . . . . . . . . . 87

2.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  87
2.2. Организация памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  101
2.2.1. Память программ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  103
2.2.2. Память данных  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  105
2.2.3. Энергонезависимая память данных (EEPROM) . . . . . . . . . . . . . . . . . . . . . . .  160
2.3. Счетчик команд и выполнение программы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  165
2.3.1. Счетчик команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  165
2.3.2. Функционирование конвейера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  166
2.3.3. Команды типа «проверка/пропуск» (Test & Skip) . . . . . . . . . . . . . . . . . . . . . .  167
2.3.4. Команды условного перехода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  167
2.3.5. Команды безусловного перехода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  167
2.3.6. Команды вызова подпрограмм. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  169
2.3.7. Команды возврата из подпрограмм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  171
2.4. Стек  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  171

Глава 3. Система команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

3.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  172
3.2. Операнды  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  172
3.3. Типы команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  174
3.3.1. Команды логических операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  175
3.3.2. Команды арифметических операций и команды сдвига . . . . . . . . . . . . . . . .  175
Оглавление

3.3.3. Команды битовых операций. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  175
3.3.4. Команды пересылки данных  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  176
3.3.5. Команды передачи управления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  176
3.3.6. Команды управления системой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  178
3.4. Сводные таблицы команд  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  179
3.5. Описание команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  185

Глава 4. Тактирование, режимы пониженного энергопотребления и сброс . . . . . .251

4.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  251
4.2. Тактовый генератор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  251
4.2.1. Генератор с внешним  резонатором. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  254
4.2.2. Низкочастотный кварцевый генератор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  256
4.2.3. Внешний сигнал синхронизации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  256
4.2.4. Генератор с внешней RCцепочкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  256
4.2.5. Внутренний калиброванный RCгенератор. . . . . . . . . . . . . . . . . . . . . . . . . . .  257
4.2.6. Внутренний RCгенератор на 128 кГц  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  259
4.2.7. Управление тактовой частотой. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  259
4.3. Управление электропитанием. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  262
4.3.1. Режимы пониженного энергопотребления . . . . . . . . . . . . . . . . . . . . . . . . . . .  262
4.3.2. Управление тактовыми сигналами модулей. . . . . . . . . . . . . . . . . . . . . . . . . . .  268
4.3.3. Общие рекомендации по уменьшению энергопотребления . . . . . . . . . . . . .  271
4.4. Сброс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  273
4.4.1. Сброс по включению питания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  277
4.4.2. Аппаратный сброс  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  278
4.4.3. Сброс от сторожевого таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  279
4.4.4. Сброс при снижении напряжения питания  . . . . . . . . . . . . . . . . . . . . . . . . . .  279
4.4.5. Управление схемой сброса  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  281

Глава 5. Прерывания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291

5.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  291
5.2. Таблица векторов прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  291
5.3. Обработка прерываний. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  306
5.4. Внешние прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  308

Глава 6. Порты ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

6.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  320
6.2. Регистры портов ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  321
6.3. Конфигурирование портов ввода/вывода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  323

Глава 7. Таймеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

7.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  329
7.2. Назначение выводов таймеров/счетчиков  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  330
7.3. Прерывания от таймеров/счетчиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  333
7.4. Предделители таймеров/счетчиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  338
7.4.1. Управление предделителями  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  339
7.4.2. Использование внешнего тактового сигнала. . . . . . . . . . . . . . . . . . . . . . . . . .  341
Оглавление 5

7.5. Восьмибитные таймеры/счетчики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  342
7.5.1. Управление тактовым сигналом. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  352
7.5.2. Режимы работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  353
7.5.3. Асинхронный режим . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  360
7.6. 16битные таймеры/счетчики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  363
7.6.1. Обращение к 16битным регистрам. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  372
7.6.2. Управление тактовым сигналом. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  373
7.6.3. Режимы работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  373
7.7. Модулятор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  385
7.8. Сторожевой таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  386

Глава 8. Аналоговый компаратор  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

8.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  395
8.2. Функционирование компаратора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  396

Глава 9. Аналогоцифровой преобразователь
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

9.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  401
9.2. Функционирование модуля АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  402
9.3. Результат преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  415
9.4. Повышение точности преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  416
9.5. Параметры АЦП  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  417

Глава 10. Последовательный периферийный интерфейс SPI  . . . . . . . . . . . . . . . . 419

10.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  419
10.2. Функционирование модуля SPI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  419
10.3. Режимы передачи данных  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  424
10.4. Использование вывода SS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  426

Глава 11. Двухпроводный последовательный интерфейс TWI
 . . . . . . . . . . . . . . . 427

11.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  427
11.2. Принципы обмена данными по шине TWI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  428
11.3. Обзор модуля TWI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  433
11.4. Взаимодействие прикладной программы с модулем TWI. . . . . . . . . . . . . . . . . . . . .  440
11.5. Режимы работы модуля TWI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  443
11.5.1. Режим «Ведущийпередатчик» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  443
11.5.2. Режим «Ведущийприемник» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  448
11.5.3. Режим «Ведомыйприемник» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  452
11.5.4. Режим «Ведомыйпередатчик». . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  457
11.5.5. Комбинирование различных режимов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  461
11.5.6. Арбитраж  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  461
11.6. Параметры интерфейса TWI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  463

Глава 12. Универсальный последовательный интерфейс USI  . . . . . . . . . . . . . . . . 465

12.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  465
12.2. Использование модуля USI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  466
12.3. Режимы работы модуля USI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  470
Оглавление

12.3.1. Трехпроводный режим. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  470
12.3.2. Двухпроводный режим  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  473
12.3.3. Альтернативное использование модуля USI . . . . . . . . . . . . . . . . . . . . . . . . .  476

Глава 13. Универсальный синхронный/асинхронный приемопередатчик . . . . . 477

13.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  477
13.2. Использование модулей USART. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  479
13.2.1. Скорость приема/передачи. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  486
13.2.2. Формат кадра. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  492
13.2.3. Передача данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  493
13.2.4. Прием данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  495
13.3. Мультипроцессорный режим работы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  500
13.4. Модуль USART в режиме MSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  501
13.4.1. Управление модулем USART в режиме MSPI . . . . . . . . . . . . . . . . . . . . . . . .  501
13.4.2. Инициализация режима MSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  505
13.4.3. Передача данных в режиме MSPI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  506

Глава 14. Программирование микроконтроллеров AVR семейства Mega . . . . . . 508

14.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  508
14.1.1. Защита кода и данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  509
14.1.2. Конфигурационные ячейки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  511
14.1.3. Идентификатор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  516
14.1.4. Калибровочные ячейки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  517
14.1.5. Организация памяти программ и данных. . . . . . . . . . . . . . . . . . . . . . . . . . . .  517
14.2. Программирование по последовательному каналу . . . . . . . . . . . . . . . . . . . . . . . . . .  518
14.2.1. Переключение в режим программирования  . . . . . . . . . . . . . . . . . . . . . . . . .  525
14.2.2. Управление процессом программирования FLASHпамяти  . . . . . . . . . . .  525
14.2.3. Управление процессом программирования EEPROMпамяти  . . . . . . . . .  526
14.3. Параллельное программирование  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  526
14.3.1. Переключение в режим параллельного программирования . . . . . . . . . . . .  532
14.3.2. Стирание кристалла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  533
14.3.3. Программирование FLASHпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  533
14.3.4. Программирование EEPROMпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  535
14.3.5. Программирование конфигурационных ячеек . . . . . . . . . . . . . . . . . . . . . . .  537
14.3.6. Программирование ячеек защиты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  538
14.3.7. Чтение конфигурационных ячеек и ячеек защиты. . . . . . . . . . . . . . . . . . . .  538
14.3.8. Чтение ячеек идентификатора и калибровочных ячеек. . . . . . . . . . . . . . . .  539
14.4. Программирование по интерфейсу JTAG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  539
14.4.1. Общие сведения об интерфейсе JTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  539
14.4.2. Использование интерфейса JTAG для программирования кристалла . . .  542
14.4.3. Команды JTAG, используемые при программировании. . . . . . . . . . . . . . .  543
14.4.4. Алгоритм программирования. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  545
14.5. Самопрограммирование микроконтроллеров семейства Mega. . . . . . . . . . . . . . . .  554
14.5.1. Общие сведения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  554
14.5.2. Области RWW и NRWW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  555
14.5.3. Функционирование загрузчика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  557
Оглавление 7

Приложения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564

Приложение 1. Сводная таблица микроконтроллеров AVR семейства Mega. . . . . . . . .  564
Приложение 2. Чертежи корпусов микроконтроллеров AVR семейства Mega  . . . . . . .  574
Приложение 3. Параметры микроконтроллеров AVR семейства Mega. . . . . . . . . . . . . .  577

Предметный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Предисловие

Книга, которую вы держите в руках, посвящена одному из семейств
микроконтроллеров AVR фирмы Atmel. Эти 8битные RISCмикроконтроллеры для встраиваемых приложений являются, пожалуй, наиболее интересным направлением, развиваемым фирмой. Они представляют собой
мощный инструмент, прекрасную основу для создания современных высокопроизводительных и экономичных встраиваемых контроллеров многоцелевого назначения.
Несмотря на то что микроконтроллеры AVR появились на рынке около
10 лет назад, их популярность до сих пор очень высока. С каждым годом
они захватывают все новые и новые ниши на рынке. Не последнюю роль в
этом играет соотношение показателей цена/быстродействие/энергопотребление, до сих пор являющееся едва ли не лучшим на рынке 8битных
микроконтроллеров. Кроме того, постоянно растет число выпускаемых
сторонними производителями разнообразных программных и аппаратных
средств поддержки разработок устройств на их основе. Все это позволяет
говорить о микроконтроллерах AVR как об индустриальном стандарте среди 8битных микроконтроллеров.
В настоящее время в рамках единой базовой архитектуры микроконтроллеры AVR подразделяются на несколько семейств:
Tiny AVR; 
Mega AVR;
Mega AVR для специальных применений;
ASIC/FPGA AVR.
Данная книга посвящена семейству Mega. Микроконтроллеры этого
семейства имеют наиболее развитую периферию, наибольшие среди всех
микроконтроллеров AVR объемы памяти программ и данных. Они предназначены для использования в мобильных телефонах, в контроллерах различного периферийного оборудования (такого как принтеры, сканеры,
современные дисковые накопители, приводы CDROM/DVDROM и
т. п.), в сложной офисной технике и т. д. 
Микроконтроллеры семейства Mega поддерживают несколько режимов пониженного энергопотребления, имеют блок прерываний, сторожеПредисловие
Предисловие 9

вой таймер и допускают программирование непосредственно в готовом устройстве.
В предлагаемой вашему вниманию книге представлена вся информация, необходимая для изучения микроконтроллеров AVR семейства Mega.
Вместе с тем следует заметить, что всеобъемлющим справочником данная
книга не является, хотя и написана на основе документации, предоставляемой фирмой Atmel. Поэтому, прежде чем приступить к практическому использованию рассматриваемых микроконтроллеров, рекомендуется обратиться к официальной информации, размещенной на Webсайтах фирмы
(www.atmel.com, www.atmel.ru).
Глава 1. Знакомство с семейством Mega

Как и все микроконтроллеры AVR фирмы Atmel, микроконтроллеры
семейства Mega являются 8битными микроконтроллерами, предназначенными для использования во встраиваемых приложениях. Они изготавливаются по малопотребляющей КМОПтехнологии, которая в сочетании
с усовершенствованной RISCархитектурой позволяет достичь наилучшего соотношения стоимость/быстродействие/энергопотребление. Микроконтроллеры описываемого семейства являются наиболее развитыми
представителями микроконтроллеров AVR общего применения.

1.2. Отличительные особенности

К особенностям микроконтроллеров AVR семейства Mega можно отнести:
FLASHпамять программ объемом от 8 до 256 Кбайт (число циклов
стирания/записи не менее 10 000);
оперативная память (статическое ОЗУ) объемом от 512 байт до
8 Кбайт;
память данных на основе ЭСППЗУ (EEPROM) объемом от 256 байт
до 4 Кбайт (число циклов стирания/записи не менее 100 000);
возможность защиты от чтения и модификации памяти программ и
данных; 
возможность программирования непосредственно в системе через
последовательные интерфейсы SPI и JTAG;
возможность самопрограммирования;
возможность внутрисхемной отладки в соответствии со стандартом
IEEE 1149.1 (JTAG), а также наличие собственного однопроводного
интерфейса внутрисхемной отладки debugWire1);
разнообразные способы синхронизации: встроенный RCгенератор с
внутренней или внешней времязадающей RCцепочкой, встроенный

1) Не во всех моделях.

ГЛАВА 1.

Знакомство с семейством 
Mega

1.1. Общие сведения
1.3. Характеристики процессора 11

генератор с внешним кварцевым или пьезокерамическим резонатором, внешний сигнал синхронизации;
наличие нескольких режимов пониженного энергопотребления;
наличие детектора пониженного напряжения питания (BrownOut
Detector — BOD);
возможность программного снижения частоты тактового генератора1).

1.3. Характеристики процессора

Основными характеристиками процессора микроконтроллеров AVR
семейства Mega являются:
полностью статическая архитектура, минимальная тактовая частота
равна нулю;
арифметикологическое устройство (АЛУ) подключено непосредственно к регистрам общего назначения (32 регистра);
большинство команд выполняются за один период тактового
сигнала;
векторная система прерываний, поддержка очереди прерываний;
большое число источников прерываний (до 45 внутренних и до
32 внешних);
наличие аппаратного умножителя.

1.4. Характеристики подсистемы ввода/вывода

Подсистема ввода/вывода микроконтроллеров AVR семейства Mega
имеет следующие особенности:
программное конфигурирование и выбор портов ввода/вывода;
выводы могут быть запрограммированы как входные или как выходные независимо друг от друга;
входные буферы с триггером Шмитта на всех выводах;
имеется возможность полного отключения цифрового порта ввода/вывода от физического вывода микросхемы2);
на всех входах имеются индивидуально отключаемые внутренние
подтягивающие резисторы сопротивлением 20…50 кОм.

1) Не во всех моделях.
2) В новых моделях.
Глава 1. Знакомство с семейством Mega

1.5. Периферийные устройства

Микроконтроллеры семейства Mega имеют богатый набор периферийных устройств (ПУ): 
один или два 8битных таймера/счетчика. Во всех моделях с двумя
8битными таймерами/счетчиками один из них может работать в качестве часов реального времени (в асинхронном режиме);
от одного до четырех 16битных таймеров/счетчиков;
сторожевой таймер;
однои двухканальные генераторы 8битного ШИМсигнала (один
из режимов работы 8битных таймеров/счетчиков);
двухи трехканальные генераторы ШИМсигнала регулируемой
разрядности (один из режимов работы 16битных таймеров/счетчиков). Разрешение формируемого сигнала может составлять от 1 до
16 бит;
аналоговый компаратор;
многоканальный 10битный АЦП последовательного приближения,
имеющий как несимметричные, так и дифференциальные входы;
последовательный синхронный интерфейс SPI;
последовательный двухпроводный интерфейс TWI (полный аналог
интерфейса I2C);
от одного до четырех полнодуплексных универсальных синхронных/асинхронных приемопередатчиков (USART). В ряде моделей
эти приемопередатчики могут использоваться в качестве ведущего
устройства шины SPI;
универсальный последовательный интерфейс USI, который может
использоваться в качестве интерфейса SPI или I2C. Кроме того, USI
может использоваться в качестве полудуплексного UART или
4/12битного счетчика.

1.6. Архитектура ядра

Ядро микроконтроллеров AVR семейства Mega выполнено по усовершенствованной RISCархитектуре (enhanced RISC) (Рис. 1.1), в которой
используется ряд решений, направленных на повышение быстродействия
микроконтроллеров. 
Арифметикологическое устройство (АЛУ), выполняющее все вычисления, подключено непосредственно к 32 рабочим регистрам, объединенным в регистровый файл. Благодаря этому, АЛУ может выполнять одну
операцию (чтение содержимого регистров, выполнение операции и запись
результата обратно в регистровый файл) за такт. Кроме того, практически
1.7. Цоколевка и описание выводов 13

каждая из команд (за исключением команд, у которых одним из операндов
является 16битный адрес) занимает одну ячейку памяти программ.
В микроконтроллерах AVR реализована Гарвардская архитектура, характеризующаяся раздельной памятью программ и данных, каждая из которых имеет собственные шины доступа. Такая организация позволяет одновременно работать как с памятью программ, так и с памятью данных.
Разделение информационных шин позволяет использовать для каждого
типа памяти шины различной разрядности, причем способы адресации и
доступа к каждому типу памяти также различаются. В сочетании с двухуровневым конвейером команд такая архитектура позволяет достичь производительности в 1 MIPS на каждый МГц тактовой частоты.

1.7. Цоколевка и описание выводов

В семейство Mega на сегодняшний день входит в общей сложности 24
модели микроконтроллеров, которые делятся на 4 группы.

1.
Микроконтроллеры в 32выводных корпусах типа TQFP и MLF (также
выпускаются в 28выводных корпусах типа DIP) c максимальным числом контактов ввода/вывода, равным 23:

ATmega8, ATmega8L (Рис. 1.2) — имеют FLASHпамять программ
объемом 8 Кбайт, ОЗУ объемом 1 Кбайт и EEPROMпамять данных
объемом 512 байт. Эти модели полностью (по цоколевке и функциоРис. 1.1. Архитектура ядра микроконтроллеров AVR 

ПЗУ
(EEPROM)

32 регистра
общего назначения

ПЗУ
(FLASH)

Дешифратор
команд

Регистр
команд

Регистры
управления

Таймеры

АЦП

Аналоговый
компаратор

Сторожевой
таймер (WDT)

Порты
ввода/вывода

Модуль
прерываний

Счетчик
команд

Последовательный
синхронный
интерфейс SPI

АЛУ
Глава 1. Знакомство с семейством Mega

нально) 
обратно 
совместимы 
со 
снятыми 
с 
производства
микроконтроллерами семейства Classic AT90S4433 и могут использоваться для их замены в новых разработках;
ATmega48, ATmega48V (Рис. 1.3) — имеют FLASHпамять программ
объемом 4 Кбайт, ОЗУ объемом 512 байт и EEPROMпамять данных
объемом 256 байт;
ATmega88, ATmega88V (Рис. 1.3) — имеют FLASHпамять программ
объемом 8 Кбайт, ОЗУ объемом 1 Кбайт и EEPROMпамять данных
объемом 512 байт;
ATmega168, ATmega168V (Рис. 1.3) — имеют FLASHпамять программ объемом 16 Кбайт, ОЗУ объемом 1 Кбайт и EEPROMпамять
данных объемом 512 байт.

2.
Микроконтроллеры в 44выводных корпусах типа TQFP и MLF (также
выпускаются в 40выводных корпусах типа DIP) с максимальным числом контактов ввода/вывода, равным 35 (модели с возможностью подключения внешнего ОЗУ) или 32 (остальные модели):

ATmega8515, ATmega8515L (Рис. 1.4) — имеют FLASHпамять программ объемом 8 Кбайт, ОЗУ объемом 512 байт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и EEPROMпамять данных объемом 512 байт. Выпускаются также в 44выводном
корпусе типа PLCC. Эти модели по цоколевке полностью совместимы со снятыми с производства микроконтроллерами семейства
Classic AT90S4414/8515. Кроме того, в них предусмотрен режим совместимости с моделями AT90S4414/8515 (в этом режиме обеспечивается их полная функциональная совместимость);
ATmega8535, ATmega8535L (Рис. 1.5) — имеют FLASHпамять программ объемом 8 Кбайт, ОЗУ объемом 512 байт и EEPROMпамять
данных объемом 512 байт. Выпускаются также в 44выводном корпусе типа PLCC. Эти модели по цоколевке полностью совместимы со
снятыми с производства микроконтроллерами семейства Classic
AT90S8535. Кроме того, в них предусмотрен режим совместимости с
моделями AT90S8535 (в этом режиме обеспечивается их полная
функциональная совместимость);
ATmega16, ATmega16L (Рис. 1.6) — имеют FLASHпамять программ
объемом 16 Кбайт, ОЗУ объемом 1 Кбайт и EEPROMпамять данных
объемом 512 байт. Максимальное число контактов ввода/вывода
равно 32. Эти модели полностью (по цоколевке и функционально)
обратно совместимы со снятыми с производства микроконтроллерами семейства ATMega163(L) и могут использоваться для их замены в
новых разработках;
1.7. Цоколевка и описание выводов 15

ATmega162, ATmega162V (Рис. 1.7) — имеют FLASHпамять программ объемом 16 Кбайт, ОЗУ объемом 1 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и EEPROMпамять данных объемом 512 байт. Максимальное число контактов ввода/вывода равно 32. Эти модели по цоколевке полностью совместимы со снятыми с производства микроконтроллерами ATmega161(L).
Кроме того, в них предусмотрен режим совместимости с моделями
ATmega161x (в этом режиме обеспечивается их полная функциональная совместимость);
ATmega164, ATmega164V (Рис. 1.8) — имеют FLASHпамять программ объемом 16 Кбайт, ОЗУ объемом 1 Кбайт и EEPROMпамять
данных объемом 512 байт;
ATmega32, ATmega32L (Рис. 1.6) — имеют FLASHпамять программ
объемом 32 Кбайт, ОЗУ объемом 2 Кбайт и EEPROMпамять данных
объемом 1 Кбайт. Эти модели полностью (функционально и по цоколевке) обратно совместимы с микроконтроллерами ATmega323(L)
и могут использоваться для их замены в новых разработках;
ATmega324, ATmega324V (Рис. 1.8) — имеют FLASHпамять программ объемом 32 Кбайт, ОЗУ объемом 2 Кбайт и EEPROMпамять
данных объемом 1 Кбайт;
ATmega644, ATmega644V (Рис. 1.9) — имеют FLASHпамять программ объемом 32 Кбайт, ОЗУ объемом 4 Кбайт и EEPROMпамять
данных объемом 2 Кбайт.

3.
Микроконтроллеры в 64выводных корпусах типа TQFP и MLF:

ATmega165, ATmega165V (Рис. 1.10) — имеют FLASHпамять программ объемом 16 Кбайт, ОЗУ объемом 1 Кбайт и EEPROMпамять
данных объемом 512 байт. Максимальное число контактов ввода/вывода равно 53;
ATmega325, ATmega325V (Рис. 1.11) — имеют FLASHпамять программ объемом 32 Кбайт, ОЗУ объемом 2 Кбайт и EEPROMпамять
данных объемом 1 Кбайт. Максимальное число контактов ввода/вывода равно 53;
ATmega645, ATmega645V (Рис. 1.11) — имеют FLASHпамять программ объемом 16 Кбайт, ОЗУ объемом 4 Кбайт и EEPROMпамять
данных объемом 2 Кбайт. Максимальное число контактов ввода/вывода равно 53;
ATmega64, ATmega64L (Рис. 1.12) — имеют FLASHпамять программ
объемом 64 Кбайт, ОЗУ объемом 4 Кбайт (с возможностью подключения внешнего ОЗУ объемом до 64 Кбайт) и EEPROMпамять данных объемом 2 Кбайт. Максимальное число контактов ввода/вывода
равно 53;
Доступ онлайн
300 ₽
В корзину