e
Компоненты и технологии, № 3'2002 Компоненты
AVR-микроконтроллеры:
очередной этап на пути развития
Представляем очередную версию обзора линии 8-разрядных
высокопроизводительных RISC-микроконтроллеров общего назначения производства Atmel Corp., объединенных общей маркой AVR. Серийное производство AVR началось в 1996 году, а в настоящее время в серийном производстве у Atmel находятся три семейства AVR — «tiny», «classic» и «mega». Многие российские специалисты и разработчики уже по достоинству оценили высокую скорость работы и мощную систему команд AVR, наличие двух типов энергонезависимой памяти на одном кристалле и активно развивающуюся периферию. Для тех читателей, которые, возможно, еще не слышали про AVR или просто пока присматриваются к этой микроконтроллерной платформе, данная статья может оказаться полезной.
Игорь Кривченко, к. т. и.
ik@efo.spb.su
Казалось бы, что еще нового можно было придумать в этой области и для чего? Ведь к началу 1990-х годов широко распространенное семейство микроконтроллеров MCS51, выпускаемое целым рядом фирм-производителей (Intel, Philips, Temic, OKI, Siemens и др.), уже являлось де-факто промышленным стандартом для 8-разрядных систем и прекрасно подходило для использования в широком классе задач, особенно если выбирались кристаллы с дополнительными встроенными периферийными устройствами и повышенной тактовой частотой. Конечно, была и оборотная сторона медали — значительное удельное энергопотребление этих микроконтроллеров. Тогда, если необходимо было получить высокую производительность кристалла при фиксированном энергопотреблении или, наоборот, снизить последнее не теряя производительности, внимание разработчика, как правило, останавливалось на микросхемах Dallas Semiconductor, Microchip или Hitachi. Широко развитые линии PIC-контроллеров фирмы Microchip и микроконтроллеров H8/300 фирмы Hitachi обеспечивают достаточно высокую производительность при небольшом энергопотреблении. Эффективность работы микроконтроллеров Dallas Semiconductor, имеющих базовую архитектуру MCS51, в среднем превышает стандартную в 2,5-3 раза. Появившиеся в последнее время новые процессорные платформы MSP430 фирмы Texas Instruments и XE8000 фирмы Xemics также заслуживают самого пристального внимания, особенно если основным критерием для конечного приложения является минимальное энергопотребление.
Окончательный выбор разработчиком той или иной микропроцессорной платформы для реализации своей задачи зависит, естественно, от большого числа разнообразных факторов, включая экономические. Но обычно первостепенным условием остается получение максимально выгодного соотношения «цена — производительность — энергопотребление», определяемого сложностью решаемой задачи. Видимо, это обстоятельство и послужило
толчком к разработке в середине 1990-х годов нового 8-разрядного микроконтроллера.
AVR, пожалуй, одно из самых интересных направлений, развиваемых корпорацией Atmel. Они представляют собой мощный инструмент для создания современных высокопроизводительных и экономичных многоцелевых контроллеров. На настоящий момент соотношение «цена — производительность — энергопотребление» для AVR является одним из лучших на мировом рынке 8-разрядных микроконтроллеров. Объемы продаж AVR в мире удваиваются ежегодно. В геометрической прогрессии растет число сторонних фирм, разрабатывающих и выпускающих разнообразные программные и аппаратные средства поддержки разработок для них. Можно считать, что AVR постепенно становится еще одним индустриальным стандартом среди 8-разрядных микроконтроллеров общего назначения.
Области применения AVR многогранны. Для семейства «tiny» — это интеллектуальные автомобильные датчики различного назначения, игрушки, игровые приставки, материнские платы персональных компьютеров, контроллеры защиты доступа в мобильных телефонах, зарядные устройства, детекторы дыма и пламени, бытовая техника, разнообразные инфракрасные пульты дистанционного управления. Для семейства «classic» — это модемы различных типов, современные зарядные устройства, изделия класса Smart Cards и устройства чтения для них, спутниковые навигационные системы для определения местоположения автомобилей на трассе, сложная бытовая техника, пульты дистанционного управления, сетевые карты, материнские платы компьютеров, сотовые телефоны нового поколения, а также различные и разнообразные промышленные системы контроля и управления. Для «mega» AVR — это аналоговые (NMT, ETACS, AMPS) и цифровые (GSM, CDMA) мобильные телефоны, принтеры и ключевые контроллеры для них, контроллеры аппаратов факсимильной связи и ксероксов, контроллеры современных дисковых накопителей, CD-ROM и т. д.
е
Компоненты и технологии, № 3'2002
Таблица 1. Микроконтроллеры AVR семейства «classic»
Flash ROM EEPROM RAM External RAM ISP I/O (pins) Timer(s) 8/16-bit AC ADC (channels) Internal RC WDT BDC UART SPI RTC Command Set Vcc (V) Clock (MHz) Packages
AT90S1200 1 KB 64 B + 15 1/- + + + 89 2,7-6,0 0-12 DIP20, S0IC20, SS0P20
AT90S2313 2 KB 128 B 128 B + 15 1/1 + + + 118 2,7-6,0 0-10 DIP20, S0IC20
AT90LS2323 2 KB 128 B 128 B + 3 1/- + 118 2,7-6,0 0-4 DIP8, S0IC8
AT90S2323 2 KB 128 B 128 B + 3 1/- + 118 4,0-6,0 0-10 DIP8, S0IC8
AT90LS2343 2 KB 128 B 128 B + 5 1/- + + 118 2,7-6,0 0-4 DIP8, S0IC8
AT90S2343 2 KB 128 B 128 B + 5 1/- + + 118 4,0-6,0 0-10 DIP8, S0IC8
AT90LS4433 4 KB 256 B 128 B + 20 1/1 + 6 + + + + 118 2,7-6,0 0-4 DIP28, TQFP32
AT90S4433 4 KB 256 B 128 B + 20 1/1 + 6 + + + + 118 4,0-6,0 0-8 DIP28, TQFP32
AT90S8515 8 KB 512 B 512 B <64 КВ + 32 1/1 + + + + 118 2,7-6,0 0-8 DIP40, PLCC44, TQFP44
AT90C8534* 8 KB 512 B 256 B 7 1/1 6 118 3,3-6,0 0-1,5 VQFP48
AT90LS8535 8 KB 512 B 512 B + 32 2/1 + 8 + + + + 118 2,7-6,0 0-4 DIP40, PLCC44, TQFP44
AT90S8535 8 KB 512 B 512 B + 32 2/1 + 8 + + + + 118 4,0-6,0 0-8 DIP40, PLCC44, TQFP44
* позиции, не рекомендованные для новых разработок
AVR — это относительно молодой продукт корпорации Atmel. В этой линии микроконтроллеров общего назначения постоянно появляются новые кристаллы, обновляются версии уже существующих микросхем, совершенствуется и расширяется программное обеспечение поддержки. Так, первое официальное издание — каталог Atmel, посвященный AVR, датирован маем 1997 года. В него были включены всего четыре первых AVR-микроконтроллера семейства AT90S «classic». Второе, существенно расширенное издание каталога вышло в августе 1999 года, и в него уже были включены три семейства AVR — «tiny», «classic» и «mega». И до сих пор более «свежей» версии каталога в печатном виде не существует, постоянно обновляются лишь технические данные в электронном виде (Data Sheet), которые Atmel Corp. размещает на своей информационной странице в Интернете http://www.atmel.com/atmel/prod-ucts/prod23.htm. Скорее всего, к моменту выхода этой статьи представленная информация уже будет нуждаться в дополнениях и коррективах. Будьте внимательны, разрабатывая ваши конечные системы и программное обеспечение с использованием AVR, потому что многое может измениться и, пожалуйста, регулярно следите за обновлениями технической документации, выпускаемой Atmel.
Что же представляют собой микроконтроллеры AVR? Начнем знакомство с аппаратных возможностей, которые сведены для разных семейств в табл. 1-3. В таблицах представлены уже существующие, серийно выпускаемые кристаллы AVR, а также планируемые к выпуску в 2002 году. Отметим, что объемы массивов Flash-, EEPROM- и SRAM-памяти, набор периферийных узлов и построение схемы тактирования существенно различаются
как между семействами, так и между микроконтроллерами внутри каждого семейства. Поэтому приведенное здесь краткое вводное описание основных возможностей AVR-микроконтроллеров не будет исчерпывающим. Конкретные детали и полные описания микроконтроллеров, особенности построения и функционирования всех периферийных блоков можно найти в оригинальной технической документации Atmel.
Условные обозначения в таблицах:
• Flash ROM — объем энергонезависимой памяти программ (в килобайтах);
• EEPROM — объем энергонезависимой памяти данных (в байтах);
• RAM — объем статической памяти данных (в байтах);
• External RAM — возможность подключения к микроконтроллеру дополнительной микросхемы внешней статической памяти данных (в килобайтах);
• ISP — возможность программирования микроконтроллера в системе (на целевой плате) при основном напряжении питания;
• SPM — функция самопрограммирования Flash ROM памяти микроконтроллера в системе без участия внешнего программатора;
• JTAG — встроенный JTAG-интерфейс;
• I/O (pins) — максимальное количество доступных линий ввода-вывода;
• Timer(s) 8/16 bit — количество и разрядность таймеров (счетчиков);
• USI — универсальный коммуникационный интерфейс;
• AC — аналоговый компаратор;
• ADC (channels) — количество каналов аналого-цифрового преобразования;
• Internal RC — наличие внутренней RC-цепочки для автономной работы микроконт-
роллера (без внешнего источника опорной частоты);
• WDT — сторожевой таймер;
• BDC — аппаратный программируемый блок защиты от сбоев при внезапном (в том числе и кратковременном) пропадании напряжения питания микроконтроллера;
• UART — асинхронный последовательный приемопередатчик;
• SPI — синхронный трехпроводной последовательный интерфейс;
• I2C — двухпроводной последовательный интерфейс;
• RTC — система реального времени;
• PWM (channels) — количество независимых каналов широтно-импульсной модуляции;
• Command Set — количество различных инструкций в системе команд микроконтроллера;
• Vcc — диапазон рабочих напряжений питания (в вольтах);
• Clock — диапазон рабочих частот (в мегагерцах);
• Packages — типы корпусов, в которые оп-рессовывается микроконтроллер, и общее количество выводов.
Все AVR имеют Flash-память программ, которая может быть загружена как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на целевой плате. Число циклов перезаписи — не менее 1000. Последние версии кристаллов семейства «mega» выпуска 2001-2002 года имеют возможность самопрограммирования. Это означает, что микроконтроллер способен самостоятельно, без какого-либо внешнего программатора, изменять содержимое ячеек памяти программ. То есть новые AVR могут менять алгоритмы своего функционирования и про-
e
Компоненты и технологии, № 3'2002
Таблица 2. Микроконтроллеры AVR семейства «mega»
Flash ROM EEP- ROM RAM External RAM ISP SPM JTAG I/O Timer(s) (pins) 8/16-bit AC ADC (chan- nels) Internal RC WDT BDC UART SPI I2C RTC PWM (chan- nels) MULT Command Set Vcc, В Clock МГц Packages
ATmega8L** 8 KB 512 B + + 23 + 6/8 + + + 3 + 130 2,7-5,5 0-8 DIP28, TQFP32, MLF32
ATmega8** 8 KB 512 B 1024 B + + 23 2/1 + 6/8 + + + 1 + + + 3 + 130 4,0-5,5 0-16 DIP28, TQFP32, MLF32
ATmega16L** 16 KB 512 B 1024 B + + + 32 2/1 + 8 + + + 1 + + + 4 + 130 2,7-5,5 0-8 DIP40, TQFP44
ATmega16** 16 KB 512 B 1024 B + + + 32 2/1 + 8 + + + 1 + + + 4 + 130 4,0-5,5 0-16 DIP40, TQFP44
ATmega161L 16 KB 512 B 1024 B + + 35 2/1 + + 2 + + + 130 2,7-5,5 0-4 DIP40, TQFP44
ATmega161 16 KB 512 B 1024 B + + 35 2/1 + + 2 + + + 130 4,0-5,5 0-8 DIP40, TQFP44
ATmega162V** 16 KB 512 B 1024 B <64 КВ + + + 35 2/2 + + + + 2 + + 4 + 130 1,8-3,6 0-1 DIP40, TQFP44
ATmega162U** 16 KB 512 B 1024 B <64 КВ + + + 35 2/2 + + + + 2 + + 4 + 130 2,4-4,0 0 -8 DIP40, TQFP44
ATmega162L** 16 KB 512 B 1024 B <64 КВ + + + 35 2/2 + + + + 2 + + 4 + 130 2,7-5,5 0-8 DIP40, TQFP44
ATmega162** 16 KB 512 B 1024 B <64 КВ + + + 35 2/2 + + + + 2 + + 4 + 130 4,0-5,5 0-16 DIP40, TQFP44
ATmega163L 16 KB 512 B 1024 B + + 32 2/1 + 8 + + + 1 + + + 3 + 130 2,7-5,5 0-4 DIP40, TQFP44
ATmega163 16 KB 512 B 1024 B + + 32 2/1 + 8 + + + 1 + + + 3 + 130 4,0-5,5 0-8 DIP40, TQFP44
ATmega323L 32 KB 1024 B 2048 B + + + 32 2/1 + 8 + + + 1 + + + 4 + 130 2,7-5,5 0 -4 DIP40, TQFP44
ATmega323L 32 KB 1024 B 2048 B + + + 32 2/1 + 8 + + + 1 + + + 4 + 130 4,0-5,5 0-8 DIP40, TQFP44
ATmega32L** 32 KB 1024 B 2048 B + + + 32 2/1 + 8 + + + 1 + + + 4 + 130 2,7-5,5 0-8 DIP40, TQFP44
ATmega32** 32 KB 1024 B 2048 B + + + 32 2/1 + 8 + + + 1 + + + 4 + 130 4,0-5,5 0-16 DIP40, TQFP44
ATmega64L** 64 KB 2048 B 4096 B <64 КВ + + + 53 2/2 + 8 + + + 2 + + + 8 + 130 2,7-5,5 0-8 TQFP64
ATmega64** 64 KB 2048 B 4096 B <64 КВ + + + 53 2/2 + 8 + + + 2 + + + 8 + 130 4,0-5,5 0 -16 TQFP64
ATmega103L* 128 KB 4096 B 4000 B <64 КВ + 48 2/1 + 8 + 1 + + 121 2,7-3,6 0-4 TQFP64, MLF64
ATmega103* 128 KB 4096 B 4000 B <64 КВ + 48 2/1 + 8 + 1 + + 121 4,0-5,5 0-6 TQFP64, MLF64
ATmega128L 128 KB 4096 B 4096 B <64 КВ + + + 53 2/2 + 8 + + + 2 + + + 8 + 133 2,7-5,5 0 -8 TQFP64, MLF64
ATmega128 128 KB 4096 B 4096 B <64 КВ + + + 53 2/2 + 8 + + + 2 + + + 8 + 133 4,0-5,5 0-16 TQFP64, MLF64
* позиции, не рекомендованные для новых разработок, ** позиции, запланированные к выпуску в 2002 году
граммы, заложенные в них, и далее работать уже по измененному алгоритму или новой программе. Например, вы можете написать и сохранить несколько рабочих версий программы для конкретного приложения во внешней энергонезависимой памяти (Ба1аЕЫЬ, ЗЕЕРИОМ и т. п.), а затем по мере необходимости или по реакции на какие-нибудь внешние или внутренние логические условия перегружать рабочие программы в тот же самый микроконтроллер ЛУИ, не извлекая его из печатной платы. Для этого весь массив памяти программ делится на две неравные по объему области: блок загрузчика (программа, управляющая перезаписью ЕЫЬ-памяти программ) и блок для размещения рабочего программного кода, причем свободная память в области загрузчика может быть использована в качестве дополнительного пространства для рабочего кода. Про-
грамма-загрузчик создается самим разработчиком и должна быть запрограммирована внешним программатором.
Все ЛУИ имеют также блок энергонезависимой электрически стираемой памяти данных ЕЕРИОМ. Этот тип памяти, доступный программе микроконтроллера непосредственно в ходе ее выполнения, удобен для хранения промежуточных данных, различных констант, таблиц перекодировок, калибровочных коэффициентов и т. п. ЕЕРИОМ также может быть загружена извне как через 8Р1-интерфейс, так и с помощью обычного программатора. Число циклов перезаписи — не менее 100000. Два программируемых бита секретности позволяют защитить память программ и энергонезависимую память данных ЕЕРИОМ от несанкционированного считывания. Внутренняя оперативная память 8ИЛМ имеется у всех ЛУИ
семейств «classic» и «mega» и у одного нового кристалла семейства «tiny» — ATtiny26/L. Для некоторых микроконтроллеров возможна организация подключения внешней памяти данных объемом до 64К.
Внутренний тактовый генератор AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Поскольку AVR-микроконтроллеры полностью статические, минимальная допустимая частота ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера. Верхние границы частотного диапазона, указанные в табл. 1-3, гарантируют устойчивую работу микроконтроллеров при работе во всем температурном диапазоне (хотя, например,
е
Компоненты и технологии, № 3'2002
Таблица 3. Микроконтроллеры AVR семейства «tiny»
Flash ROM EEPROM RAM ISP I/O (Pins) ЦЦ AC USI ADC (channels) Internal RC WDT BDC Command Set Vcc, В Clock, МГц Packages
ATtiny11L 1 KB 6 1/- + + + DIP8, SOIC8
ATtiny11 1 KB +*** 6 1/- + + + 90 4,0-5,5 0-6 DIP8, SOIC8
ATtiny12V 1 KB 64 B + 6 1/- + + + 90 1,8-5,5 0 -1 DIP8, SOIC8
ATtiny12L 1 KB 64 B + 6 1/- + + + 90 2,7-5,5 0 -4 DIP8, SOIC8
ATtiny12 1 KB 64 B + 6 1/- + + + 90 4,0-5,5 0-8 DIP8, SOIC8
ATtiny15L 1 KB 64 B + 6 2/- + 4 + + + 90 2,7-5,5 1,6* DIP8, SOIC8
ATtiny26L 2 KB 128 B 128 B + 16 2/- + + 11 + + + 118 2,7-5,5 0-8 DIP20, SOIC20
ATtiny26 2 KB 128 B 128 B + 16 2/- + + 11 + + + 118 4,5-5,5 0 -16 DIP20, SOIC20
ATtiny28V 2 KB 20 1/- + + + 90 1,8-5,5 0-1 DIP28, TQFP32
ATtiny28L 2 KB 20 1/- + + + 90 2,7-5,5 0-4 DIP28, TQFP32
* значение подстраивается программно, ** позиции, запланированные к выпуску в 2002 году,
' программирование в системе только при 12 В
AT90S8515 при комнатной температуре может быть «разогнан» до 14 МГц). Интересную аппаратную особенность имеет микроконтроллер ATtiny15L. Он содержит блок PLL для аппаратного умножения основной тактовой частоты в 16 раз. При номинальном значении последней 1,6 МГц получаемая вспомогательная периферийная частота равна 25,6 МГц. Эта частота может служить источником для одного из таймеров/счетчиков микроконтроллера, значительно повышая временное разрешение его работы.
Сторожевой (WATCHDOG) таймер предназначен для защиты микроконтроллера от сбоев в процессе работы. Он имеет свой собственный RC-генератор, работающий на частоте 1 МГц. Эта частота является приближенной и зависит прежде всего от величины напряжения питания микроконтроллера и от температуры. WATCHDOG-таймер снабжен своим собственным предделителем входной частоты с программируемым коэффициентом деления, что позволяет подстраивать временной интервал переполнения таймера и сброса микроконтроллера. WATCHDOG-таймер может быть отключен программным образом во время работы микроконтроллера как в активном режиме, так и в любом из режимов пониженного энергопотребления. В последнем случае это приводит к значительному снижению потребляемого тока.
Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/счетчиков общего назначения с разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего источника опорной частоты, и как счетчики внешних событий с внешним тактированием. Общие черты всех таймеров/счетчиков следующие:
• Наличие программируемого предделителя входной частоты с различными градациями деления. Отличительной чертой является возможность работы таймеров/счетчиков на основной тактовой частоте микроконтроллера без предварительного ее понижения, что существенно повышает точность генерации временных интервалов системы.
• Независимое функционирование от режима работы процессорного ядра микроконтроллера (то есть они могут быть как счи-
таны, так и загружены новым значением в любое время).
• Возможность работы или от внутреннего источника опорной частоты, или в качестве счетчика событий. Верхний частотный порог определен в этом случае как половина основной тактовой частоты микроконтроллера. Выбор перепада внешнего источника (фронт или срез) программируется пользователем.
• Наличие различных векторов прерываний для нескольких различных событий (переполнение, захват, сравнение).
Система реального времени (RTC) реализована во всех микроконтроллерах семейства «mega» и в двух кристаллах семейства «clas-sic» — AT90(L)S8535. Таймер/счетчик RTC имеет свой собственный предделитель, который может быть программным способом подключен или к основному внутреннему источнику тактовой частоты микроконтроллера, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели зарезервированы два внешних вывода микроконтроллера. Внутренний осциллятор, нагруженный на счетный вход таймера/счетчика RTC, оптимизирован для работы с внешним «часовым» кварцевым резонатором 32,768 кГц.
Порты ввода-вывода AVR имеют число независимых линий «вход-выход» от 3 до 53. Каждый разряд порта может быть запрограммирован на ввод или на вывод информации. Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В).
Интересная архитектурная особенность построения портов ввода-вывода у AVR заключается в том, что для каждого физического вывода существует 3 бита контроля и управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т. д.). Упрощенная структурная схема элемента ввода-вывода AVR-микроконтроллера приведена на рис. 1. Здесь DDRx — бит контроля направления передачи данных
и привязки вывода к шине питания (УСС), РОИТх — бит привязки вывода к УСС и бит выходных данных, РВДх — бит для отображения логического уровня сигнала на физическом выводе микросхемы.
Естественно возникает вопрос: а зачем необходимы именно 3 бита? Дело в том, что использование только двух бит контроля и управления порождает ряд проблем при операциях типа «чтение-модификация-запись». Например, если имеют место две последовательные операции «чтение — модификация — запись», то первый результат может быть потерян безвозвратно, если вывод порта работает на емкостную нагрузку и требуется некоторое время для стабилизации уровня сигнала на внешнем выводе микросхемы. Архитектура построения портов ввода-вывода ЛУИ с тремя битами контроля и управления позволяет разработчику полностью контролировать процесс ввода-вывода. Если необходимо получить реальное значение сигнала на физическом выводе микроконтроллера — читайте содержимое бита по адресу РВДх. Если требуется обновить выходы — прочитайте защелку РОИТх и потом модифицируйте данные. Это позволяет избежать необходимости иметь копию содержимого порта в памяти для безопасности и повышает скорость работы микроконтроллера при работе с внешними устройствами. Особую значимость приобретает данная возможность ЛУИ для реализации систем, работающих в условиях внешних электрических помех.
Аналоговый компаратор входит в состав большинства микроконтроллеров ЛУИ. Типовое напряжение смещения равно 10 мВ, время задержки распространения составляет 500 нс и зависит от напряжения питания микроконтроллера. Так, например, при напряжении питания 2,7 В оно равно 750 нс. Аналоговый компаратор имеет свой собственный вектор прерывания в общей системе прерываний микроконтроллера. При этом тип перепада, вызывающий запрос на прерывание при срабатывании компаратора, может быть запрограммирован пользователем как фронт, срез или переключение. Логический выход компаратора может быть программным образом подключен ко входу одного из 16-разрядных таймеров/счетчиков, работающего в режиме
Є
Компоненты и технологии, № 3'2OO2
Полный
привод
Постоянное
напряжение
1 канал
LB1938T | 800 мА
ILB1930М |
LB1830 500 м/
LB8632V | ЗА
ILV801IV | ЗАмаксІ
1.5 канал |
Рис. 1
LB1934T
2А
ІІМЯ^ЛМІ___І ІУЯП19У І_ ІВ1Я37
захвата. Это дает возможность измерять длительность аналоговых сигналов, а также максимально просто реализовывать АЦП двухтактного интегрирования.
Аналого-цифровой преобразователь (АЦП) построен по классической схеме последовательных приближений с устройством выборки-хранения (УВХ). Каждый из аналоговых входов может быть соединен со входом УВХ через аналоговый мультиплексор. Устройство выборки-хранения имеет свой собственный усилитель, гарантирующий, что измеряемый аналоговый сигнал будет стабильным в течение всего времени преобразования. Разрядность АЦП составляет 10 бит при нормируемой погрешности ±2 разряда. АЦП может работать в двух режимах — однократное преобразование по любому выбранному каналу и последовательный циклический опрос всех каналов. Время преобразования выбирается программно с помощью установки коэффициента деления частоты специального пред-делителя, входящего в состав блока АЦП. Оно составляет 70-280 мкс для ATmega103 и 65-260 мкс для всех остальных микроконтроллеров, имеющих в своем составе АЦП. Важной особенностью аналого-цифрового преобразователя является функция подавления шума при преобразовании. Пользователь имеет возможность, выполнив короткий ряд программных операций, запустить АЦП в то время, когда центральный процессор находится в одном из режимов пониженного энергопотребления. При этом на точность преобразования не будут оказывать влияние помехи, возникающие при работе процессорного ядра.
ЛУИ-микроконтроллеры могут быть переведены программным путем в один из шести режимов пониженного энергопотребления. Для разных семейств ЛУИ и разных микрокон-
троллеров в пределах каждого семейства изменяются количество и сочетание доступных режимов пониженного энергопотребления. Подробную информацию можно найти в оригинальной технической документации Atmel.
• Режим холостого хода (IDLE), в котором прекращает работу только процессор и фиксируется содержимое памяти данных, а внутренний генератор синхросигналов, таймеры, система прерываний и WATCHDOG-таймер продолжают функционировать.
• Режим микропотребления (Power Down), в котором сохраняется содержимое регистрового файла, но останавливается внутренний генератор синхросигналов. Выход из Power Down возможен либо по общему сбросу микроконтроллера, либо по сигналу (уровень) от внешнего источника прерывания. При включенном WATCHDOG-таймере ток потребления в этом режиме составляет около 6G-8G мкА, а при выключенном — менее 1 мкА для всех типов AVR. Вышеприведенные значения справедливы для величины питающего напряжения З В.
• Режим сохранения энергии (Power Save), который реализован только у тех AVR, которые имеют в своем составе систему реального времени. В основном, режим Power Save идентичен Power Down, но здесь допускается независимая работа дополнительного таймера/счетчика RTC. Выход из режима Power Save возможен по прерыванию, вызванному или переполнением таймера/счетчика RTC, или срабатыванием блока сравнения этого счетчика. Ток потребления в этом режиме составляет 6-1G мкА при напряжении питания З В на частоте З2,768 кГц.
• Режим подавления шума при работе аналого-цифрового преобразователя (ADC Noise Reduction). Как уже отмечалось, в этом режиме останавливается процессорное ядро, но разрешена работа АЦП, двухпроводного интерфейса I2C и сторожевого таймера.
• Основной режим ожидания (Standby). Идентичен режиму Power Down, но здесь работа тактового генератора не прекращается. Это гарантирует быстрый выход микроконтроллера из режима ожидания всего за 6 тактов генератора.
• Дополнительный режим ожидания (Extended Standby). Идентичен режиму Power Save, но здесь работа тактового генератора тоже не прекращается. Это гарантирует бы-
стрый выход микроконтроллера из режима
ожидания всего за 6 тактов генератора.
Микроконтроллеры ЛУИ mega64, mega103 и mega128 имеют еще одну примечательную архитектурную особенность, позволяющую значительно снизить энергопотребление всего кристалла в целом, когда в процессе работы возникают вынужденные паузы ожидания. В этом случае целесообразно уменьшить ток потребления центрального процессора и периферийных устройств как в активном режиме, так и в режиме холостого хода, понизив основную тактовую частоту микроконтроллера. Для этой цели на кристалле размещен специальный предделитель, позволяющий делить основную тактовую частоту на целое число в диапазоне от 2 до 129. Включение или выключение данной функции осуществляется одной короткой командой в программе.
ЛУИ функционируют в широком диапазоне питающих напряжений от 1,8 до 6,0 В. Энергопотребление в активном режиме зависит от величины напряжения питания, от частоты, на которой работает ЛУИ и от конкретного типа микроконтроллера. Подробные спецификации обычно приводятся в оригинальной технической документации Л^е1 Согр. Температурные диапазоны работы микроконтроллеров ЛУИ — коммерческий (0...70 °С) и индустриальный (-40...+85 °С). К сожалению, корпорация ЛШе1 не выпускает и не планирует выпускать ЛУИ для работы в автомобильном (-40...+ 125 °С) и военном (-55...+125 °С) температурных диапазонах.
С точки зрения программиста ЛУИ представляет собой 8-разрядный ИКС-микроконтроллер, имеющий быстрый гарвардский процессор, память программ, память данных, порты ввода-вывода и различные интерфейсные схемы. Структурная схема микроконтроллера приведена на рис. 2. Гарвардская архитектура ЛУИ реализует полное логическое и физическое разделение не только адресных пространств, но и информационных шин для обращения к памяти программ и к памяти данных, причем способы адресации и доступа к этим массивам памяти также различны. Подобное построение уже ближе к структуре цифровых сигнальных процессоров и обеспечивает существенное повышение производительности. Центральный процессор работает одновременно как с памятью программ, так и с памятью данных; разрядность шины па-
AVR ІКіЬІ Done!
pic h; h К Dor іе!
HC05ї1 і Х2 Ї Dor іе!
’С51 5(1: u 1
Done!
Рис. 3
e
Компоненты и технологии, № 3'2002
R0
R1
R2
R3
■
«•»* *
R26 XL X Pointer
R27 ХН
R28 YL Y Pointer
R29 YH
R30 ZL Z Pointer
R31 ZH
Рис. 4
мяти программ расширена до 16 бит. Следующим шагом на пути увеличения быстродействия AVR является использование технологии конвейеризации, вследствие чего цикл «выборка — исполнение» команды заметно сокращен. Например, у микроконтроллеров семейства MCS51 короткая команда выполняется за 12 тактов генератора (1 машинный цикл), в течение которого процессор последовательно считывает код операции и исполняет ее. В PIC-контроллерах фирмы Microchip, где уже реализован конвейер, короткая команда выполняется в течение 8 периодов тактовой частоты (2 машинных цикла). За это время последовательно дешифрируется и считывается код операции, исполняется команда, фиксируется результат и одновременно считывается код следующей операции (одноуровневый конвейер). Поэтому в общем потоке команд одна короткая команда реализуется за 4 периода тактовой частоты или за один машинный цикл. В микроконтроллерах AVR тоже используется одноуровневый конвейер при обращении к памяти программ и короткая команда в общем потоке выполняется, как и в PIC-контроллерах, за один машинный цикл. Главное же отличие состоит в том, что этот цикл у AVR составляет всего один период тактовой частоты. Для сравнения на рис. 3 приведены временные диаграммы при выполнении типовой команды для различных микроконтроллерных платформ.
Следующая отличительная черта архитектуры микроконтроллеров AVR — регистровый файл быстрого доступа, структурная схема которого показана на рис. 4. Каждый из 32-х регистров общего назначения длиной 1 байт непосредственно связан с арифметико-логическим устройством (ALU) процессора. Другими словами, в AVR существует 32 регистра — аккумулятора (сравните, например, с MCS51). Это обстоятельство позволяет в сочетании с конвейерной обработкой выполнять одну операцию в ALU за один машинный цикл. Так, два операнда извлекаются из регистрового файла, выполняется команда и результат запи-
сывается обратно в регистровый файл в течение только одного машинного цикла.
Шесть из 32 регистров файла могут использоваться как три 16-разрядных указателя адреса при косвенной адресации данных. Один из этих указателей (Z Pointer) применяется также для доступа к данным, записанным в памяти программ микроконтроллера. Использование трех 16-битных указателей (X, Y и Z Pointers) существенно повышает скорость пересылки данных при работе прикладной программы.
Регистровый файл занимает младшие 32 байта в общем адресном пространстве SRAM AVR. Такое архитектурное решение позволяет получать доступ к быстрой «регистровой» оперативной памяти микроконтроллера двумя путями — непосредственной адресацией в коде команды к любой ячейке и другими способами адресации ячеек SRAM. В технической документации фирмы Atmel это полезное свойство носит название «быстрое контекстное переключение» и является еще одной отличительной особенностью архитектуры AVR, повышающей эффективность работы микроконтроллера и его производительность. Особенно заметно данное преимущество при реализации процедур целочисленной 16-битной арифметики, когда исключаются многократные пересылки между различными ячейками памяти данных при обработке арифметических операндов в ALU.
Система команд AVR весьма развита и насчитывает до 133 различных инструкций. Конкретное количество команд для каждого микроконтроллера того или иного семейства AVR приведено в табл. 1-2. Почти все команды имеют фиксированную длину в одно слово (16 бит), что позволяет в большинстве случаев объединять в одной команде и код операции, и операнд(ы). Лишь немногие команды имеют размер в 2 слова (32 бит) и относятся к группе команд вызова процедуры CALL, длинных переходов в пределах всего адресного пространства JMP, возврата из подпрограмм RET и команд работы с памятью программ LPM. Различают пять групп команд AVR: условного ветвления, безусловного ветвления, арифметические и логические операции, команды пересылки данных, команды работы с битами. В последних версиях кристаллов AVR семейства «mega» реализована функция аппаратного умножения, что придает новым микроконтроллерам еще больше привлекательности с точки зрения разработчика.
По разнообразию и количеству реализованных инструкций AVR больше похожи на CISC-, чем на RISC-процессоры. Например, у PIC-контроллеров система команд насчитывает до 75 различных инструкций, а у MCS51 она составляет 111. В целом, прогрессивная RISC-архитектура AVR в сочетании с наличием регистрового файла и расширенной системы команд позволяет в короткие сроки созда-
вать работоспособные программы с эффективным кодом как по компактности реализации, так и по скорости выполнения.
Корпорация Atmel планирует дальнейшее развитие перспективной линии AVR-микроконтроллеров. Исключение составляет лишь семейство «classic», развитие которого не планируется. Считается, что это семейство функционально сбалансировано и разнообразно представлено. В семействе «tiny» анонсирован очень интересный микроконтроллер — ATtiny26, имеющий в своем составе блок SRAM емкостью 128 байт и модуль USI (Universal Serial Interface). Это означает, что один и тот же периферийный узел связи на кристалле может быть программным образом сконфигурирован для работы в качестве коммуникационных интерфейсов SPI (Master/Slave) или I2C (Master/Slave). Дополнительно USI может быть запрограммирован для работы в качестве полудуплексного UART или 4/12 разрядного счетчика. Но наиболее интересные решения реализованы в семействе «mega», где анонсирован и начат серийный выпуск целого ряда кристаллов, которые будут выпускаться по технологии 0,35 мкм. Объем Flash-памяти программ с функциями ISP и SPM у новых «mega» будет варьироваться от 8 до 128 килобайт, а выпускаться они будут в корпусах MLF, DIP и TQFP с количеством выводов от 32 до 64. Все новые микроконтроллеры семейства «mega» будут иметь JTAG-интерфейс (за исключением mega8), аппаратный умножитель 8x8, дающий 16-разрядный результат, схему защиты от сбоев, двухпроводной последовательный интерфейс, аналого-цифровой преобразователь (за исключением ATmega162) и ряд других аппаратных особенностей (см. табл. 3). Помимо этого, вдвое будет повышена скорость работы всех периферийных узлов (SPI, PWM, UART и др.), улучшена работа схемы тактирования и упрощен доступ к внешней памяти данных.
Хорошо известно, что развитые средства поддержки разработок при освоении и знакомстве с любым микроконтроллерным семейством играют не менее значимую роль, чем сами кристаллы. Atmel уделяет этому вопросу большое внимание. Программные и аппаратные средства для AVR всегда разрабатывались и разрабатываются параллельно с самими микроконтроллерами и включают в себя компиляторы, внутрисхемные эмуляторы, отладчики, программаторы, простейшие отладочные платы — конструкторы практически на любой вкус. Немаловажную роль играет и открытая политика Atmel Corp. в вопросах развития и распространения разнообразных, доступных средств поддержки разработок. Это позволяет разработчикам и производителям электронной техники надеяться на сохранение полноценной поддержки для перспективного семейства микроконтроллеров, закладывая AVR в свои новые изделия. МИ
е