Компьютерные подсказки

Вылетает Сталкер: Зов Припяти Программа икс рей 1

Stalker lost alpha гид по прохождению

Pony Express отслеживание почтовых отправлений

Pony Express – время и сроки доставки с Алиэкспресс в Россию

Застряли посылки с Алиэкспресс со статусом Hand over to airline: что делать?

РФ (Nigma) — интеллектуальная поисковая система

Данные для семантики — Яндекс Вордстат

Пиар ВКонтакте при помощи бирж: особенности и использование

Почему я не могу отправить сообщение?

Предупреждение «Подключение не защищено» в Google Chrome по протоколу https Нарушена конфиденциальность данных яндекс браузер

Всё что известно о смартфоне Samsung Galaxy S9 Аккумуляторная батарея Galaxy S9 и мощность

Темы оформления и русификация форума SMF, а так же установка компонента JFusion в Joomla

Автоматическое определение движка форума Позже board powered by smf

Коды в игре скайрим - зелья, ингредиенты, заклинания Код на ингредиенты скайрим

Подробная инструкция, как в "скайриме" открыть дверь золотым когтем

Интегрированная отладочная среда AVR Studio фирмы Atmel. От Arduino и wiring к AVR Studio и чистому СИ Авр студио на русском

Atmel Studio – это интегрированная платформа разработки, которая предоставляет возможность проектировать и отлаживать приложения, разработанные для микроконтроллеров Atmel на базе архитектуры ARM процессоров серии Cortex-M. Atmel Studio представляет собой цельную, простую в работе среду, предоставляющую возможность отладки и компоновки приложений, созданных на языке C/C++ либо на ассемблере. В нее встроена объёмная библиотека абсолютно бесплатного исходного кода Atmel Software Framework, в составе которой наличествует более 1600 проектов для ARM и AVR архитектур. Наличие такой библиотеки является отличным бонусом для любого программиста. Данную IDE можно использовать для программирования всего разнообразия микроконтроллеров на основе AVR, а также флеш-микроконтроллеров на базе Atmel SAM3, в которых используются ядра Cortex-M3, Cortex-M4.

Atmel Studio также включает в себя инструменты, которые сильно облегчат жизнь любому программисту. В платформу встроены такие решения, как Atmel Spaces и Atmel Gallery. Atmel Gallery – онлайн-магазин инструментов разработки и интегрируемого программного обеспечения. Atmel Spaces представляет собой пространство в облаке, предназначенное для кооперативной разработки и хранения файлов проектов аппаратного и программного обеспечения для микроконтроллеров Atmel.

Ключевые особенности и функции

  • является совершенно бесплатной интегрированной средой разработки;
  • поддерживает языки C/C++, а также Assembler;
  • сопровождается подробной документацией;
  • включает в себя обширную библиотеку с примерами исходного кода для различных приложений;
  • предназначена для программирования микроконтроллеров Atmel.

Специальные требования

  • тактовая частота процессора от 1,6 ГГц и выше;
  • для 32-битных систем от 1 Гб оперативной памяти;
  • для 64-битных систем от 2 Гб оперативной памяти;
  • при запуске на виртуальной машине рекомендуется дополнительно 512 Мб оперативной памяти;
  • 6 Гб свободного пространства на жестком диске.

Что нового в этой версии?

7.0.790 (25.02.2016)

  • добавлена поддержка расширенного дебаггера (EDBG);
  • добавлена поддержка профилей настроек интерфейса. Переключаться между профилями можно при помощи клавиш в панели настроек;
  • добавлена возможность импорта библиотек в ранее импортированные проекты. Добавлена поддержка Arduino Zero и Zero Pro;
  • теперь параллельная сборка включена по умолчанию;
  • обновлена прошивка для Xplained Mini;
  • исправлена работа функции "Показать все файлы" в Solution Explorer.


Здравствуйте.

Эта статья придётся по душе тем, кто считает, что «вырос» из ардуино и готов шагнуть в мир «серьёзного» программирования микроконтроллеров. Помимо того, что вы «прокачаете скил» программиста, у вас появится возможность выбирать любой микроконтроллер для своих проектов, и конечно же вы оцените скорость работы программ и размер занимаемой ими памяти.

Описано будет всё (для    ) , от начала и до конца, - установка и подготовка необходимого программного обеспечения, сборка простейшего программатора «Громова» (не стоит пугаться, там всего три диода и семь резисторов) , прошивка МК и написание кода в AVR Studio. Весь процесс будет сопровождаться иллюстрациями и примерами.

Сразу оговорюсь, компьютер должен быть оснащен СОМ-портом (переходник USB to COM плохо работает). Если у вашего компьютера сзади нет такого разъёма, то он наверняка есть на материнской плате (в виде штырьков), тогда всё решается вот таким «выбросом»

Увы, для владельцев ноутбуков без СОМа, статья представляет лишь академический интерес.

Итак начнём…

Что понадобится?

«Софт»


UniProf - универсальная программа для прошивки различных микроконтроллеров ATmega, простая и удобная, а главное, отлично работающая с нашим программатором. Автор - российский разработчик Михаил Николаев .

Конечно, прошивать МК можно и из AVR Studio, но для этого нужен специальный программатор. Поэтому писать код мы будем в студии, а полученные hex-файлы прошивать UniProf`ом посредством нашего самодельного программатора. Помимо этого будет описан способ прошивки из командной строки.

Пользователям Linux придётся воспользоваться либо виртуалкой, либо Wine. У меня с вайном не получилось, ни в какую не видится порт, а с виртуалкой я не пробовал.

  В Wine работает без нареканий (Debian 8.5, wine1.6) .

Весь софт бесплатный.

«Железо»

Эксперименты будем ставить над Arduino pro mini с микросхемой ATmega328. Частота кварца (8/16Мгц) , равно как и напряжение (3.3/5v) , не имеют значения. (см. ниже)

В дальнейшем вы будете программировать различные МК фирмы Atmel, но для первого раза эта плата самое то. Она хороша тем, что практически, это голый контроллер с минимальной «обвязкой» и распаяннами пинами. Как раз то, что нужно.

О маркировках на микроконтроллерах

После названия идут цифры, которые, чаще всего, показывают объём памяти.

Буква после цифр указывает на параметры питающего напряжения.

Нет буквы - напряжение питания контроллера находится в пределах 4,5-5,5 вольт.
L - версии контроллеров, работающих на пониженном (Low) напряжении питания (2,7 - 5,5 вольт).
V - версии контроллеров, работающих на низком напряжении питания (1,8-5,5 вольт) .
U - версии контроллеров, работающих на сверхнизком напряжении питания (0,7-5,5 вольт) .
P - малопотребляющие версии (до 100 нА в режиме Power-down) .
A - уменьшен ток потребления, перекрывается весь диапазон тактовых частот всех версий, напряжение питания 1,8-5,5 вольт (в некоторых моделях, добавлены новые возможности и новые регистры. При этом сохранена полная совместимость с предыдущими версиями) .

Микроконтроллеры «А » и «не-А » обычно имеют одинаковую сигнатуру, что вызывает некоторые трудности, так как Fuse-bit’ы отличаются.

Примеры:

ATmega8 - объем памяти программ 8 килобайт, напряжение питания - 4,5-5,5 вольт.
ATmega8L - объем памяти программ 8 килобайт, напряжение питания - 2,7-5,5 вольт.
ATtiny43U - объем памяти 4 килобайта, модификация - 3, напряжение питания - 0,7-5,5 вольт.
ATtiny44А - объем памяти 4 килобайта, модификация - 4, уменьшенный ток потребления, напряжение питания 1,8-5,5 вольт.

Бывает так, что контроллер без буквы может иметь пониженное напряжение питания (1,7 или 1,8 вольт). Это надо уточнять в даташите.

ATtiny841 - объем памяти 8 килобайт, модификация - 41, напряжение питания - 1,7-5,5 вольт.

После дефиса указывается вариант исполнения микроконтроллера, состоящий из цифр, обозначающих максимальную частоту контроллера (при соответствующем напряжении питания) , и из букв, обозначающих вариант корпуса, температурный диапазон работы, и особенности изготовления.

Одна или две буквы идущие после частоты обозначают тип корпуса:

UniProf
Написать программу это пол дела, надо её ещё в контроллер как-то впихнуть. Вот и уделим этому побольше внимания.

Хорошо бы было, чтоб в вашу ардуину был залит стандартный Blink (с «завода» она с ним и поставляется).

Запускаем UniProf… Возможно выскочит такое окно:

Это связано с LPT-портом, так что просто нажмите ОК .

Следом откроется окно программы:

Если порт выбран не правильно, то появится окно с предложением…

Нажмите ОК и выберите нужный порт.

Если МК не определился автоматически, тогда появится окно с ручным выбором:

К сожалению в списке нету atmega328 , поэтому выбираем mega32 (у них одинаковый объём flash-памяти ) и жмём ОК .

После этого, вместо надписи unknown появится подключённый контроллер…

32K - это объём Флеш-памяти, а 1024 - объём EEPROM.

Теперь, если у вас всё как на картинке, тогда откройте справку   и внимательно ознакомьтесь с тем, что там написано. Автор был весьма лаконичен, так что много времени это не займёт. Кнопки пока не нажимайте.

Ознакомились? Отлично, теперь можем двигаться дальше. Уберите «галочку» возле EEPROM и увидите изменившийся интерфейс:

После снятия «галки» EEPROM, чтение и запись этой области памяти не производится.

Поскольку мы будем оперировать hex-файлами, то уберём «галочки» General и BIN , а так же установим «галочку» Тормоз! , это увеличит время чтения/записи, но зато повысит стабильность.

Процесс не быстрый так что придётся подождать. Внизу будет ползти синие квадратики и в правом нижнем углу отсчитываться циферки. За первый проход прочитается область PROGRAM, а за второй EEPROM.

У меня новая ардуина с зашитым в неё стандартным Blink`ом (при подключении программатора диод перестанет мигать) . Если у вас то же самое, то взору предстанет такая картина:

Справа мы видим что в EEPROM ничего нет, а слева, в PROGRAM, записанная программа (как я уже говорил, это Blink) . Теперь стрелочкой «вниз» прокрутите ползунок до того как данные закончаться…

… а теперь прокрутите до конца. Вы увидите ещё данные, - это ардуиновский bootloader.

Сейчас я предлагаю отвлечься от моей статьи и почитать про устройство МК вот , это сильно приумножит понимание материала. Написано всё очень хорошо и понятно. Ну, а как прочтёте - возвращайтесь обратно и продолжим...

Снимите «галочку» с EEPROM . Она нам особо то и не нужна, зато будет видно, что стоит «галочка» Тормоз!

Теперь давайте сохраним всё что прошито в контроллере, чтоб после экспериментов была возможность вернуть его в исходное состояние.

Нажмите кнопку   и сохраните прошивку назвав её как-нибудь типа - origProMini328.hex . Всё, теперь у вас есть бекап.

… и следом нажмите уже знакомую кнопку Read . После этого Вы увидите что все ячейки в PROGRAM пустые. Удалена не только программа, но и ардуиновский bootloader.
То есть теперь вы не сможете загружать скетчи традиционным методом. Потом, если захотите, легким мановением руки восстановите всё из бекапа.

Сейчас мы прошьём контроллер таким же «Blink`ом», только написаным в AVR Studio.

Вот так выглядит код:

#define F_CPU 16000000UL #include #include #define PIN_PB5 5 // PB5 (ардуина - D13) #define PIN_PB5_PORT PORTB #define PIN_PB5_DDR DDRB int main(void) { PIN_PB5_DDR = 1 << PIN_PB5; // устанавливаем PIN_PB5 (PB5 (ардуина - D13)) как ВЫХОД while(1) { PIN_PB5_PORT = 1 << PIN_PB5; _delay_ms(300); PIN_PB5_PORT = 0 << PIN_PB5; _delay_ms(300); } return 0; }
Если вы используете ардуину с кварцем на 8Мгц, то в этом нет ничего страшного, просто диод будет мигать в два раза реже.

А вот, сколько он занимает места:

AVRDude

Uniprof как и многие другие, похожие программы, являются лишь графической надстройкой над программой AVRDude (AVR Downloader-Uploader) , которая то и выполняет все выше описанные действия над микроконтроллером.
Поскольку AVRDude не имеет собственного графического интерфейса с ней нужно работать из командной строки. Кому-то это может показаться неудобным, однако всё как раз наоборот, работа из консоли просто великолепна. Удобство, проста и отсутствие привязки к какой либо ОС, ибо avrdude существует, наверно, для всего. Сейчас вы в этом убедитесь.

Для пользователей

Avrdude входит в состав AVR toolchain, поэтому установите его (предварительно установив AVR Studio) как написано в начале статьи.

Cd \
… перейдите в корень диска С .

Введя команду:

Если всё так, тогда avrdude готов к работе и можно продолжать.

Теперь нужно добавить наш программатор в конфигурационный файл avrdude (C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin\avrdude.conf ) . Откройте его в программе Notepad++ и после надписи «PROGRAMMER DEFINITIONS» добавьте вот такие строки:

Programmer id = "gromov"; desc = "serial port banging, reset=dtr sck=rts mosi=txd miso=cts"; type = serbb; reset = 4; sck = 7; mosi = 3; miso = 8; ;
Bit-banging .

Сохраните и закройте файл, он больше не нужен.

Вернитесь в терминал и дайте команду проверки связи МК с программатором:

Avrdude -n -c gromov -P com1 -p m328p
У вас может быть другой сом-порт.

Установите avrdude

Sudo apt install avrdude

Введя команду:

Вы должны увидеть справочную информацию.

Если всё так, тогда avrdude готов к работе.

Настройте порт:

Sudo stty 9600 ignbrk -brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo noflsh Это надо делать после каждого ребута компа, ну или в rc.local добавьте.

Где /dev/ttyS0 - это com1 , /dev/ttyS1 - com2 и т.д.
В дальнейшем, в командах я буду писать /dev/ttyS0 , у вас может быть /dev/ttyS1 и т.д.

Добавьте программатор в конфигурационный файл /etc/avrdude.conf

Sudo nano /etc/avrdude.conf

После надписи «PROGRAMMER DEFINITIONS» добавьте вот такие строки:

Programmer id = "gromov"; desc = "serial port banging, reset=dtr sck=rts mosi=txd miso=cts"; type = "serbb"; reset = 4; sck = 7; mosi = 3; miso = 8; ;
Программатор использует технологию Bit-banging .

Следите за тем, чтоб при копировании, кавычки оставались именно кавычками, а то они могут изменится (из-за разницы кодировок) и avrdude будет ругаться.

Сохраните и закройте файл.

Дайте команду проверки связи МК с программатором:

Sudo avrdude -n -c gromov -P /dev/ttyS0 -p m328p

Если связь есть, то ответ будет такой:

Здесь различия между операционными системами заканчиваются и команды продублированы.

Добавим к команде аргумент -v или -v -v (можно добавлять к любым командам) для вывода полной информации:

Avrdude -n -v -c gromov -P com1 -p m328p ###WIN###
sudo avrdude -n -v -c gromov -P /dev/ttyS0 -p m328p ###Linux###


Вывод avrdude, что в windows, что в linux одинаковый, поэтому далее скрины буду делать только в win.

Тут уже больше информации, например, видно какие установлены фьюзы. Здесь они выводятся в шестнадцатеричных (HEX) числах. Например hfuse 0xDA, в двоичной системе выглядит так - . То есть это те самые биты, которые выставляются «галочками» в графических интерфейсах.

Когда будете разбираться с фьюзами, помните, в микроконтроллерах ATmega фьюзы инвертированы. То есть 0 - это вкл ючено, а 1 - откл ючено. В онлайн-калькуляторах из-за этого возникают непонятки (см. ниже).

Прочитаем прошивку из области flash (то же самое, что и PROGRAM в uniprof) командой:

Avrdude -c gromov -P com1 -p m328p -U flash:r:readfl.txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:r:readfl.txt:h ###Linux###

В uniprof код показывался в программе, а здесь он будет записан в файл.

Прошивка считана и записана в файл readfl.txt . Буква h (hex) в конце, указывает на то, что данные надо записать в шестнадцатеричном формате. Если написать букву b (binary) , запишется в двоичной системе, а если r (raw) , то данные будут в «сыром» виде (крякозябры).

Отсюда и далее предполагается, что win-пользователи находятся в корне диска С (C:\) , а linux-юзеры работают из домашней папки, соответственно файлы будут сохраняться туда же (если не прописать иного пути) . Прошивки, которые будут заливаться в МК, должны лежать там же.

Для win файл будет лежать здесь C:\readfl.txt, а для linux, в /home/user/readfl.txt. Можете открыть этот файл и поглядеть.

Чтение EEPROM:

Avrdude -c gromov -P com1 -p m328p -U eeprom:r:reader.txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U eeprom:r:reader.txt:h ###Linux###

Чтение flash и eeprom вместе:

Avrdude -c gromov -P com1 -p m328p -U flash:r:readfl.txt:h -U eeprom:r:reader.txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:r:readfl.txt:h -U eeprom:r:reader.txt:h ###Linux###

Стирание контроллера:

Avrdude -e -c gromov -P com1 -p m328p ###WIN###
sudo avrdude -e -c gromov -P /dev/ttyS0 -p m328p ###Linux###

Отключите ножку «ресет» - диод мигать не будет, программа стёрта.

Прошьём МК скаченным ранее файлом 328test.hex . Лежит в корне диска C (c:\328test.hex) в windows или в домашней папке (/home/user/328test.hex) в linux.

Avrdude -c gromov -P com1 -p m328p -U flash:w:328test.hex ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:w:328test.hex ###Linux###

Теперь если отключить «ресет», контроллер оживёт.

Обратите внимание. При прошивке МК через avrdude , стирать контроллер необязательно, программа делает это сама. Однако если указать параметр -D , тогда МК не будет очищаться автоматически.

Прошивка EEPROM:

Avrdude -c gromov -P com1 -p m328p -U eeprom:w:eeprom.hex ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U eeprom:w:eeprom.hex ###Linux###

Чтение всех фьюзов:

Avrdude -c gromov -P com1 -p m328p -U hfuse:r:hfuse.txt:h -U lfuse:r:lfuse.txt:h -U lock:r:lock.txt:h -U efuse:r:efuse.txt:h ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U hfuse:r:hfuse.txt:h -U lfuse:r:lfuse.txt:h -U lock:r:lock.txt:h -U efuse:r:efuse.txt:h ###Linux###

У каких-то контроллеров может не быть каких-то фьюзов.

Чтение только Low fuse:

Avrdude -c gromov -P com1 -p m328p -U lfuse:r:lfuse.txt:h ###WIN###
sudo avrdude -c gromov -P com1 -p m328p -U lfuse:r:lfuse.txt:h ###Linux###

Low fuse отвечает за выбор источника тактового сигнала (внутренний, внешний), его частоту и за паузу перед стартом контроллера после подачи на него питания. Сейчас у вас там записано значение - 0xff , что соответствует внешнему кварцу от 8-ми и выше МГц.

Сейчас мы прошьём другой lfuse, который переведёт вашу ATmeg`у на работу от внутреннего генератора на 8Мгц.

Avrdude -c gromov -P com1 -p m328p -U lfuse:w:0xe2:m ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U lfuse:w:0xe2:m ###Linux###

Если у вас ардуина на 16МГц, то диод будет мигать в два раза медленней.
В дальнейшем, при кодинге в AVR Studio, можно указывать частоту 8 МГц, а кварц отпаять, тем самым заполучив в своё распоряжение еще два свободных цифровых пина.

Но это потом, а сейчас вернём все как было прошив прежний фьюз:

Avrdude -c gromov -P com1 -p m328p -U lfuse:w:0xff:m ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U lfuse:w:0xff:m ###Linux###

Диод будет мигать правильно.

Фьюзы можно прошивать как по отдельности так и вместе:

Avrdude -c gromov -P com1 -p m328p -U hfuse:w:0xda:m -U lfuse:w:0xff:m -U efuse:w:0x05:m ###WIN###
sudo avrdude -c gromov -P /dev/ttyS0 -p m328p -U hfuse:w:0xda:m -U lfuse:w:0xff:m -U efuse:w:0x05:m ###Linux###
Эти команды давать не нужно. Привожу их для наглядности.

В дальнейшем, когда потребуется использовать другие контроллеры, будете в онлайн-калькулятре расставлять «галочки», получать значения (по ссылке они в верхнем левом углу) в hex-формате и прошивать.

Теперь осталось разобраться с параметрами avrdude и можно будет переходить к заключительной части.

-c gromov - тип программатора, вернее название под которым он записан в конфиге (avrdude.conf) .
-P com1 - ну тут всё и так понятно.
-p m328p - обозначение тип МК.
-U - после этой опции указывается область памяти (flash, eeprom, xfuse) , над которой будет производится какие-либо действия (r - чтение, w - запись) .
Двоеточия служат разделителями.

Вот , с названиями микроконтроллеров и их псевдонимами, программаторами и прочими опциями.

Псевдонимы МК

uc3a0512 - AT32UC3A0512
c128 - AT90CAN128
c32 - AT90CAN32
c64 - AT90CAN64
pwm2 - AT90PWM2
pwm2b - AT90PWM2B
pwm3 - AT90PWM3
pwm316 - AT90PWM316
pwm3b - AT90PWM3B
1200 - AT90S1200 (****)
2313 - AT90S2313
2333 - AT90S2333
2343 - AT90S2343 (*)
4414 - AT90S4414
4433 - AT90S4433
4434 - AT90S4434
8515 - AT90S8515
8535 - AT90S8535
usb1286 - AT90USB1286
usb1287 - AT90USB1287
usb162 - AT90USB162
usb646 - AT90USB646
usb647 - AT90USB647
usb82 - AT90USB82
m103 - ATmega103
m128 - ATmega128
m1280 - ATmega1280
m1281 - ATmega1281
m1284p - ATmega1284P
m1284rfr2 - ATmega1284RFR2
m128rfa1 - ATmega128RFA1
m128rfr2 - ATmega128RFR2
m16 - ATmega16
m161 - ATmega161
m162 - ATmega162
m163 - ATmega163
m164p - ATmega164P
m168 - ATmega168
m168p - ATmega168P
m169 - ATmega169
m16u2 - ATmega16U2
m2560 - ATmega2560 (**)
m2561 - ATmega2561 (**)
m2564rfr2 - ATmega2564RFR2
m256rfr2 - ATmega256RFR2
m32 - ATmega32
m324p - ATmega324P
m324pa - ATmega324PA
m325 - ATmega325
m3250 - ATmega3250
m328 - ATmega328
m328p - ATmega328P
m329 - ATmega329
m3290 - ATmega3290
m3290p - ATmega3290P
m329p - ATmega329P
m32u2 - ATmega32U2
m32u4 - ATmega32U4
m406 - ATMEGA406
m48 - ATmega48
m48p - ATmega48P
m64 - ATmega64
m640 - ATmega640
m644 - ATmega644
m644p - ATmega644P
m644rfr2 - ATmega644RFR2
m645 - ATmega645
m6450 - ATmega6450
m649 - ATmega649
m6490 - ATmega6490
m64rfr2 - ATmega64RFR2
m8 - ATmega8
m8515 - ATmega8515
m8535 - ATmega8535
m88 - ATmega88
m88p - ATmega88P
m8u2 - ATmega8U2
t10 - ATtiny10
t11 - ATtiny11
t12 - ATtiny12
t13 - ATtiny13
t15 - ATtiny15
t1634 - ATtiny1634
t20 - ATtiny20
t2313 - ATtiny2313
t24 - ATtiny24
t25 - ATtiny25
t26 - ATtiny26
t261 - ATtiny261
t4 - ATtiny4
t40 - ATtiny40
t4313 - ATtiny4313
t43u - ATtiny43u
t44 - ATtiny44
t45 - ATtiny45
t461 - ATtiny461
t5 - ATtiny5
t84 - ATtiny84
t85 - ATtiny85
t861 - ATtiny861
t88 - ATtiny88
t9 - ATtiny9
x128a1 - ATxmega128A1
x128a1d - ATxmega128A1revD
x128a1u - ATxmega128A1U
x128a3 - ATxmega128A3
x128a3u - ATxmega128A3U
x128a4 - ATxmega128A4
x128a4u - ATxmega128A4U
x128b1 - ATxmega128B1
x128b3 - ATxmega128B3
x128c3 - ATxmega128C3
x128d3 - ATxmega128D3
x128d4 - ATxmega128D4
x16a4 - ATxmega16A4
x16a4u - ATxmega16A4U
x16c4 - ATxmega16C4
x16d4 - ATxmega16D4
x16e5 - ATxmega16E5
x192a1 - ATxmega192A1
x192a3 - ATxmega192A3
x192a3u - ATxmega192A3U
x192c3 - ATxmega192C3
x192d3 - ATxmega192D3
x256a1 - ATxmega256A1
x256a3 - ATxmega256A3
x256a3b - ATxmega256A3B
x256a3bu - ATxmega256A3BU
x256a3u - ATxmega256A3U
x256c3 - ATxmega256C3
x256d3 - ATxmega256D3
x32a4 - ATxmega32A4
x32a4u - ATxmega32A4U
x32c4 - ATxmega32C4
x32d4 - ATxmega32D4
x32e5 - ATxmega32E5
x384c3 - ATxmega384C3
x384d3 - ATxmega384D3
x64a1 - ATxmega64A1
x64a1u - ATxmega64A1U
x64a3 - ATxmega64A3
x64a3u - ATxmega64A3U
x64a4 - ATxmega64A4
x64a4u - ATxmega64A4U
x64b1 - ATxmega64B1
x64b3 - ATxmega64B3
x64c3 - ATxmega64C3
x64d3 - ATxmega64D3
x64d4 - ATxmega64D4
x8e5 - ATxmega8E5

Пользователи линукс могут воспользоваться wine.

Надеюсь у вас уже всё установлено, поэтому запускаем AVR Studio…


Здесь нам предлагается создать новый проект, либо открыть старый. Нажимаем New Project


Выбираем AVR GCC , так как писать будем на СИ, а не на ассемблере.
Даём название проекту и ставим «галочки».
Выбираем Location (я создал папку AVR на диске С:\) там будут автоматически создаваться папки с проектами.
Нажимаем Next


Выбираем AVR Simulator , так как у нас нету специального программатора, позволяющего вести отладку, и наш микроконтроллер - ATmega328p .
Жмём Finish .

После этих манипуляций студия готова к работе.

Слева - пути к проекту. По центру - текстовый редактор, в котором пишется код. Справа - регистры контроллера. Внизу-слева отладочная информация.

Из кнопочек нам пока интересны эти -

Сборка проекта.
Сборка проекта и запуск отладки.
Компиляция файла.
Очистка.
Настройка проекта. Вот её то и нажмите…

Здесь можно изменить тип МК, установить тактовую частоту (мы её пропишем прямо в коде) , уровень оптимизации, а так же определить, какие файлы будут создаваться.
Пощёлкайте для интереса иконки слева и нажмите Отмена .
Я не буду объяснять эти и другие опции, а позже дам ссылку с грамотным описанием.

Теперь скопируйте код написанный в начале статьи и вставьте его в редактор:

Тактовую частоту, мы прописали в коде потому, что этого требует библиотека delay.h .

Сборка прошла успешно, ошибок и предупреждений нет.

Теперь отправляемся по пути C:\AVR\my328\default\ , находим там сотворённый нами   hex-файл - my328.hex и прошиваем его в контроллер. Чем прошивать (avrdude или uniprof) выбирайте сами.

В avrdude это будет выглядеть так:

Avrdude -c gromov -P com1 -p m328p -U flash:w:\AVR\my328\default\my328.hex ###WIN###
avrdude -c gromov -P /dev/ttyS0 -p m328p -U flash:w:my328.hex ###Linux###

Отключите «ресет» и увидите как диод мигает раз в секунду. Надеюсь, что убедил вас в простоте и удобстве командной строки.

Чтобы обратно сделать ардуину ардуиной у вас есть бекап.

Как уже было написано выше, я не буду вдаваться в объяснения работы с AVR Studio, равно как и давать уроки по языку СИ. Во-первых, это не входило в мои планы (я лишь хотел помочь осуществить переход от Arduino к AVR Studio)

IDE – это интегрированная среда разработки, в состав которой включены разные шаблоны, библиотеки и функции отладчика. Если говорить о , с 2004 для них разрабатывался мощный программный пакет AVR studio.

Первые версии

В первых версиях студии присутствовал ассемблер для , вы можете его извлечь из первых сборок, однако позже этот проект был заброшен, а в качестве основного языка избран C AVR. Компилятором был платный и очень серьезный продукт IAR. Вы можете скачать бесплатный WINAVR, для этого после установки студии нужно проинсталлировать его.

Обратите внимание! Лучше это делать только после установки AVR studio 4 и других версий.

Долгое время фигурировала AVR studio 4 (на фото выше). Многие разработчики микроконтроллеров сталкивались с ней. Позже IDE модернизировали до AVR studio 5. Кроме интерфейса, особых изменений не было, а уже потом компания разработчик сделала ребрендинг продукта и изменила название на Atmel studio 6.

Среда AVR studio 5 поддерживала следующие микроконтроллеры:

  • AVR32;
  • XMEGA.

Atmel studio 6 отличалась от AVR studio 5 значительно, самые заметные нововведения версии:

  1. Microsoft Visual Studio 2010 стал работать с семейством AVR.
  2. Улучшенная, по сравнению с AVR studio 5, подсветка синтаксиса.
  3. Добавлены подсказки и автозавершение набора команд, что ускоряет процесс разработки.
  4. В целом, вся работа среды стала надежнее.
  5. Добавлена поддержка ARM Cortex-M.
  6. WinAVR не нужно больше устанавливать отдельно, GCC теперь устанавливается в процессе инсталляции, в отличие от младших версий.

В Atmel studio 6 произошел скачек в лучшую сторону для пользователя программы, что сказалось на популярности семейств Атмела. Однако адекватной поддержки русских символов в путях к файлам добиться так и не удалось.

Актуальная версия – Atmel studio 7

Среду разработки кардинально использовал Visual Studio Isolated Shell 2015; с одной стороны, это решение не поддерживается на Windows XP, с другой – эти меры были предприняты для улучшения как внешнего вида программы, так и функционального.

Пожалуй, самым знаменательным стало добавление поддержки Arduino в Atmel studio 7. Это значит, что вы можете перейти от набора простейших скетчей к использованию всех функций C, отладки, симулятора МК и прочим функциям. Совмещение Arduino и Atmel studio 7 дало новый виток в развитии этой простой обучающей платформы.

Изучение Atmel studio с Arduino даст возможность перейти к полному и продуктивному освоению и более глубокому знакомству с сердцем ардуины – микроконтроллером Atmega.

Дополнительно с сайта Atmel можно скачать пакет для работы и подключения LCD. В качестве примера для освоения можно использовать LCD 1602, в интернете по нему много уроков, а разработчику на дисплее доступно 16 символов и 2 строки.

С чего начать освоение?

Начинать стоит, конечно же, с покупки программатора; самый бюджетный – это – USBASP. Программатор USBASP не поддерживается в Atmel Studio 7.


Скачивайте драйвера на программатор и программу AVRdude, а чтобы заставить это все работать вместе, можно через командную строку воспользоваться командой:

«avrdude -c usbasp -p atmega32 -U flash:w:название файла с прошивкой. hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m»

и подключить его поддержку, создав профиль в atmel studio 7 (title – external tools), а в пункт Arguments ввести «-c usbasp -p atmega32 -U flash:w:$(TargetName).hex» и так для каждого типа используемых вами микроконтроллеров.

Только таким образом можно связать студио и программатор USBASP. Будьте внимательны при перепрошивке – вы можете повредить сигнатуру микроконтроллера, а восстановить её можно будет только 12 В (высоковольтным) программатором.

Какую литературу использовать для обучения?

В первую очередь скачивайте руководства с официального сайта к каждому из микроконтроллеров. Посоветовать конкретный учебник сложно, однако есть «DI Halt – AVR. Учебный курс» им можно пользоваться – создатель этого материала практик, автор многих статей на различных интернет ресурсах и просто уважаемый в кругах специалистов человек.

Корпорация Atmel анонсировала новую полностью интегрированную среду разработки ориентированную на растущее сообщество пользователей, общей численностью более 100.000 для 8 - и 32-разрядных AVR ® микроконтроллеров (MCU) для встраиваемых приложений. Новый продукт Atmel AVR Studio 5 является расширенной версией популярной среды разработки Atmel с поддержкой всех 8 - и 32-разрядных AVR микроконтроллеров, что позволяет вести разработки значительно более эффективно, и осуществлять плавный переход между 8 и 32-разрядными микроконтроллерами AVR.

AVR Studio ® 5 делает редактирование и отладку исходного кода проще, сочетая редактор для написания кода, мастера для быстрого создания новых проектов, библиотеки готовых проектов (более 400), GNU C / C + + компилятор, мощный симулятор, и визуализированный интерфейс для всех AVR программаторов и внутрисхемных отладчиков. AVR Studio 5 объединяет в себе лучшие черты текущих версий AVR Studio4 для 8-битных и 32-разрядной версии AVR32 Studio в одной среде, которая охватывает все 8-и и 32-разрядные микроконтроллеры AVR. Она также дает пользователю легкий доступ к онлайн-документации, включая datasheet, руководство пользователя и примеры проектов. AVR Studio 5 также предусматривает подключение плагинов сторонних разработчиков.

Интегрированная в AVR Studio 5.0 Software Framework , библиотека в исходных кодах для 8-разрядных AVR XMEGA ® и 32-разрядных микроконтроллеров AVR UC3 с более чем 400 полных примеров приложений и полным набором драйверов для периферии и внешних компонентов, стеки для проводной и беспроводной связи, аудио декодирование, графический рендеринг, и математические библиотеки для операций с фиксированной и плавающей точкой позволяют ускорить разработку новых приложений, избавляя от необходимости писать до 50 процентов исходного кода в проекте.

“Программисты нуждаются в интегрированных, интуитивно понятных средствах разработки”, сказал директор по развитию AVR инструментальных средств и "Atmel AVR Studio 5 полностью соответствует этим требованиям, упрощая процесс разработки и позволяя инженерам-программистам погрузиться в новый проект очень быстро с полностью примеров в источниках.

"Atmel AVR Studio 5 можно описать в трех словах: интуитивная, простая и эффективная", сказал Ингар Фредриксен , старший директор по маркетингу продуктов AVR. "AVR Studio 5 и AVR Software Framework , в сочетании с отладчиком и стартовым набором для разработки, по-настоящему является полной платформой разработки, которая поможет разработчикам воплощать свои идеи чрезвычайно быстро. Эта платформа проста в использовании и специально разработана для удовлетворения потребностей наших клиентов AVR MCU разработчиков".

При установке приложения требуется подключение к интернету.

Системные требования:

Поддерживаемые операционные системы
. Windows XP (x86) with Service Pack 3 - all editions except Starter Edition
. Windows Vista (x86) with Service Pack 1 - all editions except Starter Edition
. Windows XP (x64) with Service Pack 2
. Windows Vista (x64) with Service Pack 1,
. Windows 7 (x86 and x64)
. Windows Server 2003 R2 (x86 and x64)

Требования к оборудованию:
. Computer that has a 1.6GHz or faster processor
. 1 GB RAM for x86
. 2 GB RAM for x64
. An additional 512 MB RAM if running in a Virtual Machine
. 3GB of available hard disk space
. 5400 RPM hard disk drive
. DirectX 9-capable video card that runs at 1024 x 768 or higher display resolution

AVR Studio 4 - новая профессиональная интегрированная среда разработки (Integrated Development Environment - IDE), предназначенная для написания и отладки прикладных программ для AVR микропроцессоров в среде Windows 9x/NT/2000. AVR Studio 4 содержит ассемблер и симулятор. Также IDE поддерживает такие средства разработки для AVR как: ICE50, ICE40, JTAGICE, ICE200, STK500/501/502 и AVRISP. В ближайшие месяцы будет расширен список поддерживаемых AVR Studio 4 микроконтроллеров и средств разработки. Обо всех обновлениях можно будет узнать на интернет сайте.

AVR Studio поддерживает COFF как формат выходных данных для символьной отладки. Другие программные средства третьих фирм также могут быть сконфигурированы для работы с AVR Studio.

Окно исходного текста программ

Ключевое окно в AVR Studio это окно исходного текста программы. Когда объектный файл открыт, автоматически создается окно исходного текста программ. В окне отображается код, который выполняется в отладочном окружении (эмуляторе или программном симуляторе) а текстовый маркер всегда находится на строке, которая будет выполнена в следующем цикле.

Выполнение программ и пошаговый режим

Пользователь может выполнять программу полностью в пошаговом режиме, трассируя блоки функций, или выполняя программу до места, где стоит курсор. В дополнение можно определять неограниченное число точек останова, каждая из которых может быть включена или выключена. Точки останова сохраняются между сессиями работы.

Просмотр регистров

В окне исходного текста программы выводится информация о процессе выполнения программы. В дополнение, AVR Studio имеет много других окон, которые позволяют управлять и отображать информацию о любом элементе микроконтроллера.

Список доступных окон:

  • Watch window: Окно показывает значения определенных символов. В этом окне пользователь может просматривать значения и адреса переменных.
  • Trace window: Окно показывает хронологию программы, выполняемой в настоящее время.
  • Register window: Окно показывает содержимое регистров. Регистры можно изменять во время остановки программы.
  • Memory windows: Окна показывают содержимое памяти программ, данных, портов ввода/вывода и энергонезависимого ПЗУ. Память можно просматривать в HEX, двоичном или десятичном форматах. Содержимое памяти можно изменять во время остановки программы.
  • I/O window: Показывает содержимое различных регистров ввода/вывода:
  • EEPROM
  • I/O порты
  • Таймеры
  • и т.д.
  • Message window: Окно показывает сообщения от AVR Studio.
  • Processor window: В окне отображается важная информация о ресурсах микроконтроллера, включая программный счетчик, указатель стека, регистр статуса и счетчик цикла. Эти параметры могут модифицироваться во время остановки программы.

Настройки рабочего окружения сохраняются при выходе. При первом запуске требуется настроить окна для управления и вывода необходимой информации. Во время следующей загрузки настройки автоматически восстанавливаются.

В AVR Studio включена поддержка отладочных средств фирмы Atmel:

  • Внутрисхемный эмулятор Atmel ICEPRO
  • Внутрисхемный эмулятор Atmel MegaICE
  • Внутрисхемный эмулятор Atmel AVRICE
  • Внутрисхемный эмулятор Atmel ICE200
  • Внутрисхемный эмулятор Atmel AsicICE
  • Внутрисхемный эмулятор Atmel ICE10
  • Внутрисхемный эмулятор Atmel ICE30

С AVR Studio также совместимы любые программаторы и отладочные средства, которые поддерживают микроконтроллеры фирмы Atmel.

Программное обеспечение:

AVR Studio 4.12 Service Pack 4 (сентябрь 2006)
Очередное обновление популярной интегрированной среды для проектирования со встроенным ассемблером и симулятором. Четвертый пакет обновления SP4 наследовал все новые возможности предыдущих обновлений SP1, SP2 и SP3. Обновлены программа, прошивка, руководство пользователя и список поддерживаемых микроконтроллеров у AVR Dragon. Также в пакет входят новые прошивки для отладочных средств JTAGICE MKII и STK500. Включена поддержка новых типов микроконтроллеров, в т.ч.: ATmega644P, ATmega329P, ATmega3290P, ATmega325P, ATmega3250P. Устранены ошибки в работе симулятора, ассемблера и JTAGICEmkII. Обратите внимание, что AVR Studio 4 SP3 и SP4 не могут работать в составе операционной системы Windows 95.
Интегрированная среда для проектирования AVR Studio 4.12 (45Mb Ноябрь 2005 г.)
AVR Studio 4.11 Service Pack 3 (27 MB, updated Май 2005 г.)
Интегрированная среда для проектирования AVR Studio 4.11 (41Mb Январь 2005 г.)
Интегрированная среда для проектирования AVR Studio 4.10 (30Mb Сентябрь 2004 г.)
Новика! AVR Studio 4.10 с обновленным ассемблером (версия 2 beta-5 (AVRASM2)), старая версия ассемблера AVRASM1 подключена по умолчанию. Обновлен симулятор AVR Studio, который теперь также поддерживает новые микроконтроллеры AVR ATmega165, ATmega649, ATmega325, ATmega3250, ATmega3290. Обновлена программная поддержка JTAGICE2, ICE50, STK500, AVRISP, JTAGICE2. Обновлен USB WinDriver с версии 6.03 на версию 6.22.
Интегрированная среда для проектирования AVR Studio 4.09 (28Mb апрель 2004 г.)
В AVR Studio 4.09 добавлена поддержка JTAGICE mkII. В сочетании с новой версией AVR Studio JTAGICE mkII является завершенным инструментальным средством для выполнения внутрикристальной отладки всех 8-разр. AVR RISC микроконтроллеров, содержащих для этой цели интерфейс JTAG или однопроводной интерфейс debugWIRE. В данную версию также добавлена поддержка новых микроконтроллеров, а также внесено несколько улучшений.
AVR Studio 4.08 SP1 (8 Мбайт, обновлено 2/04)
Это служебный выпуск AVR Studio 4, который требует предварительной инсталляции AVR Studio версии 4.08. Он добавляет поддержку симуляции и эмуляции (ICE50) нового семейства AVR -микроконтроллеров ATMega48. Полная информация об особенностях данного выпуска приведена во включенной документации, которая доступна из меню Help в AVR Studio.
AVR Studio 4.08 (26 Мбайт, обновлено 12/03)
AVR Studio 4.08 - интегрированная среда разработки (IDE), предназначенная для написания и отладки прикладных программ для AVR микропроцессоров в среде Windows 9x/NT/2000. Обновлены трассировщик, монитор стека и поддержка усовершенствованного USB для ICE40/50. Кроме того, имеется еще ряд дополнений.
12756 Kb AVR Studio V4.0
7163 Kb AVR Studio V3.56
1.31 Mb AVR LCD Visualizer версии 1.0 (обновлено 02/2004), общедоступная бета- версия.
Создание и изменение ЖКИ при помощи редактора, отладка и визуализация при помощи дополнений к программе AVR Studio. Обновление в реальном времени при работе с ICE50 и симулятором. Поддерживает ATmega169. Для установки требует наличие IDE AVR Studio версии 4.07 или более новой. Перед установкой необходимо удалить старые ЖКИ дополнения к программе.

Вам также будет интересно:

Читы и консольные команды для Counter-Strike: Global Offensive Команда в кс го чтобы летать
В этой статье мы рассмотрим некоторые из наиболее полезных и забавных консольных команд в...
Arduino и четырехразрядный семисегментный индикатор Семисегментный индикатор 4 разряда распиновка
В сегодняшней статье поговорим о 7-сегментных индикаторах и о том, как их «подружить» с...
«Рабочие лошадки» Hi-Fi: собираем бюджетную систему Хороший бюджетный hi fi плеер
Выбор плеера - это сложный процесс, иногда человек желает получить не просто коробочку,...
Как правильно пользоваться сургучными печатями
На самом деле, сургуч - это смесь смол, окрашенная в определенный цвет. Если у вас на руках...
Лагает fallout 4 как снизить графику
10 ноября состоялся релиз долгожданной игры на ПК, PlayStation 4 и Xbox One, и постепенно...