Atmel studio как прошить микроконтроллер
Перейти к содержимому

Atmel studio как прошить микроконтроллер

  • автор:

Использование программатора USBASP в Atmel Studio

Программатор AVR USB ASP ISP

Программатор USBASP является на сегодняшний день самым дешевым программатором микроконтроллеров AVR компании ATMEL и позволяет программировать большое множество микроконтроллеров серий AVR ATTiny, AVR ATMega и других. В данной статье я расскажу вам об основных особенностях использования этого программатора из под ОС Windows 7 и как настроить его работу совместно со средой разработки программ Atmel Studio на примере версии 6.1. К сожалению, по умолчанию, Atmel Studio не поддерживает этот программатор.

Установка драйвера программатора

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

Установка драйвера USBASP

Установка Avrdude

Для программирования микроконтроллеров AVR будем использовать программу Avrdude. Эта программа поддерживает большое количество программаторов, в том числе и USBASP. Этой программе посвящена отдельная страница в википедии.

Программа avrdude является консольной и запускается из командной строки. Для выполнения программирования ей передается набор параметров, определяющий настройки. Ниже приведен пример командной строки для программирования контроллера при помощи программатора USBASP:

avrdude -c usbasp -p atmega32 -U flash:w:myhexfile.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m

Поясним основные параметры:

  • -c usbasp параметр определяет тип программатора, в нашем случае это usbasp;
  • -p atmega32 параметр определяет тип микроконтроллера, для примера использован ATmega32;
  • -U flash:w:myhexfile.hex параметр определяет hex файл для записи в контроллер. Файл должен располагаться либо в каталоге программы, либо необходимо указать полный путь к файлу;
  • -U lfuse:w:0x6a:m параметр определяет младший байт регистра Fuse;
  • -U hfuse:w:0xff:m параметр определяет старший байт регистра Fuse;

Регистры Fuse используются для настройки режима работы микроконтроллера и для их определения обратитесь к документации соответствующего контроллера. Хочу предупредить, что некорректная установка режима контроллера через регистры Fuse может привести к невозможности дальнейшего программирования контроллера, по этому, внимательно изучите документацию. Если вы не хотите изменять регистр Fuse, вы можете не передавать эти параметры при программировании, в этом случае регистр Fuse останется в том же состоянии, что и до программирования.

Avrdude имеет много разных функций, но в рамках данной статьи нам важен один режим ее работы, а именно заливка программы в микроконтроллер. Остальные функции вы сможете изучить в документации.

Настройка программирования из Atmel Studio

Как уже было упомянуто, Atmel Studio не поддерживает программатор USBASP. Однако в нее встроен механизм для запуска внешних программ для выполнения различных действий. Используя данный механизм внешних инструментов, программирование контроллера будет осуществляться одной кнопкой прямо из меню Atmel Studio.

В Atmel Studio открываем пункт меню Tools и выбираем пункт External tools.

В открывшемся окне настройки инструментов нажимаем кнопку Add для добавления нового инструмента. Заполняем следующие поля:

Настройка программатора USBASP в Atmel Studio

  • Title: произвольное имя инструмента, мы указали USBASP atmega32.
  • Command: файл запуска программы avrdude. Мы указали C:AVRDUDEavrdude.exe, так как у нас она размещена в каталогеAVRDUDE на диске С.
  • Arguments: параметры запуска для avrdude, которые мы рассмотрели выше. Мы задали строку -c usbasp -p atmega32 -U flash:w:$(TargetName).hex, в которой указали имя программатора, имя контроллера, и путь к файлу прошивки. Путь к файлу указан через специальные макросы и Atmel Studio подставит их сама. Мы не указали регистр Fuse в этом примере, но при необходимости вы можете добавить их самостоятельно.
  • Initial directory: указан макрос для подстановки каталога, в котором находится файл прошивки.
  • Use Output window: установите эту галочку для того, что бы результат работы программы показывался в окне Atmel Studio. Послу установки всех настроек нажмите кнопку OK для сохранения настроек и выхода.

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

Запуск программирования AVRASP

Подключение программатора к микроконтроллеру

Программатор USBASP подключается к микроконтроллеру по стандартному интерфейсу ISP. Физически на программаторе интерфейс имеет 10 контактов. Большинство контактов объединены общим проводом. Назначение используемых контактов следующее:

Распайка ISP

  • MISO, MOSI, SCK, RESET — подключается к соответствующему выводу микроконтроллера;
  • GND – земля, подключается к мину или GND микроконтроллера;
  • VCC – используется для подачи питания на микроконтроллер.

На печатных платах модулей, где используются контроллеры AVR, разработчики очень часто располагают интерфейс SPI 6 контактов, позволяющий произвести внутрисхемное программирование контроллера. Такой интерфейс можно видеть даже на платах Arduino. Для подключения программатора к такому 6-и контактному интерфейсу можно использовать соединительные провода мама-мама или специальный переходник ISP10 в ISP6 для программатора AVR USBASP.

Как прошить микроконтроллер ATmega, AVR

3) Дальше требуется соединить микроконтроллер с программатором , быстрее и проще это сделать с Беспаечная макетная плата MB102 и с проводами-радугой с типом наконечников Male to Male или если программатор без шлейфа с наконечниками Female to Male

Соединять в соответствии с картинкой , приведенной ниже(Это для микроконтроллеров ATMEGA8, у других мк смотрите соответствующую им распиновку!):

Если беспаечной платы и проводов-радуги нет — то можно напрямую припаяться к выводам разъема программатора и к ножкам микроконтроллера для прошивки.

Обратите внимание, что контакт 22 — GND находится напротив по другую сторону мс контакта 7 — VCC, исходя из этого не нужно отсчитывать ножки микросхемы, а просто соединить контакт напротив по другую сторону микросхемы соответственно.

Соединение без макетной платы и с помощью обычных проводов

Смотрим распиновку разъема программатора:

Паяем к микроконтроллеру в соответствии с распиновкой.

Удобнее паять таким паяльником — Паяльник GJ 907.

Или можно просто запихать в разъем шлейфа обычные провода, но при таком соединении возможен плохой контакт или его отсутствие.

Запускаем eXtreme Burner AVR , во вкладке Chip выбираем свой микроконтроллер(у нас ATmega8):

(Если при запуске у вас выдается сообщение — «не удается продолжить выполнение кода поскольку система не обнаружила libusb0.dll» то необходимо скачать и установить эти драйвера

вручную, запустив файл InstallDriver.exe )

Затем выбираем вкладку Read и нажимаем Flash(считать прошивку(на многих коммерческих устройствах устанавливают бит защиты от считывания))

(Если выдается ошибка Power On Failed

Cannot Communicate with Target Chip! значит , что какая или какие-либо ножки микроконтроллера не контактируют с программатором, логично проверить наличие контактов и исправить их отсутствие)

Flash — это прошивка

EEPROM — энергонезависимая память

Fuse Bits and Lock Bits — это настройка фьюзов, защиты, параметров микроконтроллера(например работать микроконтроллеру от внутренней частоты или от внешнего кварцевого резонатора, откуда брать опорное напряжение для АЦП и т.д.)

Если драйвера установлены, подсоединено всё правильно то имеем такой результат:

Мы считывали еще не прошитый микроконтроллер ATMEGA8, поэтому у нас будут считаны только нули(FFFF):

Попробуем прошить микроконтроллер

Прошивка микроконтроллера представляется в виде формата .HEX

Она мигает светодиодом на любом выводе D микроконтроллера ATmega, так как в прошивке задана установка всех портов D как выход.

Запускаем eXtreme Burner

Нажимаем Open и в файлах выбираем прошивку в формате HEX

Дальше должно быть так:

Для запуска прошивки выбираем вкладку Write(Запись) и нажимаем Flash, должен пойти процесс прошивки

Прошивка успешно завершилась:

Теперь считаем её

Жмем Read — Flash, получаем:

Как видно нули заменились другими цифрами и видно оставшееся пустое мето в памяти для прошивки.

Теперь отсоединим микроконтроллер от программатора и проверим работу прошивки на практике.

Собираем все по такой схеме:

Собрали, всё должно работать(светодиод мигает 2 раза в секунду):

Если светодиод не горит или наоборот горит постоянно — проверьте надежность контактов.

Внимание! Не вешайте напрямую нагрузку на ножки микросхемы с потреблением больше 25 мА!

Не подавайте на микросхему больше 5.5 Вольт.

Цикл перезаписи прошивки не бесконечен — есть определенный ресурс.Не стоит микроконтроллер использовать и перезаписывать как USB-флешку.

ОЦЕНИТЕ ДАННУЮ ПУБЛИКАЦИЮ:

Средний рейтинг / 5. Количество оценок:

Мы сожалеем, что эта публикация Вас не устроила.

Напишите, пожалуйста, что Вам конкретно не понравилось, как можно улучшить статью?(оценка будет засчитана только при наличии отзыва)

Программаторы AVR. Как прошить микроконтроллер

Прошивка микроконтроллера — это запись (копирование) в его память определенной программы. Программа представляет собой специальный код в шеснадцатеричном формате (файл с расширением hex).

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

Наиболее простым на мой взгляд и простым в освоении программатором для AVR является USB-asp программатор. Мой первый проект и использованием такого программатора имел 2 детали, самого контроллера atmega8 и светодиода. После подключения и прошивки контроллера светодиод радостно начал мне подмигивать.

Программаторы под микроконтроллеры AVR

AVR-Doper. Этот программатор поддерживает протокол STK500 ( то есть, может совмещаться со многими утилитами, предназначенными для программирования), поддержка последовательного ISP- программирования и даже высоковольтного HVSP программирования. Прошивка практически всех известных чипов AVR. Возможно сделать самостоятельно, схемы не очень сложные, существует большое количество готовых прошивок, полностью открытый исходный код. Для качественной работы совместно с Windows требуется установка драйвера, который поставляется вместе с исходным кодом.

программатор AVR-Doper

AVRISP-Mk. Такое название у клона Atmel с поддержкой протокола STK500. Не поддерживается HVSP, но в свободном доступе ISP, TPI и PDI, что позволяет прошить более современные микроконтроллеры типа XMEGA. Поддерживаются многие популярные программы. Его схема невероятно простая, поэтому программатор именно этого типа часто самостоятельно изготавливают. Исходный код открыт, возможна компиляция на другие чипы AVR, имеющие аппаратный интерфейс USB. Для Windows необходим драйвер, он идет в комплекте с исходным кодом. Наиболее подходящая данному программатору утилита AVR Studio 4.19.

программатор AVR AVRISP-Mk

AVR Dragon. Не слишком дорогой программатор, который пользуется популярностью с внутрисхемным отладчиком Atmel, его аналоги продаются на eBay за 40-50 американских долларов. Поддержка AVR Studio, IAR Embedded Workbench и многих других сред программирования. Самостоятельно изготовить его нельзя, так как нет ни доступных схем, ни кодов доступа, открытым остался исключительно STK500. Если вы обладаете достаточным количеством средств и хотите развиваться, как программист — стоит приобрести этот программатор. Для работы с Windows требуется драйвер, его можно установить вместе с AVR Studio.

программатор AVR Dragon

Atmel AVR JTAGICE mk. Его еще называют «тяжелой артиллерией» в программировании и отладке AVR, так как это программатор- ISP со внутрисхемным эмулятором (JTAG, debugWIRE) в одной прошивке. Работа осуществляется с помощью COM-порта и по USB. Доступен для понимания даже avrdude. Хороший во всем, только не радует его стоимость. Может работать с AVR Studio, консольной штатной прогой. Поддержка интерфейсов отладки debugWire и JTAG, всего ассортимента AVR, но не поддерживается высоковольтное программирование HVSP. Очень дорогое удовольствие, которое трудно рекомендовать. Сделать самостоятельно невозможно. Для Windows нужна установка драйвера, идущего в комплекте с AVR Studio.

Программатор Atmel AVR JTAGICE mk

USBasp. Программатор, успевший получить статус «народного». Его дешево изготовить, схемы достаточно просты, большое количество исходников со свободным доступом дают возможности сделать проект собственными руками. Поддержка большого количества утилит для программирования. Его изготовляют многие компании в том числе и китайские. На ebay цена одной копии USBasp стартует от 4 долларов. Но будьте внимательны — дешевая продукция, как правило, обладает низким качеством. Поддержка исключительно ISP. Не забудьте об установке драйвера для Windows. Применение в USB-бутлоадерах (этому способствуют открытость и простота).

Программатор USBasp

USBtinyISP. Этот проект находится в открытом доступе, есть все исходники. В состав входят 2 ISP-коннектора (6 pin и 10 pin). Использование чипа ATtiny2313-20P. Схема отличается своей простотой.

Программатор USBtinyISP

USB AVR programmer. Не считается официальным аналогом AVR910, но характеристики очень похожие. Схемы и исходники находятся в свободном доступе.

Программатор USB AVR programmer

Vusbtiny. Отличается своей необычной простотой и маленькими размерами. USB интерфейс и поддержка ISP.

Прошивка микроконтроллеров AVR. Часть 2.

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

Если у вас есть вопросы по выбору фонарей, аккумуляторов и зарядных устройств ознакомьтесь с FAQ от наших экспертов:

Стр. 1 из 7 1 2 3 Последняя стр.

Завсегдатай Фонарёвки
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 176 раз(а) в 92 сообщениях
Прошивка микроконтроллеров AVR. Часть 2.

Прошивка микроконтроллеров семейства AVR в домашних условиях.

Ни одно современное электронное устройство сейчас не обходится без микроконтроллеров. Фонарики не исключение. Достаточно часто в драйверах светодионых фонарей мы можем видеть микроконтроллеры ATtiny13A семейства AVR фирмы Atmel. Например, всем известные драйверы

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

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

Если откатиться в историю лет на 15 назад, то мы увидим, что фирма Atmel далеко не первая вышла на рынок однокристальных микроконтроллеров. Но почему же её AVR-ки так полюбились всем? Всё очень просто. Чтобы начать их применять кроме желания не надо было больше ничего. Полная документация, бесплатное программное обеспечение и возможность прошивки вообще без программатора. Что ещё надо «бедному студенту»? Ну вот давайте и представим себя подобными студентами, в руки которых попал фонарь или драйвер фонаря с микроконтроллером Tiny13A на борту.

Что нам потребуется:
1. Паяльник. Пожалуй это основное, так как нам надо будет припаять провода к микросхеме, шаг выводов которой равен 1,25 мм. По современным меркам просто огромное расстояние, но без паяльника мощностьюе 5-10 Вт с жалом шириной 1-2 мм новичкам лучше даже не пытаться.
2. Провода и желательно миниатюрные разъёмы, чтобы каждый раз не отпаивать провода для проверки что же у нас получилось.
Для тех кто не дружит с паяльником совсем есть вариант приобретения вот такой клипсы для подключения к микросхеме без пайки.

Но это не наш путь, ибо это деньги и время. Я не супер спец в пайке, но у меня получается как-то так. На разъём провода к компьютеру, а через жёлтый МГТФ подаём питание.

3. Ещё нам понадобится программное обеспечение. Лучше всего для изучения подойдёт PonyProg
4. Ну и самое главное — надо сделать «хвостик» к компьютеру. Тут есть два варианта. Либо в СОМ-порт вот такой

Либо в LPT-порт вот такой вообще без единой радиодетали

Если есть возможность, то лучше собрать первый вариант, так как в COM-порте более мощные и надёжные выходные буферы. Но и второй вариант для поиграться пойдёт.

Теперь надо подключит «хвостик» к микроконтроллеру согласно следуюзей таблице:
Reset — ножка 1
SCK — ножка 7
MOSI — ножка 5
MISO — ножка 6
GND — минус питания драйвера
На всякий случай привожу нумерацию выводов микросхемы

Когда микроконтроллер подключен к компьютеру, то подаём на драйвер питание от одного Li-Ion и запускаем PonyProg. В программе выбираем тип микроконтроллера ATtiny13 и способ подключения к компьютеру. Примерно как на картинке.

Теперь, как говорят, если всё собрано правильно, то схема работает сразу. Выбираем меню Command->Security and Configuration bits и либо получаем вот такое окно, означающее что всё получилось

либо сообщение об ошибке, которое может означать две вещи. Или что-то не так спаяли и надо искать ошибку, или нам попался драйвер в микроконтроллере которого отключена возможность программирования в схеме. Мне такие попадались в DX-ских sku.7612. Тут, к сожалению, только замена микроконтроллера на чистый.

Если же никаких ошибок не возникло, то теперь можно смело перетащить в окно программы прошивку, стереть микроконтроллер командой Erase и запрограммировать новую прошивку командой Write Program. Отключить драйвер от компьютера и испытать в работе.

Вопрос где брать прошивки в этой статье я рассматривать не буду. Краткий ответ на него — брать в интернете готовые или писать самому.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *