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.
[править] Семейства микроконтроллеров
8 разрядные
- tinyAVR
- Память программ 1-8 КБ
- Число линий В/В 6-18 (общее количество выводов 8-32)
- Ограниченный набор периферийных устройств
- megaAVR
- Память программ 4-256 КБ
- Число линий В/В 23-86 (общее количество выводов 28-100)
- Расширенная система команд и периферийных устройств
- Специальные МК AVR
32 разрядные
- AT32 (AVR32)
- Память программ 64 - 512Кб
- производительность 72-80DMIPS (тактовая частота 60-66МГц)
- 10/100 Ethernet MAC, USB 2.0
[править] Устройства ввода/вывода МК
МК AVR имеют развитую периферию:
- Многофункциональные, двунаправленные порты ввода-вывода с встроенными нагрузочными резисторами. Конфигурация портов в/в задаётся программно.
- В качестве источника тактовых импульсов может быть выбран:
- кварцевый резонатор;
- внешний тактовый сигнал;
- внутренний 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)
- Таймеры на 16 битов на 8 битов.
- ШИМ-модулятор (PWM) 8-, 9-, 10-, 16-битный.
- Аналоговые компараторы.
- АЦП (ADC) с дифференциальными входами, разрядность 10 битов:
- программируемый коэффициент усиления перед АЦП 1, 10 и 200;
- опорное напряжение 2,56 В.
- Различные последовательные интерфейсы, включая:
- двухпроводный интерфейс TWI, совместимый с I²C;
- универсальный синхронно/асинхронный приёмопередатчик UART/USART (используется для реализации интерфейсов с RS-232, RS-485);
- синхронный последовательный порт SPI(Serial Peripheral Interface).
- USB серия AT90USBxxxx.
- CAN серия AT90CANxxx.
- LCD серии ATmega169 ATmega329.
- Датчики температуры ATtiny25, ATtiny45, ATtiny85.
примечание: Не все периферийные устройства могут быть включены программно. Бит в регистре fuses может быть изменён только программатором.
[править] Средства разработки
Существуют следущие проприетарные средства разработки:
- AVRStudio — IDE + ассемблер + отладчик
- IAR Embedded Workbench for Atmel AVR — компилятор C/C++ сайт разработчика
- CodeVisionAVR — компилятор C + генератор начального кода сайт разработчика
- E-LAB AVRco — компилятор Pascal
- ICC AVR — компилятор C сайт разработчика
- AVReal — программатор подключение LPT, совместим с CodeVisionAVR сайт разработчика
- PonyProg — программатор подключение COM port (LPT) поддерживает МК AVR, PIC и др сайт разработчика
- VMLAB — симулятор AVR
- Algorithm Builder - визуальная среда разработки программ для AVR в виде блок-схем включает также эмулятор и программатор. Используемый язык программирования - псевдоассемблер.
- Proteus — симулятор AVR
- ForthInc Forth-Compiler компилятор языка Forth
- MPE Forth-Compiler компилятор языка Forth
Кроме того существует свободный порт GCC для AVR.
- WinAvr — компилятор C/C++ + интеграция с AVRStudio последняя версия
- AtmanAvr — компилятор C + отладчик + генератор начального кода сайт разработчика
Также архитектура AVR позволяет применять операционные системы при разработке приложений, например FreeRTOS и uOS