- AVR
-
AVR — семейство восьмибитных микроконтроллеров фирмы Atmel. Год разработки — 1996.
Содержание
История создания архитектуры AVR
Идея разработки нового RISC-ядра принадлежит двум студентам Norwegian University of Science and Technology (NTNU) из норвежского города Тронхейма (Trondheim) — Альфу Богену (Alf-Egil Bogen) и Вегарду Воллену (Vegard Wollen). В 1995 году Боген и Воллен решили предложить американской корпорации Atmel, которая была известна своими чипами с Flash-памятью, выпускать новый 8-битный RISC-микроконтроллер и снабдить его Flash-памятью для программ на одном кристалле с вычислительным ядром.
Идея была одобрена Atmel Corp., и было принято решение незамедлительно инвестировать в данную разработку. В конце 1996 года был выпущен опытный микроконтроллер AT90S1200, а во второй половине 1997-го корпорация Atmel приступила к серийному производству нового семейства микроконтроллеров, к их рекламной и технической поддержке.
Новое ядро было запатентовано и получило название AVR. Существует несколько трактовок данной аббревиатуры. Кто-то утверждает, что это Advanced Virtual RISC, другие полагают, что не обошлось здесь без Alf Egil Bogen Vegard Wollan RISC.
Описание архитектуры
Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC. Процессор AVR имеет 32 8-битных регистра общего назначения, объединённых в регистровый файл. В отличие от «идеального» RISC, регистры не абсолютно ортогональны:
- Три «сдвоенных» 16-битных регистра-указателя X (r26:r27), Y (r28:r29) и Z (r30:r31);
- Некоторые команды работают только с регистрами r16…r31;
- Результат умножения (в тех моделях, в которых есть модуль умножения) всегда помещается в r0:r1.
Система команд
Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций.
Большинство команд занимает только 1 ячейку памяти (16 бит).
Большинство команд выполняется за 1 такт.
Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:
- команды логических операций;
- команды арифметических операций и команды сдвига;
- команды операции с битами;
- команды пересылки данных;
- команды передачи управления;
- команды управления системой.
Управление периферийными устройствами осуществляется через адресное пространство данных. Для удобства существуют «сокращённые команды» IN/OUT.
Семейства микроконтроллеров
Стандартные семейства:
- tinyAVR (ATtinyxxx):
- Флеш-память до 16 Кб; SRAM до 512 б; EEPROM до 512 б;
- Число линий ввод-вывода 4-18 (общее количество выводов 6-32);
- Ограниченный набор периферийных устройств.
- megaAVR (ATmegaxxx):
- Флеш-память до 256 Кб; SRAM до 8 Кб; EEPROM до 4 Кб;
- Число линий ввода-вывода 23-86 (общее количество выводов 28-100);
- Аппаратный умножитель;
- Расширенная система команд и периферийных устройств.
- XMEGA AVR (ATxmegaxxx):
- Флеш-память до 384 Кб; SRAM до 32 Кб; EEPROM до 4 Кб;
- Четырёхканальный DMA-контроллер;
- Инновационная система обработки событий.
Как правило, цифры после префикса обозначают объём встроенной flash-памяти (в КБ) и модификацию контроллера. А именгшщн89н7но, максимальная степень двойки, следующая за префиксом обозначает объём памяти, а оставшиеся цифры определяют модификацию (апр., ATmega128 — объём памяти 128 КБ; ATmega168 — объём памяти 16 КБ, модификация 8; ATtiny44 и ATtiny45 — память 4 КБ, модификации 4 и 5 соответственно).
На основе стандартных семейств выпускаются микроконтроллеры, адаптированные под конкретные задачи:
- со встроенными интерфейсами USB, CAN, контроллером LCD;
- со встроенным радиоприёмопередатчиком — серии ATAхxxx, ATAMxxx;
- для управления электродвигателями — серия AT90PWMxxxx;
- для автомобильной электроники;
- для осветительной техники.
Кроме указанных выше семейств, ATMEL выпускает 32-разрядные микроконтроллеры семейства AVR32, которое включает в себя подсемейства AT32UC3 (тактовая частота до 66 МГц) и AT32AP7000 (тактовая частота до 150 МГц).
Версии контроллеров
AT(mega/tiny)xxx — базовая версия.
ATxxxL — версии контроллеров, работающих на пониженном (Low) напряжении питания (2,7 В).
ATxxxV — версии контроллеров, работающих на низком напряжении питания (1,8 В).
ATxxxP — малопотребляющие версии (до 100 нА в режиме Power-down), применена технология picoPower (анонсированы в июле 2007)[1], повыводно и функционально совместимы с предыдущими версиями.
ATxxxA — уменьшен ток потребления, перекрывается весь диапазон тактовых частот и напряжений питания двух предыдущих версий (также, в некоторых моделях, добавлены новые возможности и новые регистры, но сохранена полная совместимость с предыдущими версиями). Микроконтроллеры «А» и «не-А» с точки зрения программатора ничем не отличаются.[2][3]АТxxx-PI — корпус DIP
АТxxx-PU — корпус DIP, бессвинцовый припойАТxxx-AI — корпус TQFP
АТxxx-AU — корпус TQFP, бессвинцовый припой(цифры 8/10/16/20/.. перед индексом означают максимальную частоту, на которой микроконтроллер может стабильно работать при нормальном для него напряжении питания). Файл:AT32.jpg
Устройства ввода/вывода МК
МК AVR имеют развитую периферию:
- Многофункциональные, двунаправленные GPIO порты ввода/вывода со встроенными подтягивающими резисторами. Конфигурация портов в/в задаётся программно.
- В качестве источника тактовых импульсов может быть выбран:
- кварцевый резонатор;
- внешний тактовый сигнал;
- внутренний RC-генератор (частота 1, 2, 4, 8 МГц).
- Внутренняя Флеш-память команд до 256 KБ (не менее 10 000 циклов перезаписи).
- Отладка программ осуществляется с помощью интерфейсов JTAG или debugWIRE:
- сигналы JTAG (TMS, TDI, TDO, и TCK) мультиплексированы на порт ввода/вывода. Режим работы — JTAG или порт — задаётся соответствующим битом в регистре fuses. МК AVR поставляются с включённым интерфейсом JTAG.
- Внутреннее EEPROM данных до 4 КБ (100 000 циклов).
- Внутренняя SRAM до 8 KБ время доступа 1 такт.
- Внешняя память объёмом до 64 КБ (Mega8515 и Mega162).
- Таймеры c разрядностью 8, 16 бит.
- ШИМ-модулятор (PWM) 8-, 9-, 10-, 16-битный.
- Аналоговые компараторы.
- АЦП (ADC) с дифференциальными входами, разрядность 10 бит (12 для XMEGA AVR):
- Различные последовательные интерфейсы, включая:
- двухпроводной интерфейс TWI, совместимый с I²C;
- универсальный синхронно/асинхронный приёмопередатчик UART/USART;
- синхронный последовательный порт Serial Peripheral Interface (SPI).
- USB серия AT90USBxxxx.
- CAN серия AT90CANxxx.
- LCD серии ATmega169 и ATmega329.
- Датчики температуры ATtiny25, ATtiny45, ATtiny85.
Примечание: не все периферийные устройства могут быть включены программно. Бит в регистре fuses может быть изменён только программатором.
Средства разработки
Свободные
- WinAVR — программный пакет под Windows, включающий в себя компилятор, ассемблер, компоновщик и другие инструменты.
- Algorithm Builder — разработки программного обеспечения для микроконтроллеров с архитектурой AVR.
- Code::Blocks — кроссплатформенная среда разработки.
- DDD — графический интерфейс к avr-gdb.
- V-USB — программная реализация протокола USB для микроконтроллеров AVR.
- Avrdude — средство для прошивки микроконтроллеров.
- PonyProg — универсальный программатор через LPT-порт, COM-порт (подерживается и USB-эмулятор COM-порта).
Проприетарные
- AVR Studio — бесплатная IDE от самой Atmel
- IAR AVR — коммерческая среда разработки для микроконтроллеров AVR
- Bascom-avr — среда разработки основанная на Basic-подобном языке программирования.
- CodeVisionAVR — компилятор C и программатор — CVAVR, генератор начального кода.
- Proteus — симулятор электрических цепей, компонентов, включая различные МК и др. периферийное оборудование.
Также архитектура AVR позволяет применять операционные системы при разработке приложений, например FreeRTOS, uOS, ChibiOS/RT.
См. также
Ссылки
- Atmel AVR 8- and 32-bit Microcontrollers на сайте компании Atmel
- AVR в каталоге ссылок Open Directory Project (dmoz).
Примечания
Микроконтроллеры Архитектура 8-бит MCS-51 • MCS-48 • PIC • AVR • Z8 • H8 • COP8 • 68HC08 • 68HC11 16-бит MSP430 • MCS-96 • MCS-296 • PIC24 • MAXQ • Nios • 68HC12 • 68HC16 32-бит ARM • MIPS • AVR32 • PIC32 • 683XX • M32R • SuperH • Nios II • Am29000 • LatticeMico32 • MPC5xx • PowerQUICC • Parallax Propeller Производители Analog Devices • Atmel • Silabs • Freescale • Fujitsu • Holtek • Hynix • Infineon • Intel • Microchip • Maxim • Parallax • NXP Semiconductors • Renesas • Texas Instruments • Toshiba • Ubicom • Zilog • Cypress Компоненты Регистр • Процессор • SRAM • EEPROM • Флеш-память • Кварцевый резонатор • Кварцевый генератор • RC-генератор • Корпус Периферия Таймер • АЦП • ЦАП • Компаратор • ШИМ-контроллер • Счётчик • LCD • Датчик температуры • Watchdog Timer Интерфейсы CAN • UART • USB • SPI • I²C • Ethernet • 1-Wire ОС FreeRTOS • μClinux • BeRTOS • ChibiOS/RT • eCos • RTEMS • Unison • MicroC/OS-II • Nucleus Программирование JTAG • C2 • Программатор • Ассемблер • Прерывание • MPLAB • AVR Studio • MCStudio Процессорные архитектуры на базе RISC-технологий Altera Nios II • AMD 29000 • Apollo PRISM • Analog Devices Blackfin • ARM • Atmel (AVR • AVR32) • Cambridge Consultants XAP • DEC Alpha • DLX • PA-RISC • Intel i960 • M32R • LatticeMico32 • Microchip PIC • MIPS • Motorola 88000 • OpenRISC • POWER • PowerPC • SPARC • SuperH • Xilinx (MicroBlaze • PicoBlaze) • XMOS XCore
Категория:- AVR
Wikimedia Foundation. 2010.