Микроконтроллеры AVR семейства Tinya : руководство пользователя
Покупка
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
ДМК Пресс
Автор:
Евстифеев Андрей Викторович
Год издания: 2023
Кол-во страниц: 427
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-431-5
Артикул: 816626.01.99
Книга посвящена однокристальным микроконтроллерам AVR семейства Tiny фирмы ATMEL. Рассмотрена архитектура микроконтроллеров AVR, ее особенности, приведены основные электрические параметры. Подробно описано внутреннее устройство микроконтроллеров, система команд, периферия, а также способы программирования. Основой данного издания послужила популярная книга «Микроконтроллеры AVR семейств Tiny и Mega», материал которой был существенно переработан и дополнен описаниями новых моделей. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 11.03.01: Радиотехника
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
С Е Р И Я ПРОГРАММИРУЕМЫЕ СИСТЕМЫ А. В. Евстифеев МИКРОКОНТРОЛЛЕРЫ AVR СЕМЕЙСТВА Tiny Руководство пользователя 2е издание, электронное Москва ДМК Пресс, Додека-XIX, 2023
УДК 621.316.544.1 (035.5) ББК 32.844.1-04я2 Е26 Е26 Евстифеев, А. В. Микроконтроллеры AVR семейства Tinya : руководство пользователя / А. В. Евстифеев. — 2-е изд., эл. — 1 файл pdf : 427 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — (Программируемые системы). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-431-5 Книга посвящена однокристальным микроконтроллерам AVR семейства Tiny фирмы ATMEL. Рассмотрена архитектура микроконтроллеров AVR, ее особенности, приведены основные электрические параметры. Подробно описано внутреннее устройство микроконтроллеров, система команд, периферия, а также способы программирования. Основой данного издания послужила популярная книга «Микроконтроллеры AVR семейств Tiny и Mega», материал которой был существенно переработан и дополнен описаниями новых моделей. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов. УДК 621.316.544.1 (035.5) ББК 32.844.1-04я2 Электронное издание на основе печатного издания: Микроконтроллеры AVR семейства Tinya : руководство пользователя / А. В. Евстифеев. — Москва : ДМК Пресс, Додэка-XXI, 2015. — 426 с. — (Программируемые системы). — ISBN 978-5-97060-262-1. — Текст : непосредственный. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-431-5 © Издательский дом «Додэка XXI» © Издание, ДМК Пресс, 2015 ® Серия «Программируемые системы»
Оглавление 3 Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Глава 1. Знакомство с семейством Tiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 1.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2. Отличительные особенности. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3. Характеристики процессора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4. Характеристики подсистемы ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5. Периферийные устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6. Архитектура ядра . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.7. Цоколевка и описание выводов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Глава 2. Архитектура микроконтроллеров семейства Tiny . . . . . . . . . . . . . . . . . . .32 2.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.2. Организация памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.2.1. Память программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.2.2. Память данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.3. Энергонезависимая память данных (EEPROM) . . . . . . . . . . . . . . . . . . . . . . . . 67 2.3. Счетчик команд и выполнение программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.3.1. Счетчик команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.3.2. Функционирование конвейера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.3.3. Команды типа «проверка/пропуск» (Test & Skip) . . . . . . . . . . . . . . . . . . . . . . . 74 2.3.4. Команды условного перехода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.3.5. Команды безусловного перехода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.3.6. Команды вызова подпрограмм. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.3.7. Команды возврата из подпрограмм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.4. Стек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Глава 3. Система команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 3.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.2. Операнды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.3. Типы команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.3.1. Команды логических операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.3.2. Команды арифметических операций и команды сдвига . . . . . . . . . . . . . . . . . 83 3.3.3. Команды битовых операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ОГЛАВЛЕНИЕ
Оглавление 3.3.4. Команды пересылки данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.3.5. Команды передачи управления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.3.6. Команды управления системой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.4. Сводные таблицы команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.5. Описание команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Глава 4. Тактирование, режимы пониженного энергопотребления и сброс . . . .156 4.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 4.2. Тактовый генератор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 4.2.1. Генератор с внешним резонатором . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 4.2.2. Низкочастотный кварцевый генератор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 4.2.3. Внешний сигнал синхронизации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 4.2.4. Генератор с внешней RCцепочкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 4.2.5. Внутренний калиброванный RCгенератор . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 4.2.6. Внутренний RCгенератор на 128 кГц. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 4.2.7. Схема ФАПЧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 4.2.8. Управление тактовой частотой. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 4.3. Управление электропитанием. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 4.3.1. Режимы пониженного энергопотребления . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 4.3.2. Управление тактовыми сигналами модулей. . . . . . . . . . . . . . . . . . . . . . . . . . . 172 4.3.3. Общие рекомендации по уменьшению энергопотребления . . . . . . . . . . . . . 173 4.4. Сброс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 4.4.1. Сброс по включению питания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 4.4.2. Аппаратный сброс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 .4.4.3. Сброс от сторожевого таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 4.4.4. Сброс при снижении напряжения питания. . . . . . . . . . . . . . . . . . . . . . . . . . . 180 4.4.5. Управление схемой сброса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Глава 5. Прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195 5.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 5.2. Таблица векторов прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 5.3. Обработка прерываний. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 5.4. Внешние прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Глава 6. Порты ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207 6.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 6.2. Регистры портов ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 6.3. Конфигурирование портов ввода/вывода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 6.4. Аппаратный модулятор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Глава 7. Таймеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 7.1. Общие сведения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 7.2. Назначение выводов таймеров/счетчиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 7.3. Прерывания от таймеров/счетчиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 7.4. Предделители таймеров/счетчиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Оглавление 5 7.4.1. Управление предделителями. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.4.2. Использование внешнего тактового сигнала. . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.5. Таймер/счетчик T0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 7.5.1. Управление тактовым сигналом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 7.5.2. Режимы работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 7.6. Таймер/счетчик T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 7.6.1. Таймер/счетчик T1 в модели ATtiny15L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 7.6.2. Таймер/счетчик T1 в моделях ATtiny2313x и ATtiny24x/44x/84x . . . . . . . . . 253 7.6.3. Таймер/счетчик T1 в моделях ATtiny25x/45x/85x и ATtiny26x . . . . . . . . . . . 271 7.7. Сторожевой таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Глава 8. Аналоговый компаратор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291 8.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 8.2. Функционирование компаратора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Глава 9. Аналогоцифровой преобразователь . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 9.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 9.2. Функционирование модуля АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 9.3. Результат преобразования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 9.4. Повышение точности преобразования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 9.5. Параметры АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Глава 10.Универсальный синхронный/асинхронный приемопередатчик . . . . .317 10.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 10.2. Использование модуля USART. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 10.2.1. Скорость приема/передачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 10.2.2. Формат кадра. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 10.2.3. Передача данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 10.2.4. Прием данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 10.3. Мультипроцессорный режим работы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Глава 11.Универсальный последовательный интерфейс USI . . . . . . . . . . . . . . .335 11.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 11.2. Основные сведения об интерфейсе SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 11.3. Основные сведения об интерфейсе TWI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 11.4. Использование модуля USI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 11.5. Режимы работы модуля USI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 11.5.1. Трехпроводный режим. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 11.5.2. Двухпроводный режим. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 11.5.3. Альтернативное использование модуля USI . . . . . . . . . . . . . . . . . . . . . . . . . 355 Глава 12.Программирование микроконтроллеров AVR семейства Tiny . . . . . . .356 12.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 12.1.1. Защита кода и данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 12.1.2. Конфигурационные ячейки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Оглавление 12.1.3. Идентификатор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 12.1.4. Калибровочные ячейки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 12.1.5. Страничная организация памяти программ и данных . . . . . . . . . . . . . . . . . 363 12.2. Последовательное программирование при высоком напряжении . . . . . . . . . . . . . 364 12.2.1. Управление процессом программирования. . . . . . . . . . . . . . . . . . . . . . . . . . 366 12.3. Программирование по последовательному каналу . . . . . . . . . . . . . . . . . . . . . . . . . . 377 12.3.1. Переключение в режим программирования . . . . . . . . . . . . . . . . . . . . . . . . . 384 12.3.2. Управление процессом программирования FLASHпамяти . . . . . . . . . . . 384 12.3.3. Управлением процессом программирования EEPROMпамяти . . . . . . . . 385 12.4. Параллельное программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 12.4.1. Переключение в режим параллельного программирования . . . . . . . . . . . . 392 12.4.2. Стирание кристалла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 12.4.3. Программирование FLASHпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 12.4.4. Программирование EEPROMпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 12.4.5. Программирование конфигурационных ячеек . . . . . . . . . . . . . . . . . . . . . . . 396 12.4.6. Программирование ячеек защиты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 12.4.7. Чтение конфигурационных ячеек и ячеек защиты. . . . . . . . . . . . . . . . . . . . 398 12.4.8. Чтение ячеек идентификатора и калибровочных ячеек. . . . . . . . . . . . . . . . 399 12.5. Самопрограммирование микроконтроллеров семейства Tiny . . . . . . . . . . . . . . . . 400 12.5.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 12.5.2. Функционирование загрузчика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 Приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Приложение 1. Сводная таблица микроконтроллеров AVR семейства Tiny . . . . . . . . . 404 Приложение 2. Чертежи корпусов микроконтроллеров AVR семейства Tiny. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 Приложение 3. Электрические параметры микроконтроллеров AVR семейства Tiny . 415
Предисловие 7 Книга, которую вы держите в руках, посвящена одному из семейств микроконтроллеров AVR фирмы Atmel. Эти 8битные RISCмикроконтроллеры для встраиваемых приложений являются, пожалуй, наиболее интересным направлением, развиваемым фирмой. Они представляют собой мощный инструмент, прекрасную основу для создания современных высокопроизводительных и экономичных встраиваемых контроллеров многоцелевого назначения. Несмотря на то что микроконтроллеры AVR появились на рынке около 10 лет назад, их популярность до сих пор очень высока. С каждым годом они захватывают все новые и новые ниши на рынке. Не последнюю роль в этом играет соотношение показателей цена/быстродействие/энергопотребление, до сих пор являющееся едва ли не лучшим на рынке 8битных микроконтроллеров. Кроме того, постоянно растет число выпускаемых сторонними производителями разнообразных программных и аппаратных средств поддержки разработок устройств на их основе. Все это позволяет говорить о микроконтроллерах AVR как об индустриальном стандарте среди 8битных микроконтроллеров. В настоящее время в рамках единой базовой архитектуры микроконтроллеры AVR подразделяются на несколько семейств: Tiny AVR; Mega AVR; Mega AVR для специальных применений; ASIC/FPGA AVR. Данная книга посвящена первому семейству — Tiny. Характерными особенностями микроконтроллеров этого семейства являются: небольшие корпуса с малым количеством выводов; малые объемы FLASHпамяти программ (1…8 Кбайт) и ОЗУ; довольно ограниченная периферия. Таким образом эти микроконтроллеры предназначены для так называемых бюджетных решений, принимаемых в условиях жестких финансовых ограничений. Область применения этих микроконтроллеров — интеллекПредисловие
Предисловие туальные датчики различного назначения (контрольные, пожарные, охранные), игрушки, различная бытовая техника и другие подобные устройства. В новых моделях семейства появились узлы, отсутствующие даже в микроконтроллерах более развитого семейства Mega. Этими узлами являются: температурный датчик, позволяющий измерять температуру кристалла с точностью ±10°С; схема ФАПЧ, позволяющая повысить внутреннюю тактовую частоту микроконтроллера до 64 MГц при использовании внешнего кварцевого резонатора на частоту 8 МГц; генератор времени запаздывания, позволяющий осуществлять безопасное управление силовыми ключами в системах управления двигателями и предотвращать возникновение в них сквозных токов. Микроконтроллеры семейства Tiny поддерживают несколько режимов пониженного энергопотребления, имеют блок прерываний, сторожевой таймер и допускают программирование непосредственно в готовом устройстве. В предлагаемой вашему вниманию книге представлена вся информация, необходимая для изучения микроконтроллеров AVR семейства Tiny. Однако следует заметить, что всеобъемлющим справочником данная книга не является, хотя и написана на основе документации, предоставляемой фирмой Atmel. Поэтому, прежде чем приступить к практическому использованию рассматриваемых микроконтроллеров, рекомендуется обратиться к официальной информации, размещенной на Webсайтах фирмы (www.atmel.com, www.atmel.ru).
1.1. Общие сведения 9 Как и все микроконтроллеры AVR фирмы Atmel, микроконтроллеры семейства Tiny являются 8битными микроконтроллерами, предназначенными для использования во встраиваемых приложениях. Они изготавливаются по малопотребляющей КМОПтехнологии, которая в сочетании с усовершенствованной RISCархитектурой позволяет достичь наилучшего соотношения стоимость/быстродействие/энергопотребление. Удельное быстродействие этих микроконтроллеров может достигать значения 1 MIPS/МГц (1 миллион операций в секунду на 1 МГц тактовой частоты). Микроконтроллеры описываемого семейства предназначены, в первую очередь, для низкостоимостных («бюджетных») приложений, не требующих большого объема аппаратных ресурсов, и соответственно являются самыми дешевыми из всех микроконтроллеров AVR. Важной особенностью этих микроконтроллеров является эффективное использование выводов кристалла. Например, в 8выводном корпусе все выводы (кроме, разумеется, выводов питания) могут использоваться в качестве линий ввода/вывода. 1.2. Отличительные особенности Перечислю вкратце основные особенности микроконтроллеров AVR семейства Tiny: FLASHпамять программ объемом от 1 до 8 Кбайт (число циклов стирания/записи не менее 10 000); оперативная память (статическое ОЗУ) объемом до 512 байт; память данных на основе ЭСППЗУ (EEPROM) объемом от 64 до 51 байт (число циклов стирания/записи не менее 100 000); возможность защиты от внешнего чтения и модификации памяти программ и EEPROM; возможность программирования большинства моделей непосредственно в системе через последовательный интерфейс; возможность самопрограммирования; ГЛАВА 1. Знакомство с семейством Tiny 1.1. Общие сведения
Глава 1. Знакомство с семейством Tiny различные способы синхронизации: встроенный RCгенератор (основной режим работы), встроенный генератор с внешним резонатором, внешний сигнал синхронизации; наличие нескольких режимов пониженного энергопотребления; наличие детектора пониженного напряжения питания (BrownOut Detector — BOD). 1.3. Характеристики процессора Основными характеристиками процессора микроконтроллеров AVR семейства Tiny являются: полностью статическая архитектура, минимальная тактовая частота равна нулю; арифметикологическое устройство (АЛУ) подключено непосредственно к регистрам общего назначения (32 регистра); большинство команд выполняются за один период тактового сигнала; векторная система прерываний, поддержка очереди прерываний; до 16 источников прерываний (до 13 внешних). 1.4. Характеристики подсистемы ввода/вывода Подсистема ввода/вывода микроконтроллеров AVR семейства Tiny имеет следующие особенности: программное конфигурирование и выбор портов ввода/вывода; выводы могут быть запрограммированы как входные или как выходные независимо друг от друга; входные буферы с триггером Шмитта на всех выводах; на всех входах имеются индивидуально отключаемые внутренние подтягивающие резисторы сопротивлением 35…120 кОм (старые модели) и 20…50 кОм (новые модели). 1.5. Периферийные устройства Набор периферийных устройств, имеющихся в составе того или иного микроконтроллера, зависит от конкретной модели и может быть определен по сводной таблице, приведенной в Приложении I. Вообще же в составе микроконтроллеров семейства встречаются следующие периферийные устройства: один или два 8битных таймера/счетчика; один 16битный таймер/счетчик;