Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 1. Обзор микроконтроллеров AVR 25 сколько устарели с точки зрения представленного модельного ряда, но все нужные нам модели в них охвачены, и их очень полезно иметь под рукой с другой точки зрения — в этих книгах приведен грамотный и в литературном, и в техническом плане перевод на русский язык не всегда внятно написанной фирменной докумен- тации, американский технический язык которой может быть весьма далек от анг- лийского литературного, который мы все изучали в школе. Обратите внимание: первые издания этих книг (под маркой издательства «Додэка») решительно отстали от современности по части ассортимента представленных там контроллеров. И если они вдруг у вас имеются, то из них могут пригодиться только переведенные на рус- ский подробные описания команд из официального руководства [8]. Такие же опи- сания команд на русском есть и в более современных изданиях [6,7]. Кроме Datasheets, официальная документация представлена в виде Application Notes, что можно перевести как «замечания к применению». «Аппноты» нумеру- ются подряд по мере их выхода, без какого-либо отношения к содержанию, и найти в них что-то можно только полнотекстовым поиском. За двадцать с лишним лет существования AVR «аппнот» накопилось на немаленькое собрание сочинений, и значительная часть их содержит описания каких-то не очень интересных частных случаев. Тем не менее в них можно найти и конкретные примеры программирова- ния часто встречающихся задач, и описания построения рекомендуемых алгорит- мов, и тонкости различий между родственными моделями контроллеров, и еще много разной полезной информации, так что мы будем периодически на них ссы- латься. Основные принципы маркировки AVR Все модели каждого семейства могут иметь несколько модификаций. Если не счи- тать некоторых младших моделей с объемом памяти менее 2 кбайт в серии Tiny (Tiny4, 5 и 9), то первые одна или две цифры в наименовании модели сразу после обозначения семейства (ATtiny или ATmega) означают объем flash-памяти про- грамм в килобайтах, так: ATmega8 — это контроллер с памятью программ 8 кбайт, а ATmega16 — контроллер с памятью программ 16 кбайт. Если имеются более со- временные модификации этих контроллеров, то они обозначаются прибавлением еще одной или нескольких цифр — например, ATmega88 есть расширенная версия ATmega8 (учтите, что это фактически другая ветвь AVR, и без модификации ас- семблерные программы, написанные для Mega8, применять к Mega88 не получит- ся). ATmega88, в свою очередь, имеет ряд вариантов с разным объемом памяти программ: ATmega48 (4 кбайта), ATmega168 (16 кбайт), в том числе и наш люби- мый ардуиновский ATmega328 (32 килобайта). Буква «L» в обозначении старых моделей говорила о расширенном диапазоне пи- тания 2,7–5,5 В при сниженной допустимой тактовой частоте (8 МГц). Отсутствие такой буквы означало диапазон питания 4,5–5,5 В при повышении допустимой так- товой частоты (16 МГц). В настоящее время появились и другие буквы: например, буква «A» говорит о переходе на новую технологию с уменьшенными технологи-

RkJQdWJsaXNoZXIy MTExODQxMg==