AVR
Материал из Википедии — свободной энциклопедии
AVR — семейство восьмибитных микроконтроллеров фирмы Atmel. Год разработки 1996.
Содержание |
[править] Описание архитектуры
Микроконтроллеры 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:
- Флеш-память 8 Кб, SRAM 512 б, EEPROM 512 б;
- Число линий В/В 6-18 (общее количество выводов 8-32);
- Ограниченный набор периферийных устройств.
- megaAVR:
- Флеш-память 256 Кб, SRAM 8 Кб, EEPROM 4 Кб;
- Число линий В/В 23-86 (общее количество выводов 28-100);
- Аппаратный умножитель;
- Расширенная система команд и периферийных устройств.
- XMEGA AVR:
- Флеш-память 384 Кб, SRAM 32 Кб, EEPROM 4 Кб;
- 4-ех канальный DMA-контроллер;
- Инновационная система обработки событий.
Примечание: здесь приведены максимальные значения объёмов памяти
На основе стандартных семейств выпускаются микроконтроллеры адаптированные под конкретные приложения:
- со встроенными интерфейсами USB, CAN, контроллером LCD;
- со встроенным радио приёмо-передатчиком – серии ATAхxxx, ATAMxxx;
- для управления электродвигателями – серия AT90PWMxxxx;
- для автомобильной электроники;
- для осветительной техники.
[править] Устройства ввода/вывода МК
МК 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).
- Таймеры на 8, 16 бит.
- ШИМ-модулятор (PWM) 8-, 9-, 10-, 16-битный.
- Аналоговые компараторы.
- АЦП (ADC) с дифференциальными входами, разрядность 10 бит:
- программируемый коэффициент усиления перед АЦП 1, 10 и 200;
- опорное напряжение 2,56 В.
- Различные последовательные интерфейсы, включая:
- двухпроводной интерфейс TWI, совместимый с I²C;
- универсальный синхронно/асинхронный приёмопередатчик UART/USART;
- синхронный последовательный порт SPI(Serial Peripheral Interface).
- USB серия AT90USBxxxx.
- CAN серия AT90CANxxx.
- LCD серии ATmega169 и ATmega329.
- Датчики температуры ATtiny25, ATtiny45, ATtiny85.
примечание: Не все периферийные устройства могут быть включены программно. Бит в регистре fuses может быть изменён только программатором.
[править] Средства разработки
Существуют следующие средства разработки для AVR:
- AVRStudio — IDE + ассемблер + отладчик. страница AVRStudio
- CodeVisionAVR — компилятор C и программатор - CVAVR + генератор начального кода.
- ICC AVR — компилятор C + генератор начального кода.
- AtmanAvr — компилятор C + отладчик + генератор начального кода.
- WinAVR — бесплатный компилятор C (avr-gcc).
- IAR_AVR — IDE C/C++. сайт разработчика
- VMLAB — симулятор AVR.
- Proteus — мощнейший симулятор электрических цепей, компонентов, включая различные МК и др. периферийное оборудование.
- E-LAB AVRco — компилятор Pascal.
- Algorithm Builder - визуальная среда разработки программ для AVR в виде блок-схем включает также эмулятор и программатор. Используемый язык программирования - псевдоассемблер.
- ForthInc Forth-Compiler компилятор языка Forth.
- MPE Forth-Compiler компилятор языка Forth.
- AVReal — программатор подключение LPT, совместим с программатором в CodeVisionAVR. сайт разработчика
- PonyProg — программатор подключение COM port (LPT) поддерживает МК AVR, PIC и др. сайт разработчика
Кроме того существует свободные средства разработки для AVR:
- AVR-GCC — порт GCC (компилятор) для AVR;
- SimulAVR — симулятор ядра микроконтроллера AVR;
- KontrollerLab — IDE + работа с RS-232 + отладчик;
- Code::Blocks — IDE;
- AVR-GDB — порт GDB (отладчик) для AVR;
- DDD — графический интерфейс к avr-gdb;
- WinAvr — компилятор C/C++ + интеграция с AVRStudio. Включает в себя AVR-GCC. последняя версия
Также архитектура AVR позволяет применять операционные системы при разработке приложений, например FreeRTOS и uOS
[править] Смотрите также
[править] Ссылки
- WinAVR - как начать?
- Wiki о программировании AVR в Linux. В том числе и для начинающих
- Учебный курс по ассемблеру AVR
- "Микроконтроллеры и их применение", "Микроконтроллеры" - Конференции, где быстро помогут по AVR
- AVR начинающим с нуля - первые шаги, самоучитель
- Примеры применения на русском языке
- Форум, примеры программ, описания устройств на AVR.ru (на русском) + AVR для "чайников"
|
|
||||||||
|---|---|---|---|---|---|---|---|---|
| Архитектура |
|
|||||||
| Производители | Analog Devices • Atmel • Silabs • Freescale • Fujitsu • Holtek • Hynix • Infineon • Intel • MicroChip • Maxim • Parallax • Philips • Renesas • Texas Instruments • Toshiba • Ubicom • Zilog | |||||||
| Компоненты | Регистр • Прерывание • CPU • EEPROM • SRAM • Флеш-память • кварцевый резонатор • кварцевый генератор • RC-генератор • Корпус | |||||||
| Периферия | Таймер • АЦП • ЦАП • Компаратор • ШИМ контроллер • Счётчик • LCD • Датчик температуры • Watchdog Timer | |||||||
| Интерфейс | CAN • UART • USB • SPI • I²C • Ethernet | |||||||
| ОС | FreeRTOS • μClinux • BeRTOS • ChibiOS/RT • eCos • RTEMS • Unison • MicroC/OS-II • Nucleus | |||||||
| Программирование | JTAG • C2 • Программатор • Ассемблер • MPLAB • AVR Studio • MCStudio | |||||||

