Site Loader

USBasp | AVRDUDE | Программирование микроконтроллеров AVR ⋆ diodov.net

Программирование микроконтроллеров Курсы

Чтобы перенести нашу программу с компьютера в микроконтроллер нам понадобится программатор USBasp и программа AVRDUDE. Сегодня существует широкий выбор программаторов, предназначенных для программирования микроконтроллеров AVR. Среди них можно найти много самодельных, который даже трудно назвать программаторами, поскольку они с помощью всего лишь нескольких резисторов напрямую подключаются к COM порту. Однако современные компьютеры и ноутбуки уже практически не оборудываются COM портами, поэтому одним из основных критериев при выборе программатора является возможность подключения его к USB порту. Наиболее дешевый, простой и очень распространенный – это программатор USBasp. Его можно приобрести практически в любом радиомагазине по доступной цене. Стоимость его в китайских интернет магазина находится в пределах от 1,5 $ до 3 $.

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

Связь компьютера с микроконтроллером осуществляется посредством программатора USBasp через USB порт, а данные передаются по интерфейсу SPISerial Peripheral Interface (последовательный периферийный интерфейс). Для связи МК с программатором задействуются специальные выводы: MOSI, MISO, SCK, RESET, VCC, GND. Хотя SPI предполагает использование всего трех выводов MOSI, MISO и SCK, но мы будем задействовать все шесть выводов.

Интерфейс SPI

При обмене данными по интерфейсу SPI микроконтроллер может одновременно либо принимать (вывод MISO) либо передавать данные (вывод MOSI). Установка режима приема или передачи данных осуществляется путем подачи определенного импульса на вывод SCK.

Разъем программатора, как правило, имеет 10 пинов и подключается к микроконтроллеру с помощью 10 проводного шлейфа. Однако удобней пользоваться шлейфами, которые имеют переходник на 6 пин, так как в таком случае все пины заняты. У десяти пинового разъема одни пин остается не занятым, а четыре пина подключены к общему проводу (GND).

Разъемы программатора USBasp

Маркировка разъемов USBasp

Для того, чтобы компьютер определил программатор необходимо установить драйвер USBasp.

Фото подсоединенного программатора к микроконтроллеру ATmega8 приведено ниже.

Программирование микроконтроллеров AVR

Единственный недостаток или, правильнее сказать, мелкое неудобство данного программатора заключается в том, что он не поддерживается (без различных ухищрений) Atmel Studio, поэтому приходится пользоваться сторонней программой. Наиболее зарекомендовавшей себя является AVRDUDE.

Настройка AVRDUDE

Теперь нам осталось выполнить финальный шаг. Запускаем программу AVRDUDE. По умолчанию открывается вкладка Program. В нижней части окна в меню Настройки выбираем тип программатора usbasp. Далее в категории Микроконтроллер выбираем наш микроконтроллер ATmega8. Ниже, в категории Flash кликаем по значку троеточия и в открывшемся меню указываем путь к скомпилированному файлу с расширением hex. Путь к файлу и сам файл будут теми же, что мы ранее задавали в Proteus.

Настройка AVRDUDE

Чтобы убедится в том, что программатор определен операционной системой (драйвер программатора корректно установлен) и правильно подключен к микроконтроллеру, кликаем по кнопке Чтение. Если ошибок нет, то появится окно с записью “Калибровочные ячейки генератора считаны!” И в верхнем окошке отобразится шестнадцатеричное число. У каждого МК это число индивидуальное.

AVRDUDE

Прежде, чем записать новую программу рекомендуется очистить память микроконтроллера. Это можно сделать, кликнув по кнопке Стереть все. В результате появится окно с сообщением о том, что кристалл чист.

AVRDUDE Очистка памяти микроконтроллера

Теперь кликаем по кнопке Программировать в категории Flash. При успешной записи программы в МК появляется окно с записью, приведенной ниже.

AVRDUDE Прошивка микроконтроллера

Результат записанной, или, как еще говорят, прошитой программы – это засветившийся светодиод, подключенный к выводу PC0 нашего микроконтроллера.

Прошивка микроконтроллера ATmega8

Первая наша программа очень проста, а частота работы микроконтроллера оставлена по умолчанию и для ATmega8 равна 1 МГц. В случае изменения частоты или подключения внешнего кварцевого резонатора, необходимо внести некоторые изменения во вкладке

Fuses, путем установки галочек в соответственные чекбоксы CKSEL0… CKSEL3.

AVRDUDE Фьюзы Fuses

Подробно настройки данной вкладки мы рассмотрим в статье Fuses (биты настройки или биты защиты) микроконтроллера.

Скачать USBasp драйвер

Скачать AVRDUDE

Как читать электрические схемы и создавать электронные устройства

Еще статьи по данной теме

опции запуска и примеры использования, графическая оболочка для linux

Опция Программатор
abcmini ABCmini Board, aka Dick Smith HOTCHIP
alf Nightshade ALF-PgmAVR, http://nightshade.homeip.net/
arduino Плата Arduino, протокол сходен с STK500 1.x
atisp AT-ISP V1.1 кабель программирования для AVR-SDK1, http://micro-research.co.th/
avr109 Atmel AppNote AVR109 Boot Loader
avr910 Atmel Low Cost Serial Programmer
avr911 Atmel AppNote AVR911 AVROSP (an alias for avr109)
avrftdi FTDI MPSSE (FT2232 etc.) поддержка bitbang
avrisp Atmel AVR ISP (псевдоним для stk500)
avrisp2 Atmel AVR ISP mkII (псевдоним для stk500v2)
avrispmkII Atmel AVR ISP mkII (псевдоним для stk500v2)
avrispv2 Atmel AVR ISP, running a version 2.x firmware (an alias for stk500v2)
bascom Bascom SAMPLE programming cable
blaster Altera ByteBlaster
bsd Brian Dean’s Programmer, http://www.bsdhome.com/avrdude/
butterfly Atmel Butterfly Development Board
c2n232i C2N232I, reset=dtr sck=!rts mosi=!txd miso=!cts,
dapa Direct AVR Parallel Access cable
dasa serial port banging, reset=rts sck=dtr mosi=txd miso=cts
dasa3 serial port banging, reset=!dtr sck=rts mosi=txd miso=cts
dragon_dw AVR Dragon in debugWire mode
dragon_hvsp AVR Dragon in high-voltage serial programming mode
dragon_isp AVR Dragon в режиме ISP
dragon_jtag AVR Dragon в режиме JTAG
dragon_pp AVR Dragon in (high-voltage) parallel programming mode
dt006 Dontronics DT006
ere-isp-avr ERE ISP-AVR
frank-stk200 Клон STK200 от Frank’а, http://electropol.free.fr/spip/spip.php?article15
futurlec Кабель программирования Futurlec.com
jtag1 Atmel JTAG ICE mkI, running at 115200 Bd
jtag1slow Atmel JTAG ICE mkI, running at 19200 Bd
jtag2slow Atmel JTAG ICE mkII (default speed 19200 Bd)
jtag2,jtag2fast Atmel JTAG ICE mkII, running at 115200 Bd
jtag2isp
Atmel JTAG ICE mkII in ISP mode.
jtag2dw Atmel JTAG ICE mkII in debugWire mode.
jtagmkI Atmel JTAG ICE mkI, running at 115200 Bd
jtagmkII Atmel JTAG ICE mkII (default speed 19200 Bd)
mib510 Crossbow MIB510 programming board
pavr Jason Kyle’s pAVR Serial Programmer
picoweb Picoweb Programming Cable, http://www.picoweb.net/
pony-stk200 Pony Prog STK200
ponyser design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts
siprog Lancos SI-Prog, http://www.lancos.com/siprogsch.html
sp12 Steve Bolt’s Programmer
stk200 STK200
stk500 Atmel STK500, probing for either version 1.x or 2.x firmware
stk500hvsp Atmel STK500 в режиме высоковольтного последовательного программирования (high-voltage serial programming mode), только для прошивок версии 2.x
stk500pp Atmel STK500 в режиме параллельного программирования (parallel programming) , только прошивка версии 2.x
stk500v1 Atmel STK500, с версией прошивки 1.x
stk500v2 Atmel STK500, с версией прошивки 2.x
stk600 Atmel STK600 в режиме ISP или в PDI режиме для устройств ATxmega
stk600hvsp Atmel STK600 в режиме высоковольтного последовательного программирования (high-voltage serial programming mode)
stk600pp Atmel STK600 в режиме параллельного программирования (parallel programming)
usbasp USBasp, http://www.fischl.de/usbasp/
usbtiny USBtiny — простой USB программатор, http://www.ladyada.net/make/usbtinyisp/
xil Xilinx JTAG кабель

AVRDudeR — встраиваем avrdude в IDE / Хабр


Arduino — хорошая платформа для самоделкиных вроде меня.
Удобная, все в ней уже есть.
В чем проблема?

Программная часть мне далеко не всем нравится. Особенно ужасна Arduino IDE. Каждый файл открывается в новом окне, оставляя пустое запущенное окно IDE. И прочие мелкие глупости, которые привыкших к удобству Visual Studio, Borland/Embarcadero RAD IDE расстраивают и вызывают неудовольствие.
К счастью, мы можем использовать любую IDE какая понравится. Для готовых проектов, которые только скомпилировать и прошить или собственных пробных поделок вполне годится тот огрызок Wiring, который компилируется Arduino IDE.
Для удобства работы я использую Visual Micro Arduino — удобство Visual Studio, быстрая компиляция, прошивка стандартными средствами.
Arduino без Arduino IDE

Ступенькой выше стоит прямая работа с микроконтроллером, тут уж в вольны делать что захотите. Часто это удобнее чем разбираться в начинке библиотек Arduino. Но приходится использовать либо AVR Studio либо стороннюю IDE и компилятор от Atmel (благо, он совершенно бесплатный и входит в AVR Tools).
Все бы хорошо, но про Arduino они ничего не знают и прошить ее не могут. И вот тут начинаются неудобства.

Кому неинтересны детали, переходите сразу к делу, скачиваем и настраиваем.

AVR Studio неплохая среда, правда версия 4 довольно примитивная, а 5я тяжеловесна. Ни та ни другая кроме как через фирменный программатор прошивать не умеют. Засада.
Я взял проект бутлоадера, который совместим с AVR Studio, притворяясь AVRISP программатором. Интерфейс же с ним в AVR Studio оказался далеко не самым удачным.

Что делать?

Есть AVRDUDE — бесплатный прошивальщик, который работает почти со всеми программаторами для ATMEL микроконтроллеров. Но он консольный. Вроде бы не проблема, написал cmd или bat файл и все дела, запускай его после компиляции и всего делов. Но у меня, как, наверное, у многих, не одна плата. А каждая плата Arduino видится в системе как отдельный COM-порт. Каждый программатор тоже. В платах установлены разные микроконтроллеры (Atmega168P, Atmega328P). Не считая самодельных Arduino-совместимых плат или вообще с голым микроконтроллером и обвязкой.
Каждый раз лазать в bat файл и править настройки под разные платы или переключаться в другое приложение чтобы его запустить для прошивки, чтобы проверить работу когда я поменял пару байт в коде, лично мне надоедает, да и ошибок возникает немало, так и контроллер убить недолго. Хуже того, с FTBB программатором работает только отдельная версия avrdude, пропатченная под него и ничего не знающая про arduino. А значит, если мы прошиваем через него, то нужно держать еще один bat файл.
В Code::Blocks IDE, которая мне больше понравилась по возможностям форматирования и удобству работы с кодом, ситуация немногим лучше, разве что можно передавать внешней утилите параметры.
Автоматизация запуска avrdude с нужными параметрами


Мне эта ситуация надоела и я написал небольшую программку, которая получает в командной строке 2 параметра:
— имя конфигурационного файла
— имя файла прошивки

Утилита сама запускает avrdude с параметрами, указанными в конфигурационном файле (просто файл с готовыми настройками для прошивания), дожидается прошивки и закрывается. Это позволяет прошивать проект в любой имеющийся микроконтроллер в процессе отладки в 2 клика прямо из Code::Blocks.
Если запустить с одним параметром, прочитает соответствующий файл конфигурации, если с двумя, попытается автоматически залить прошивку из второго параметра.

Если заинтересовало, качаем AVRDudeR

Встраивается в IDE очень просто (дольше рассказывать, чем сделать):
Добавляем в меню Tools два пункта меню — для изменения настрек и для прошивки

Для изменения настроек прописываем:

Для прошивки:

По сути в настройках прописаны: первый параметр — файл avrdude.ini, который мы сохраняем при настройке в папку проекта, второй параметр — имя файла прошивки.

Процесс настройки выглядит так:

  • Подключаем программатор или плату Arduino с которой будем работать, чтобы в системе появился нужный COM порт.
  • Запускаем Tools->R AVRduder: Setup, выбираем настройки и сохраняем файл с настройками в каталоге своего проекта под именем avrduder.ini (или то, которое указали в настройках). Закрываем утилитку

Теперь скомпилировав проект, выбираем в меню Tools->R AVRDudeR: Flash и готово.

Обе версии avrdude уже лежат в архиве, ничего настраивать и прописывать в AVRDudeR не нужно.

Немного о настройках:


MCU — микроконтроллер (понятное имя и код для командной строки avrdude программа берет из mcu.lst)
Programmer — программатор. FTBB, Arduino с соответствующей прошивкой в качестве ISP программатора (ArduinoISP), или подключенная напрямую Arduino. (Текст пунктов меню и коды для строки программатора в файле programmers.lst)
Port: ну собственно COM порт программатора или Arduino (поэтому нужно чтобы плата была подключена во время настройки).
Baud rate: скорость порта. Для Arduino до UNO — 57600, UNO — 115200. В вашем загрузчике сами знаете какую настроили, а для FTBB режима этот параметр игнорируется.
Dude type: как раз тут и выбираем какой avrdude — обычный или для FTBB программатора использовать.
Галка Show Result — открыть при прошивке окно, в котором виден процесс прошивки, если вам неинтересно и вы уверены что все работает верно, не ставьте ее, программа просто выведет сообщение, когда avrdude закончит работу и сама закроется.

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

Если сменился контроллер или подключили в другой порт, через другой программатор, просто выбираем Tools->R AVRDuder: Setup и открывается файл с настройками этого проекта (или настройками по умолчанию, если в папке с проектом avrduder.ini отсутствует). Меняем порт или программатор, контроллер или что там у нас поменялось и сохраняем обратно avrduder.ini в папку проекта. Все.

Да, avrdude.ini можно просто таскать из проекта в проект, если работате с одинаковыми платами/программаторами. Просто скопируйте его в папку нового проекта и можно ничего не настраивать вообще.
Ах да, чуть на забыл, в Code:Blocks я выбрал GNU AVR GCC Compiler и указал только папку к AVR Tools. А проект настроил вот так:

Тогда компилятор создает файл .elf.hex, который мы и прошиваем. Если у вас по-другому, измените второй параметр, передаваемый в AVRDudeR, чтобы он передавал имя файла прошивки.

Надеюсь, кому-то это сбережет нервы, повысит производительность и позволит сосредоточиться на собственно работе над идеей, а не возиться с кучей приблуд при каждой компиляции и заливке проекта.
Если утилита окажется полезной, пользуйтесь на здоровье.
UPD Утилита все-таки пригодилась.
Новая версия доступна на google code

Программирование микроконтроллеров AVR с Microchip PicKit2

Если вы, как и я, используете в своих конструкциях как микроконтроллеры PIC, так и чипы AVR, было бы удобно для программирования обеих линеек микросхем использовать один и тот же программатор. Кстати, не так давно Microchip приобрела компанию Atmel и фактически сейчас  обе линейки выпускаются одной и той же компанией. Посему можно предположить окончание многолетнего холивара на тему что же лучше. Оба типа контроллеров имеют свои недостатки и преимущества, но это тема для другой статьи или видеоролика.

Случилось так что когда-то давно я, как и многие другие, начал знакомство с миром микроконтроллеров с какой-то конструкции на микроконтроллере PIC16F84. Через много лет я купил свой первый фабричный программатор для контроллеров PIC. Это был фирменный (оригинальный) PicKit2, который я привез с международной конференции Microchip, которая проходила в Питере в 2009 году.

Оригинальный PicKit2.

Нужно сказать, что программатор PicKit2 уже не поддерживается компанией Microchip (в плане обновления прошивки или управляющей программы) но это не мешает ему отлично работать и по сей день. Сейчас Microchip продвигает более новую версию — PicKit3, который внешне выглядит почти также как и вторая версия. С третьим я пока не имел дела, для моих задач мне вполне хватает второго.

Обычно если мне нужно запрограммировать микроконтроллер Pic я использую программатор PicKit2 с его родной программой PicKit2.61, а если я хочу прошить, например, контроллер ATMega16, то делаю это через программатор USBAsp который можно купить в Китае за полтора доллара.


   Разъем программирования PicKit2.Назначение выводов:

VPP / MCLR
VDD напряжение питания целевого устройства
VSS земля
ICSPDAT / PGD
ICSPCLK / PGC
AUX


 

Для программирования контроллеров AVR нам потребуется сделать специальный шлейф и использовать все шесть контактов PicKit2. Шлейф делаем в соответствии с таблицей ниже:
   

AVRDUDESHELL. Запуск программы по ОС Linux (wine)

Для запуска программы AVRDUDESHELL (начиная с версии 01.09.2015) под управлением ОС Linux (wine) необходимо выполнить следующие действия:

1. Включить учетную запись root:
sudo su

2. Установить wine:
apt-get install wine

3. Установить утилиту avrdude:
apt-get install avrdude

4. Найти физическое размещение файлов утилиты avrdude, воспользовавшись командой whereis avrdude:


5. Дать разрешение на доступ к утилите avrdude:
chmod +s /usr/bin/avrdude

6. Скачать последнюю версию программы AVRDUDESHELL.

7. Распаковать архив программы AVRDUDESHELL в папку диска «c:\» программы wine, например в: «/.wine/drive_c/Application/AVRDUDESHELL/». Там же создать папку для размещения симлинков на программу avrdude, например avrdudelinux. Структура папок должна получится примерно следующей:


8. В папке avrdudelinux создать симлинки на файлы avrdude и avrdude.conf.

9. Запустить программу AVRDUDESHELL:

в параметрах программы на вкладке «Файлы и папки» назначить «Папку утилиты AVRDUDE для программирования чипов» — в нашем случае это папка avrdudelinux (см. п. 7).

Попробовать прочитать фьюзы:

Записать фьюзы:

Прочитать EEPROM и дизассемблировать:

10. Для удобства запуска можно разместить ярлык программы на рабочем столе, создав файл с любым именем и расширением «.desktop», например «avrdudeshell.desktop» со следующим содержанием:

[Desktop Entry]
Version=1.0
Type=Application
Name=AVRDUDESHELL
Comment=Программировать Atmega
Exec=wine avrdudeshell.exe
Icon=
Path=/home/alexander/.wine/dosdevices/c:/Application/AVRDUDESHELL
Terminal=false
StartupNotify=true

Настройка Eclipse для работы с avrdude

Шауэрман Александр А. [email protected]

В учебном стенде LESO6 загрузка hex-файла в память программ микроконтроллера может осуществляться в двух режимах. В первом режиме микроконтроллер доступен через интерфейс ISP (In-System Programmable), который обеспечивает полный доступ к памяти, fuse и lock битам. Известно, что неверно установленные fuse могут вывести микроконтроллер из строя, потому этот режим использует для первоначальной установки fuse и записи в старшие адреса памяти специальной программы-загрузчика (bootloader). Во втором режиме при сбросе микроконтроллера (кнопка «Reset» – SW1) или подачи питания управление передается загрузчику, расположенному в старших адресах памяти программ. Загрузчик инициализирует последовательный порт uart (115200 бит/сек, 8-бит, 1 стоп) и некоторое время ждет по нему приход спецсимвола, означающего, что далее последует загрузка кода. Если за контрольный промежуток времени спецсимвол не получен, загрузчик передает управление в нулевой адрес – начинает выполнятся основная программа. Если спецсимвол получен, загрузчик ожидает hex-файл. По другому заставить загрузчик ожидать hex-файл можно выполнив сброс при удержании нажатой кнопки «1» клавиатуры. Текущее состояние загрузчика показывают светодиоды. Если программирование производится с использованием загрузчика, биты блокировки и fuse биты доступны только для чтения, что исключает возможность вывода из строя учебного стенда.

Переключение режима программирования ISP/bootloader выполняется перемычкой, для доступа к которой нужно раскрутить корпус. В обоих режимах на стороне компьютера для доступа к памяти микроконтроллера можно использовать программу avrdude.

Программа avrdude – это консольное приложение, которое, используя определенные аппаратные программаторы, осуществляет доступ к памяти микроконтроллера. Avrdude может выполнять операции чтения и записи памяти программ (Programm Flash) и памяти данных (EEPROM), а также писать и читать биты конфигурации – fuse-биты. Avrdude – кросплатформенное приложение, существует для различных операционных систем и распространяется в виде исходного кода. Официальный сайт проекта: www.nongnu.org/avrdude.

Для установки в операционной системе Linux (на примере Ubuntu 14.04) следует выполнить в терминале:

sudo apt-get install avrdude

Для установки в операционной системе Windows avrdude можно скачать архив с нашего сайта и распаковать в любую директорию.

Использование avdrude совместно с AVR-Eclipse

В свойства среды («Window» -> «Preferences«) в пункте «AVR» -> «Paths» для «AVRdude» указываем путь к avrdude.exe.

В пункте «AVR» -> «AVRDude» добавляем новую конфигурацию программатора.

В окне «Edit AVRDude Programmer Configuration» в строке «Configuration name» вводим название конфигурации. Название может быть произвольным, в примере – «leso6«. Для загрузки hex-файла в память программ микроконтроллера ATMEGA128RFA1 стенда LESO6 используется встроенный загрузчик (bootloader), совместимый с программатором AVR911. В окне «Programmer Hardware» выбираем строку, содержащую «AVR911«. В строке «Override default port» вводим последовательный порт, к которому подключен стенд. Если работаете в операционной системе Windows, то запись имеет вид «COMx», где «х» – номер COM-PORT, например, COM6. Если операционная система Linux – /dev/ttyUSBx, где «х» – номер устройства. Если к компьютеру подключено всего одно устройство с преобразователем «USB/serial», то устройство будет /dev/ttyUSB0. Устанавливаем скорость соединения с загрузчиком 115200 (бит/с). Остальные значения оставляем поумолчанию. Нажимаем «Ок«.

В настройках проекта в пункте «AVR» -> «AVRDude» на вкладке «Programmer» указываем созданную нами конфигурацию. На остальных вкладках можно настроить поведение программатора. В большинстве случаем нам подойдут настройки по умолчанию.

Настройка программатора выполнена. Загрузка hex-файла в микроконтроллер выполняется нажатием пиктограммы «AVR*«, либо сочетанием клавиш «Ctrl+Alt+U«. Естественно, перед загрузкой проект должен быть оттранслирован и успешно создан hex-файл.

avdrude как внешний инструмент

При создании проекта из готовых исходных файлов с существующим Makefile плагин AVR-Eclipse не активен, и потому в настройках проекта отсутствует пункт меню «AVR» -> «AVRDude«. В этом случае avrdude должен быть подключен как внешний инструмент. Настройка внешних инструментов производиться в окне «External Tools Configuration«. Вызвать это окно можно разными способами, например, в меню «Run» выбрать «External Tools» -> «External Tools Configurations…» или на панели инструментов нажать соответствующую пиктограмму.

В окне «External Tools Configuration» нам предстоит ввести некоторые параметры и опции. Для того чтобы понять что вводить, следует познакомиться с интерфейсом avrdude. Как уже говорилось, avrdude – консольная программа, а это значит, что запускать ее следует в интерпретаторе командной строки, для Windows – это cmd, для Linux – любой эмулятор терминала. Запуск производится с некоторыми опциями, определяющими поведение программы. Рассмотрим основные:
-p   – тип микроконтроллера. В нашем случае m128rfa1.
-b   – скорость обмена данными по последовательному порту. Для стенда leso6 – 115200.
-c   – тип программатора. Загрузчик стенда leso6 поддерживает avr911.
-P   – последовательный порт (например, COMx, /dev/ttyUSBx).
-U   – операции с памятью.
 Формат опции -U следующий: -U memtype:op:filename[:format], где memtype – тип памяти; op – тип операции; filename – имя файла, из которого будет читаться данные, если мы производим операцию записи в память контроллера, если же мы читаем из контроллера, то filename – имя файла, в который будут данные записаны; format – опциональный параметр, указывает тип файла, например iIntel hex, a – тип файла определится автоматически. Параметр memtype может принимать значения: flash (память программ), eeprom (память данных), lfuse (младший байт fuse), hfuse (старший байт fuse), efuse (дополнительные байт fuse) и некоторые другие. Параметр op может принимать значения: r (читаем из памяти микроконтроллера), w (записываем в память микроконтроллера), v (верифицируем память, сравниваем данные в памяти микроконтроллера с тем, что записано в указанном файле). Другие команды и параметры можно узнать обратившись к справке по avrdude.

Таким образом, для того чтобы загрузить hex-файл «probe.hex» в память программ микроконтроллера, в командной строке нужно выполнить:

avrdude -p m128rfa1 -c avr911 -PCOM6 -b115200 -U flash:w:probe.hex:a

Пояснение: программируем контроллер m128rfa1 (ATMEGA128RFA1) с помощью программатора avr911, который подключен через COM-port с номером 6 (COM6) на скорости 115200 бит/с. Записываем (w) в память программ (flash) файл probe.hex, тип файла определяем автоматически (a).

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

Настраиваем конфигурацию программатора в окне «Run-> External Tools->External Tools Configuration». В строке «Name» вводим имя нашей конфигурации, например «leso6«. В строке «Location» прописываем путь к исполняемому файлу avrdude. В строке «Working Directory» указываем путь к директории с hex-файлом. В области «Argumets» зададим основные опции avrdude: -p m128rfa1 -c avr911 -PCOM6 -b115200 -U flash:w:probe.hex:a. Нажимаем «Apply«, а затем «Close«.

Для того, чтобы для каждого проекта не нужно было настраивать программатор, опции можно задать через глобальные переменные среды. Так вместо имени файла, можно указать переменную ${project_name}, путь к файлу можно описать через переменную, содержащую путь к текущему проекту ${project_loc}. Увидеть весь список переменных поможет кнопка «Variables…«. В области «Argumets» строка примет вид: -p m128rfa1 -c avr911 -PCOM6 -b115200 -U flash:w:${project_name}.hex:a.

Запустить программатор можно через меню «Run» -> «External Tools» -> «leso6«, либо через соответствующую пиктограмму на панели инструментов.

Если вы используете несколько конфигураций, или по какой-либо причине конфигурация «leso6» не отобразилась в списке «External Tools», следует выполнить «Organize Favorites…».

Записная книжка: AVRDUDESHELL. История обновлений

Это история обновлений программы для прошивки микроконтроллеров семейтва Atmega — AVRDUDESHELL на русском:

09.01.2019

  • Корректная загрузка HEX файлов для микроконтроллеров с памятью более 64Кб (например, Atmega128)
  • 13.11.2017
  • Загрузка-выгрузка EEPROМ в формате *.bin
  • «Забой» памяти EEPROM и FLASH произвольным значением
  • Поддержка ANSI кодировки для русских символов
  • 27.10.2017
  • Реализована возможность сохранения дизассемблированного кода.
  • 11.07.2017
  • Изменен порядок записи фьюзов.
  • 27.06.2017
  • Изменен порядок записи фьюзов.
  • 21.12.2016
  • Устранена ошибка записи HI, LOW, LOCK фьюзов для ATtiny13.
  • 01.09.2016
  • Устранена ошибка записи EXTENDED фьюзов для некоторых чипов.
  • 21.06.2016
  • Новая версия avrdude6.3 в комплекте (устранена ошибка программирования Atmega64, Atmega128).
  • Реализован «градусник» выполнения операций с чипом.
  • 13.06.2016
  • Реализованы функции создания случайных FLASH и EEPROM данных.
  • Реализована проверка записи чипа.
  • 13.05.2016
  • Реализовано масштабирование главной формы для мониторов с высоким разрешением.
  • 28.04.2016
  • Исправлен интерфейс при отображении с «нестандартными» настройками шрифтов в системе.
  • 19.04.2016
  • Изменения в службе обновлений под протокол HTTPS.
  • 18.01.2016
  • Устранена ошибка связи с Интернет.
  • Устранена ошибка программирования EEPROM последних значений FF.
  • 01.09.2015
  • Работа под ОС Linux (wine).
  • Устранена ошибка дизассемблера в случае «пустого» HEX файла.
  • 03.02.2015
  • Поддержка нескольких программ avrdude одновременно.
  • Поддержка FTDI программирования чипов.
  • Поддержка программы avrdude до версии 6.1.
  • Дизассемблер версии 1.00.
  • 21.01.2015
  • Качественно новая версия программы.
  • Переезд на новую площадку.
  • Новый дизайн.
  • Возможность сохранять и восстанавливать настройки фьюзов.
  • Теперь все формы можно растягивать.
  • Автоматическое открытие файлов проекта.
  • Строка адресов для дампов FLASH и EEPROM.
  • Строка адресов может расчитыватся автоматически.
  • Возможность связи *.hex, *.eep, *.fus файлов с приложением.
  • Загрузка файлов *.hex, *.eep, *.fus из командной строки.
  • Альфа 0.98 версия дизассемблера.
  • Устранена ошибка прописных и строчных символов при задании порта подключения программатора.
  • Устранена ошибка сохранения первого байта в файлы *.hex, *.eep.
  • Устранена ошибка размера дампа при автоматическом обновлении файлов проекта.
  • 09.12.2013
  • Уточнен перевод.
  • Устранена ошибка — теперь обновления можно отключать.
  • 09.09.2013
  • Доработка механизма обновления программы в связи с переездом на новую площадку.
  • 08.01.2013
  • Доработан механизм работы с фьюзами для младшего семейства микроконтроллеров типа ATtiny.
  • Добавлено описание фьюзов для микроконтроллера ATtiny11, ATtiny12.
  • Добавлена кнопка редактирования файла конфигурации AVRDUDE.
  • Добавлена кнопка копирования в буфер обмена командной строки.
  • Добавлен перевод некоторых фраз.
  • 28.11.2012
  • Первая стабильная версия программы

  • и английском:

    09.01.2019

  • Корректная загрузка HEX файлов для микроконтроллеров с памятью более 64Кб (например, Atmega128)
  • 13.11.2017
  • Загрузка-выгрузка EEPROМ в формате *.bin
  • «Забой» памяти EEPROM и FLASH произвольным значением
  • Поддержка ANSI кодировки для русских символов
  • 27.10.2017
  • Реализована возможность сохранения дизассемблированного кода.
  • 11.07.2017
  • Изменен порядок записи фьюзов.
  • 27.06.2017
  • Изменен порядок записи фьюзов.
  • 21.12.2016
  • Устранена ошибка записи HI, LOW, LOCK фьюзов для ATtiny13.
  • 01.09.2016
  • Устранена ошибка записи EXTENDED фьюзов для некоторых чипов.
  • 21.06.2016
  • Новая версия avrdude6.3 в комплекте (устранена ошибка программирования Atmega64, Atmega128).
  • Реализован «градусник» выполнения операций с чипом.
  • 13.06.2016
  • Реализованы функции создания случайных FLASH и EEPROM данных.
  • Реализована проверка записи чипа.
  • 13.05.2016
  • Реализовано масштабирование главной формы для мониторов с высоким разрешением.
  • 28.04.2016
  • Исправлен интерфейс при отображении с «нестандартными» настройками шрифтов в системе.
  • 19.04.2016
  • Изменения в службе обновлений под протокол HTTPS.
  • 18.01.2016
  • Устранена ошибка связи с Интернет.
  • Устранена ошибка программирования EEPROM последних значений FF.
  • 01.09.2015
  • Работа под ОС Linux (wine).
  • Устранена ошибка дизассемблера в случае «пустого» HEX файла.
  • 03.02.2015
  • Поддержка нескольких программ avrdude одновременно.
  • Поддержка FTDI программирования чипов.
  • Поддержка программы avrdude до версии 6.1.
  • Дизассемблер версии 1.00.
  • 21.01.2015
  • Качественно новая версия программы.
  • Переезд на новую площадку.
  • Новый дизайн.
  • Возможность сохранять и восстанавливать настройки фьюзов.
  • Теперь все формы можно растягивать.
  • Автоматическое открытие файлов проекта.
  • Строка адресов для дампов FLASH и EEPROM.
  • Строка адресов может расчитыватся автоматически.
  • Возможность связи *.hex, *.eep, *.fus файлов с приложением.
  • Загрузка файлов *.hex, *.eep, *.fus из командной строки.
  • Альфа 0.98 версия дизассемблера.
  • Устранена ошибка прописных и строчных символов при задании порта подключения программатора.
  • Устранена ошибка сохранения первого байта в файлы *.hex, *.eep.
  • Устранена ошибка размера дампа при автоматическом обновлении файлов проекта.
  • 09.12.2013
  • Уточнен перевод.
  • Устранена ошибка — теперь обновления можно отключать.
  • 09.09.2013
  • Доработка механизма обновления программы в связи с переездом на новую площадку.
  • 08.01.2013
  • Доработан механизм работы с фьюзами для младшего семейства микроконтроллеров типа ATtiny.
  • Добавлено описание фьюзов для микроконтроллера ATtiny11, ATtiny12.
  • Добавлена кнопка редактирования файла конфигурации AVRDUDE.
  • Добавлена кнопка копирования в буфер обмена командной строки.
  • Добавлен перевод некоторых фраз.
  • 28.11.2012
  • Первая стабильная версия программы

  • Скачать программу можно на официальной станице.

    lyphotoes / avrdudeshell: графический интерфейс для avrdude от QT.

    перейти к содержанию Зарегистрироваться
    • Почему именно GitHub? Особенности →
      • Обзор кода
      • Управление проектами
      • Интеграции
      • Действия
      • Пакеты
      • Безопасность
      • Управление командой
      • Хостинг
      • мобильный
      • Истории клиентов →
      • Безопасность →
    • команда
    • предприятие
    • Проводить исследования
      • Изучите GitHub →
      Учитесь и вносите свой вклад
      • Темы
      • Коллекции
      • В тренде
      • Учебная лаборатория
      • Руководства с открытым исходным кодом
      Общайтесь с другими
      • События
      • Форум сообщества
    .

    проектов · lyphotoes / avrdudeshell · GitHub

    перейти к содержанию Зарегистрироваться
    • Почему именно GitHub? Особенности →
      • Обзор кода
      • Управление проектами
      • Интеграции
      • Действия
      • Пакеты
      • Безопасность
      • Управление командой
      • Хостинг
      • мобильный
      • Истории клиентов →
      • Безопасность →
    • команда
    • предприятие
    • Проводить исследования
      • Изучите GitHub →
      Учитесь и вносите свой вклад
      • Темы
      • Коллекции
      • В тренде
      • Учебная лаборатория
      • Руководства с открытым исходным кодом
      Общайтесь с другими
      .

      AVRDUDESS — GUI для AVRDUDE — Блог Zak’s Electronics ~ *

      AVRDUDESS — это графический интерфейс для AVRDUDE, инструмента для программирования микроконтроллеров Atmel.

      Некоторые ключевые особенности:

      • Поддерживает все программаторы и микроконтроллеры, поддерживаемые AVRDUDE
      • Поддерживает предустановки, позволяя быстро и легко переключаться между устройствами и конфигурациями
      • Перетаскивать файлы для легкой загрузки
      • Доступны автоматически списки COM-порты
      • Кроссплатформенность с использованием Mono для Linux и macOS
      Нравится AVRDUDESS? Оставить отзыв!

      Загрузки


      Исходный код доступен на GitHub

      Требования
      Windows
      Требуется.NET Framework 2.0 SP1 или новее. На всех системах, начиная с Windows Vista, необходимая версия уже установлена.

      Linux и macOS
      Может запускаться с использованием Mono.
      Не тестировался на macOS, но должен работать. Может потребоваться аргумент --arch = 32 .
      mono --arch = 32 avrdudess.exe

      Установка в Ubuntu 18.04
      Установить Mono (это минимум, вы можете использовать mono-complete для полной установки):
      sudo apt-get установить libmono-system-windows-forms4.0-cil
      В старых версиях Ubuntu вам может потребоваться использовать libmono-winforms2.0-cil .

      Установите AVRDUDE и AVR-GCC (для avr-size):
      sudo apt-get install avrdude gcc-avr

      Запустите AVRDUDESS с моно, возможно, вам придется работать с правами root (sudo), чтобы AVRDUDE мог получить доступ к портам если вы не меняли какие-либо разрешения или правила. d материал:
      моно avrdudess.exe

      .

      Обновление Flutter — Flutter

      меню Flutter logo
      • Документы
        • Начать
          • 1. Установите
          • 2. Настройте редактор
          • 3. Тест-драйв
          • 4. Напишите свое первое приложение
          • 5. Узнайте больше
          • С другой платформы?
            • Флаттер для разработчиков Android
            • Флаттер для разработчиков iOS
            • Флаттер для разработчиков React Native
            • Флаттер для веб-разработчиков
            • Трепет для Xamarin.Формирует разработчиков
            • Введение в декларативный интерфейс
          • Обзор языка дартс
          • Создание веб-приложения
        • Образцы и учебники
          • Галерея флаттера [запущенное приложение]
          • Галерея трепетания [репо]
          • Примеры приложений на GitHub
          • Кулинарная книга
          • Codelabs
          • Учебники
        • развитие
          • Пользовательский интерфейс
            • Введение в виджеты
            • Макеты зданий
              • Макеты во Флаттере
              • Руководство
              • Создание адаптивных приложений
              • Понимание ограничений [NEW]
              • Ограничения коробки
            • Добавление интерактивности
            • Активы и изображения
            • Навигация и маршрутизация
            • Анимации
              • Введение
              • обзор
              • Руководство
              • Неявные анимации
              • Анимация героев
              • Постепенная анимация
            • Расширенный пользовательский интерфейс
              • Щепки
              • жесты
              • Заставки
            • Каталог виджетов
          • Данные и бэкэнд
            • Государственное управление
              • Введение
              • Мыслить декларативно
              • Эфемерно против состояния приложения
              • Простое управление состоянием приложения
              • Параметры
            • Сеть и http
            • JSON и сериализация
            • Firebase
          • Доступность и интернационализация
            • доступность
            • интернационализация
          • Интеграция платформы
            • C и C ++ взаимодействие
            • Веб FAQ
            • Написание платформо-зависимого кода
          • Пакеты и плагины
            • Использование пакетов
            • Разработка пакетов и плагинов
            • Программа «Флаттер Избранное»
            • Фоновые процессы
            • Обновление плагина Android
            • Пакет сайтов
          • Добавить флаттер в существующее приложение
            • Введение
            • Добавление в приложение для Android
              • Настройка проекта
              • Добавить один экран Flutter
              • Добавить фрагмент флаттера
              • Настройка плагина
      .

      alexxlab

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

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