Программы
Книги
Статьи

МИКРОКОНТРОЛЛЕРЫ AVR СЕМЕЙСТВА MEGA
Скачать книгу  

ОГЛАВЛЕНИЕ

Предисловие
Книга, которую вы держите в руках, посвящена одному из семейств
микроконтроллеров AVR фирмы Atmel. Эти 8-битные
RISC-микроконтроллеры для встраиваемых приложений являются, пожалуй, наиболее
интересным направлением, развиваемым фирмой. Они представляют собой
мощный инструмент, прекрасную основу для создания современных
высокопроизводительных и экономичных встраиваемых контроллеров
многоцелевого назначения.
Несмотря на то что микроконтроллеры AVR появились на рынке около
10 лет назад, их популярность до сих пор очень высока. С каждым годом
они захватывают все новые и новые ниши на рынке. Не последнюю роль в
этом играет соотношение показателей
цена/быстродействие/энергопотребление, до сих пор являющееся едва ли не лучшим на рынке 8-битных
микроконтроллеров. Кроме того, постоянно растет число выпускаемых
сторонними производителями разнообразных программных и аппаратных
средств поддержки разработок устройств на их основе. Все это позволяет
говорить о микроконтроллерах AVR как об индустриальном стандарте
среди 8-битных микроконтроллеров.
В настоящее время в рамках единой базовой архитектуры
микроконтроллеры AVR подразделяются на несколько семейств:
• TinyAVR;
• Mega AVR;
• Mega AVR для специальных применений;
• ASIC/FPGAAVR.
Данная книга посвящена семейству Mega. Микроконтроллеры этого
семейства имеют наиболее развитую периферию, наибольшие среди всех
микроконтроллеров AVR объемы памяти программ и данных. Они
предназначены для использования в мобильных телефонах, в контроллерах
различного периферийного оборудования (такого как принтеры, сканеры,
современные дисковые накопители, приводы CD-ROM/DVD-ROM и
т. п.), в сложной офисной технике и т. д.
Микроконтроллеры семейства Mega поддерживают несколько
режимов пониженного энергопотребления, имеют блок прерываний, стороже-
вой таймер и допускают программирование непосредственно в готовом
устройстве.
В предлагаемой вашему вниманию книге представлена вся
информация, необходимая для изучения микроконтроллеров AVR семейства Mega.
Вместе с тем следует заметить, что всеобъемлющим справочником данная
книга не является, хотя и написана на основе документации,
предоставляемой фирмой Atmel. Поэтому, прежде чем приступить к практическому
использованию рассматриваемых микроконтроллеров, рекомендуется
обратиться к официальной информации, размещенной на Web-сайтах фирмы
(www.atmel.com, www.atmel.ru).
1.7. Цоколевка и описание выводов
В семейство Mega на сегодняшний день входит в общей сложности 24
модели микроконтроллеров, которые делятся на 4 группы.
1. Микроконтроллеры в 32-выводных корпусах типа TQFP и MLF (также
выпускаются в 28-выводных корпусах типа DIP) с максимальным
числом контактов ввода/вывода, равным 23:
• ATmega8, ATmega8L (Рис. 1.2) — имеют FLASH-память программ
объемом 8 Кбайт, ОЗУ объемом 1 Кбайт и EEPROM-память данных
объемом 512 байт. Эти модели полностью (по цоколевке и функцио-
нально) обратно совместимы со снятыми с производства
микроконтроллерами семейства Classic AT90S4433 и могут
использоваться для их замены в новых разработках;
• ATmega48, ATmega48V (Рис. 1.3) — имеют FLASH-память программ
объемом 4 Кбайт, ОЗУ объемом 512 байт и EEPROM-память данных
объемом 256 байт;
• ATmega88, ATmega88V (Рис. 1.3) — имеют FLASH-память программ
объемом 8 Кбайт, ОЗУ объемом 1 Кбайт и EEPROM-память данных
объемом 512 байт;
• ATmegal68, ATmegal68V (Рис. 1.3) — имеют FLASH-память
программ объемом 16 Кбайт, ОЗУ объемом 1 Кбайт и EEPROM-память
данных объемом 512 байт.
2. Микроконтроллеры в 44-выводных корпусах типа TQFP и М LF (также
выпускаются в 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 (в этом режиме обеспечивается их полная
функциональная совместимость);
• ATmegal6, ATmegal6L (Рис. 1.6) — имеют FLASH-память программ
объемом 16 Кбайт, ОЗУ объемом 1 Кбайт и EEPROM-память данных
объемом 512 байт. Максимальное число контактов ввода/вывода
равно 32. Эти модели полностью (по цоколевке и функционально)
обратно совместимы со снятыми с производства
микроконтроллерами семейства ATMegal63(L) и могут использоваться для их замены в
новых разработках;
• ATmegal62, ATmegal62V (Рис. 1.7) — имеют FLASH-память
программ объемом 16 Кбайт, ОЗУ объемом 1 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и EEPROM-па-
мять данных объемом 512 байт. Максимальное число контактов
ввода/вывода равно 32. Эти модели по цоколевке полностью
совместимы со снятыми с производства микроконтроллерами ATmegal61(L).
Кроме того, в них предусмотрен режим совместимости с моделями
ATmegal61x (в этом режиме обеспечивается их полная
функциональная совместимость);
• ATmegal64, ATmegal64V (Рис. 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 Кбайт.
Микроконтроллеры в 64-выводных корпусах типа TQFP и MLF:
• ATmegal65, ATmegal65V (Рис. 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;
• ATmegal28, ATmegal28L (Рис. 1.12) — имеют FLASH-память
программ объемом 128 Кбайт, ОЗУ объемом 4 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и EEPROM-na-
мять данных объемом 4 Кбайт. Максимальное число контактов
ввода/вывода равно 53;
• ATmegal281, ATmegal281V(PHC. 1.13) — имеют FLASH-память
программ объемом 128 Кбайт, ОЗУ объемом 8 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и EEPROM-na-
мять данных объемом 4 Кбайт. Максимальное число контактов
ввода/вывода равно 54;
• ATmega2561, ATmega2561V (Рис. 1.13) — имеют FLASH-память
программ объемом 256 Кбайт, ОЗУ объемом 8 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и EEPROM-na-
мять данных объемом 4 Кбайт. Максимальное число контактов
ввода/вывода равно 54.
4. Микроконтроллеры в 100-выводных корпусах типа TQFP:
• ATmega3250, ATmega3250V (Рис. 1.14) — имеют FLASH-память
программ объемом 32 Кбайт, ОЗУ объемом 2 Кбайт и EEPROM-память
данных объемом 1 Кбайт. Максимальное число контактов
ввода/вывода равно 68;
• ATmega6450, ATmega6450V (Рис. 1.14) — имеют FLASH-память
программ объемом 64 Кбайт, ОЗУ объемом 4 Кбайт и EEPROM-память
данных объемом 2 Кбайт. Максимальное число контактов
ввода/вывода равно 68;
• ATmega640, ATmega640V (Рис. 1.15) — имеют FLASH-память
программ объемом 64 Кбайт, ОЗУ объемом 8 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и
EEPROM-память данных объемом 4 Кбайт. Максимальное число контактов
ввода/вывода равно 86;
• ATmegal280, ATmegal280V (Рис. 1.15) — имеют FLASH-память
программ объемом 128 Кбайт, ОЗУ объемом 8 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и
EEPROM-память данных объемом 4 Кбайт. Максимальное число контактов
ввода/вывода равно 86;
• ATmega2560, ATmega2560V (Рис. 1.15) — имеют FLASH-память
программ объемом 128 Кбайт, ОЗУ объемом 8 Кбайт (с возможностью
подключения внешнего ОЗУ объемом до 64 Кбайт) и
EEPROM-память данных объемом 4 Кбайт. Максимальное число контактов
ввода/вывода равно 86.
Основные параметры всех микроконтроллеров семейства, такие как
объем памяти (программ и данных), число контактов ввода/вывода, тип
 

ОГЛАВЛЕНИЕ
Предисловие 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
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. Области RWWh NRWW 555
14.5.3. Функционирование загрузчика 557
Приложения 564
Приложение 1. Сводная таблица микроконтроллеров AVR семейства Mega 564
Приложение 2. Чертежи корпусов микроконтроллеров AVR семейства Mega 574
Приложение 3. Параметры микроконтроллеров AVR семейства Mega 577
Предметный указатель 582
 

 
Сайт управляется системой uCoz