Программирование AVR Микроконтроллеры AVR Tue, March 19 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Микроконтроллеры 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.

 

Комментарии  

 
0 #1 SeLF 07.02.2010 22:16
Подскажите пожалуйста, чем отличается MCS51 от PIC16F84A! Очень надо! А я в этом вообще ничего не понимаю!

microsin: очень хочу ответить на Ваш вопрос, и не знаю, как это сделать в двух словах. Но попытаюсь - ОТЛИЧАЮТСЯ ВСЕМ. Начиная с того, что MCS51 - это легендарное семейство микроконтроллер ов Intel (уже морально устаревшее), а PIC16F84A - всего лишь один из многочисленных представителей другого семейства (постепенно устаревающего) микроконтроллер ов - PIC от компании Microchip. То есть это абсолютно разные архитектуры как по внутреннему устройству, так и по времени появления.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page