Микроконтроллеры AVR Печать
Добавил(а) microsin   

Начал изучать AVR я не сразу. Сначала работал с семейством MCS51 - Intel 8751, AT89C51, AT89C52 (где-то с 1991 года), поскольку другой альтернативы попросту не было.

Потом с появлением PIC начал облизываться и на них (плюсы известные - низкая цена, малое энергопотребление, высокая производительность на простых задачах), но из-за ужасного ассемблера, неудобства написания прошивок к ним и дороговизны внутрисхемного эмулятора PIC у меня не прижились (сильно коробило от метода отладки скомпилировал/прошил/попробовал - и то на одном-единственном PIC16F84, хотя многие энтузиасты так программы и писали). Со временем, конечно, многое изменилось к лучшему, но как говорится - осадочек остался, и поезд PIC ушел. До появления семейства ATtiny на AVR я тоже посматривал косо - несмотря на "драматическое", как говорят америкосы, увеличение быстродействия, уменьшение энергопотребления. Под MCS51 у меня уже был купленный дорогущий эмулятор, и пока возможности старой платформы устраивали. Но вот появились ATtiny и ATmega, принеся с собой такие вкусности, как дармовые многоканальные встроенные ADC, PWM, дешевую аппаратную отладку с помощью JTAG и debugWIRE, и я не выдержал - бастион MCS51 пал. AVR оказался не так страшен, как PIC, поскольку имеет очень приятный и логичный ассемблер. Еще приятная возможность - можно подобрать модель AVR такую, что она по цоколевке будет совпадать с процессором платформы MCS51 - AT89C51, AT89C2051, так что можно сделать "апгрейд" старого устройства, практически не перепаивая схему. Потратил немного времени на изучение (не больше месяца!..), немного (по-настоящему немного!) денег на “взрослый” внутрисхемный эмулятор Atmel AVR JTAGICE mkII, см. [3] (для тех же целей можно купить намного более дешевый AVR Dragon) и теперь для меня альтернативы AVR просто нет - писать больше под MCS51 нет смысла. Итак, как лучше изучать AVR, с чего начать?

Рекомендую действовать примерно по такому плану:

1. Нужно ознакомиться с основными возможностями архитектуры, для этого начните с [1]. Без напрягов просмотрите бегло эти ссылки. Вы наверняка уже имеете некоторые требования к микроконтроллерам по ресурсам (памяти, возможностям, количеству ножек и т. п.) - выберите из таблицы один, максимально подходящий для Вас. Я со своей стороны рекомендую те, которые поддерживают отладку debugWIRE - это семейство ATtiny и ATmega, для них есть возможность относительно недорого купить внутрисхемный эмулятор Atmel AVR JTAGICE mkII (коммерческое название AT JTAGICE2). Я выбрал ATmega16 и ATtiny24 (потом еще зацепил и ATtiny45).

2. Скачайте из Интернета datasheet для выбранного микроконтроллера, попытайтесь найти его перевод на русский. Сейчас информацию на русском найти уже не составляет большого труда. Проштудируйте даташит, новые сведения оттуда, которые считаете важными и нужными, законспектируйте - это поможет запомнить материал, а также пользоваться потом конспектом как удобным справочником.

3. Выберите IDE и инструменты для написания программ. Советую:

- AVR Studio 4AVR Studio 5, см. [2].
Позволяет писать проги на популярном C и на голом ассемблере. Доступен для бесплатного использования, поддерживает внутрисхемный эмулятор Atmel AVR JTAGICE mkII и другие, встроенный отладчик (симулятор). Работает совместно с пакетом WinAVR, образуя мощную среду компиляции и программных библиотек. Доступна отладка по исходному коду C, ASM, дизассемблированным инструкциям машинного кода (см. [4]).

- IAR Embedded Workbench AVR v. 4.12 (или более поздняя).
Платная программа, поддерживает внутрисхемный эмулятор AVR JTAGICE mkII и другие, есть ассемблер и C, много возможностей.

- CodeVisionAVR
C Compiler, Integrated Development Environment, Automatic Program Generator и In-System Programmer (ISP) для Atmel AVR Family of Microcontrollers Version:  1.25.2 Beta1 Standard
В бесплатной версии достаточно возможностей, есть поддержка Atmel’s In-Circuit Emulators: ICE200, JTAG-ICE(правда, непонятно, поддерживается ли AT JTAGICE2).

- Visual Micro Lab или VMLAB Release 3.12
 Бесплатная продвинутая система отладки без внутрисхемного эмулятора.

- BASCOM-AVR
Просто сказать "продвинутая IDE с языком программирования Basic" - значит не сказать ничего. Посетите сайт разработчика, скачайте, попробуйте. См. также [5].

[Ссылки]

1. AVR: полезные ссылки.
2. AVR Studio 4.13, 4.14, 4.19, 5.0 и не только
3Atmel AVR JTAGICE mkII.
4. AVR JTAGICE mkII: отладка программы ATtiny24, ATtiny45 на CAVR JTAGICE mkII: отладка программы ATmega16 на C.
5. BASCOM-AVR IDE.