Альтернативы для Atmel DFU Flip |
![]() |
Добавил(а) microsin |
Обновлять firmware микроконтроллеров через USB, без программатора очень удобно. Но с некоторых пор у меня перестала работать утилита Flip DFU на операционной системе Windows XP. Причина в том, что Flip DFU от Atmel основана на Java, и Windows XP библиотеками Java перестала поддерживаться. Конечно, давно пора переходить на Windows 7, Windows 8 и Windows 10. Но как быть тем, у кого слабый компьютер, и нет никакого желания переустанавливать Windows? К счастью, есть несколько альтернатив для Flip DFU от Atmel. [dfu-programmer] Консольная утилита с открытым исходным кодом [1]. Пользоваться довольно просто. В распространяемом архиве распространяется как сама утилита (dfu-programmer.exe), так и драйвер USB для устройства DFU (находится в подкаталоге dfu-prog-usb-1.2.2 архива). Подсказку по командной строке можно получить с опцией --help: c:\Program Files\dfu-programmer>dfu-programmer.exe --help dfu-programmer 0.7.0 https://github.com/dfu-programmer/dfu-programmer Usage: dfu-programmer target[:usb-bus,usb-addr] command [options] [global-option s] [file|data] global-options: --quiet --debug level (level is an integer specifying level of detail) Global options can be used with any command and must come after the command and before any file or data value command summary: launch [--no-reset] read [--force] [--bin] [(flash)|--user|--eeprom] erase [--force] [--suppress-validation] flash [--force] [(flash)|--user|--eeprom] [--suppress-validation] [--suppress-bootloader-mem] [--serial=hexdigits:offset] {file|STDIN} setsecure configure {BSB|SBV|SSB|EB|HSB} [--suppress-validation] data get {bootloader-version|ID1|ID2|BSB|SBV|SSB|EB| manufacturer|family|product-name| product-revision|HSB} getfuse {LOCK|EPFL|BOOTPROT|BODLEVEL|BODHYST| BODEN|ISP_BOD_EN|ISP_IO_COND_EN| ISP_FORCE} setfuse {LOCK|EPFL|BOOTPROT|BODLEVEL|BODHYST| BODEN|ISP_BOD_EN|ISP_IO_COND_EN| ISP_FORCE} data additional details: launch: Launch from the bootloader into the main program using a watchdog reset. To jump directly into the main program use --no-reset. read: Read the program memory in flash and output non-blank pages in ihex format. Use --force to output the entire memory and --bin for binary output. User page and eeprom are selected using --user and --eprom erase: Erase memory contents if the chip is not blank or always with --force flash: Flash a program onto device flash memory. EEPROM and user page are selected using --eeprom|--user flags. Use --force to ignore warning when data exists in target memory region. Bootloader configuration uses last 4 to 8 bytes of user page, --force always required here. Note: version 0.6.1 commands still supported. Список поддерживаемых микроконтроллеров можно получить с опцией --targets: c:\Program Files\dfu-programmer>dfu-programmer.exe --targets 8051 based controllers: at89c51snd1c at89c51snd2c at89c5130 at89c5131 at89c5132 AVR based controllers: at90usb1287 at90usb1286 at90usb1287-4k at90usb1286-4k at90usb647 at90usb646 at90usb162 at90usb82 atmega32u6 atmega32u4 atmega32u2 atmega16u4 atmega16u2 atmega8u2 AVR32 based controllers: at32uc3a0128 at32uc3a1128 at32uc3a0256 at32uc3a1256 at32uc3a0512 at32uc3a1512 at32uc3a0512es at32uc3a1512es at32uc3a364 at32uc3a364s at32uc3a3128 at32uc3a3128s at32uc3a3256 at32uc3a3256s at32uc3a4256s at32uc3b064 at32uc3b164 at32uc3b0128 at32uc3b1128 at32uc3b0256 at32uc3b1256 at32uc3b0256es at32uc3b1256es at32uc3b0512 at32uc3b1512 at32uc3c064 at32uc3c0128 at32uc3c0256 at32uc3c0512 at32uc3c164 at32uc3c1128 at32uc3c1256 at32uc3c1512 at32uc3c264 at32uc3c2128 at32uc3c2256 at32uc3c2512 XMEGA based controllers: atxmega64a1u atxmega128a1u atxmega64a3u atxmega128a3u atxmega192a3u atxmega256a3u atxmega16a4u atxmega32a4u atxmega64a4u atxmega128a4u atxmega256a3bu atxmega64b1 atxmega128b1 atxmega64b3 atxmega128b3 atxmega64c3 atxmega128c3 atxmega256c3 atxmega384c3 atxmega16c4 atxmega32c4 Пример программирования памяти ATmega32U4 (команда flash) с предварительным стиранием (команда erase). В память flash будет записан файл myfile.hex в стандартном формате Intel HEX. Обратите внимание, что команды нужно запускать отдельными вызовами dfu-programmer.exe (для этого можно написать BAT-файл): c:\temp>"C:\Program Files\dfu-programmer\dfu-programmer.exe" atmega32u4 erase --force Erasing flash... Success Checking memory from 0x0 to 0x6FFF... Empty. c:\temp>"C:\Program Files\dfu-programmer\dfu-programmer.exe" atmega32u4 flash myfile.hex Checking memory from 0x0 to 0x20FF... Empty. 0% 100% Programming 0x2100 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success 0% 100% Reading 0x7000 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success Validating... Success 0x2100 bytes written into 0x7000 bytes memory (29.46%). [Синопсис] dfu-programmer target[:usb-bus,usb-addr] command [options] [parameters] [Описание] Утилита командной строки dfu-programmer предназначена для поддержки совместимости с протоколом Device Firmware Upgrade (DFU) на множестве компьютерных платформ. Протокол DFU изначально был разработан компанией Atmel с целью обновлять память программ (flash) микроконтроллеров AVR, AVR32, XMEGA и 8051 при участии загрузчика (многие микроконтроллеры Atmel поставляются с завода с прошитым загрузчиком USB, это так называемый USB boot loader, подробнее см. [5, 6, 7]). Таким образом, протокол DFU + загрузчик позволяет обновлять прошивки firmware приборов прямо у потребителя. USB-загрузчики сделаны по образцу стандартного класса устройств USB DFU 1.0, но зависят от специальных расширений, определенных Atmel до такой степени, что стандартные драйверы DFU не работают. Для использования утилиты dfu-programmer сначала подключите программируемое устройство таким образом, чтобы оно перешло в режим DFU. Переход в режим DFU зависит от микроконтроллера, например он может быть реализован нажатием кнопки HWB в момент подачи питания/подключения устройства к USB (или с помощью специального аппаратного сброса). Если микроконтроллер "чистый" (т. е. в нем прошит только загрузчик DFU), то после сброса/включения питания устройство автоматически перейдет в режим DFU. После этого программирование (или чтение) памяти микроконтроллера осуществляется одной или несколькими командами DFU. Обычно сначала нужно запустить команду очистки программируемой памяти (для этого нужно выдать команду erase), после чего выдать команду (команды) прошивки памяти определенными данными. Протокол DFU позволяет также и считывать память микроконтроллера, если это не запрещено специальными кодами защиты. [Поддерживаемые микроконтроллеры] Следующие имена чипов используются в параметре "target" командной строки. MCU на основе ядра 8051: at89c51snd1c, at89c51snd2c, at89c5130, at89c5131, at89c5132 MCU платформы AVR: at90usb1287, at90usb1286, at90usb1287-4k, at90usb1286-4k, at90usb647, at90usb646, at90usb162, at90usb82, atmega32u6, atmega32u4, atmega32u2, atmega16u4, atmega16u2, atmega8u2 MCU платформы AVR32: at32uc3a0128, at32uc3a1128, at32uc3a0256, at32uc3a1256, at32uc3a0512, at32uc3a1512, at32uc3a0512es, at32uc3a1512es, at32uc3a364, at32uc3a364s, at32uc3a3128, at32uc3a3128s, at32uc3a3256, at32uc3a3256s, at32uc3a4256s, at32uc3b064, at32uc3b164, at32uc3b0128, at32uc3b1128, at32uc3b0256, at32uc3b1256, at32uc3b0256es, at32uc3b1256es, at32uc3b0512, at32uc3b1512, at32uc3c064, at32uc3c0128, at32uc3c0256, at32uc3c0512, at32uc3c164, at32uc3c1128, at32uc3c1256, at32uc3c1512, at32uc3c264, at32uc3c2128, at32uc3c2256, at32uc3c2512 MCU платформы XMEGA: atxmega64a1u, atxmega128a1u, atxmega64a3u, atxmega128a3u, atxmega192a3u, atxmega256a3u, atxmega16a4u, atxmega32a4u, atxmega64a4u, atxmega128a4u, atxmega256a3bu, atxmega64b1, atxmega128b1, atxmega64b3, atxmega128b3, atxmega64c3, atxmega128c3, atxmega256c3, atxmega384c3, atxmega16c4, atxmega32c4 [Как использовать] Нет простых механизмов, которые позволили бы программировать несколько устройств одновременно. По умолчанию будет выбрано первое из устройств, которое совпадает по своему коду id с указанным микроконтроллером в опции target. Многие варианты target используют одинаковые коды id. Соответственно избегайте одновременного подключения к хосту программирования нескольких устройств выбранного семейства (AVR, XMEGA, AVR32 или 8051). Однако целевое устройство может быть квалифицировано по шине USB и адресу. Это позволяет одновременно программировать несколько устройств, принадлежащих к одному семейству. Все перечисленные ниже команды поддерживают "глобальные опции". Команды, которые записывают память микроконтроллера, будут проверять записываемые данные путем повторного чтения (если Вы не запретили это), и в случае возникновения ошибок будут выдаваться соответствующие сообщения. Обратите внимание, что в отличие от утилиты BatchISP [] компании Atmel, dfu-programmer будет за один запуск выполнять только одно действие. Таким образом, очистка и программирование памяти требуют выполнения отдельных команд, т. е. dfu-programmer понадобится запускать дважды (что легко реализуется с помощью командного скрипта). configure register [--suppress-validation] data Загрузчики контроллеров 8051 поддерживают запись определенных байт конфигурации. dump [--force] [--bin] [(flash)|--user|--eeprom] Читает память программ (flash) и выводит в stdout не чистые страницы в формате Intel HEX. Используйте --force, чтобы вывести всю память, и --bin, чтобы выводит данные в двоичном формате. Страница пользователя (user page) и EEPROM выбираются через --user и --eeprom. erase [--force] Стирает всю память flash. Для устройств AT90 и ATmega выполнение команды стирания должно быть сделано перед тем, как станут доступными другие команды. Процедура очистки предварительно проверяет чистоту памяти, и память очищается только в случае, если не все её данные равны 0xFF. Это поведение по умолчанию можно отменить используя --force, тогда память будет стираться принудительно. flash [--force] [(flash)|--user|--eeprom] [--suppress-validation] [--suppress-bootloader-mem] Записывает память flash (память программ микроконтроллера). Входной файл file (или поток stdin) должен иметь формат Intel HEX. Опция --suppress-bootloader-mem игнорирует любые данные, записываемые в область памяти загрузчика (bootloader memory space). Эта опция в частности полезна для чипов AVR32. Опция --force говорит программе игнорировать тот факт, что записываемая область памяти может быть не чистая. User page и eeprom выбираются соответственно опциями --user и --eeprom. Пространство пользователя (user space) памяти flash чипов AVR32 лежит вне обычного диапазона блоков flash, и это было разработано для хранения конфигурационных параметров. Конфигурация загрузчика (bootloader configuration) использует последние от 4 до 8 байт области пользователя (user page). Если эти данные повреждены, то устройство будет перезапускаться в режим загрузчика до тех пор, пока не будут использоваться допустимые данные (см. даташиты doc7745 или doc32166 компании Atmel). В этом случае всегда требуется использовать --force. --serial предоставляет способ вставлять серийный номер или любую другую уникальную последовательность байт в образ данных, который программируется в устройство. Это дает возможность использовать один файл .ihex для программирования нескольких устройств, и при этом каждое из них получит свой собственный уникальный серийный номер. Например, --serial=ABCDEF01:0x6000 запрограммирует по адресу 0x6000 байт с шестнадцатеричным значением 0xAB, по адресу 0x6001 байт 0xCD, и так далее. Здесь до двоеточия должно быть четное количество шестнадцатеричных цифр, однако их последовательность может быть любой длины (существует только ограничение на максимальную длительность командной строки). Подразумевается, что адрес смещения указывается в шестнадцатеричном формате, если он с префиксом "0x", в восьмеричном формате, если он начинается на "0", иначе подразумевается десятичный формат адреса. setsecure Устанавливает бит защиты (security bit, или security fuse) чипов AVR32. Это предотвратит возможность чтения содержимого памяти чипа, за исключением той же сессии, в которой память была запрограммирована. Когда бит защиты установлен, то получить какой-либо доступ к памяти устройства можно только после выполнения команды erase. Очистить бит защиты, когда он установлен, можно только с помощью очистки чипа через JTAG, что также сотрет из памяти bootloader. get register Отобразит байты идентификатора, по которым различают чипы. launch [--no-reset] Запустит программу микроконтроллера путем его сброса. Опция --no-reset может использоваться для запуска устройства без сброса (jump на начальный адрес программы). Глобальные опции --quiet Генерирует минимальный вывод в консоли. --debug level Позволяет активировать вывод в консоли на указанном уровне подробности (используется для отладки и решения проблем). Конфигурирование регистров Стандартный загрузчик чипов на базе ядра 8051 поддерживает запись байт данных, которые не относятся к чипам AVR. BSB - boot status byte Получение содержимого регистра bootloader-version - прошитая в настоящий момент версия загрузчика [Известные проблемы] Чипы серии at90usb не делают доступными флаги защиты чтения/записи, и по этой причине команды dump или flash могут возвратить ошибку без всякой полезной информации о причине ошибки. Чтобы снять любую защиту от записи или чтения любого чипа, требуется его полная очистка. Для чипов AVR32 операция стирания через USB также снимет защиту до момента перезагрузки устройства. Чтобы снять защиту постоянно, требуется применить JTAG erase (что также сотрет и bootloader). На платформах xNix Вам нужно быть членом группы uucp, чтобы получить доступ к устройству без прав доступа root. Автор: Weston Schmidt < weston_schmidt@alumni.purdue.edu > [См. также] dfu-programmer.sourceforge.net [AVRDUDE] Утилита командной строки с открытым исходным кодом [2]. AVRDUDE начиная с версии 6.1 поддерживает протокол DFU Flip. Получить Windows-версию можно в архиве avrdude-6.3-mingw32.zip, доступному по ссылке [3]. Распакуйте архив в любую папку на диске. Обратите внимание, что вместе с исполняемым файлом avrdude.exe в архиве находится конфигурационный файл avrdude.conf. Этот файл обязательно должен находиться на диске в одном каталоге вместе с исполняемым файлом avrdude.exe. Подсказку по опциям командной строки можно получить с опцией -?, либо запуском без опций: c:\Program Files\avrdude-6.3-mingw32>avrdude.exe -? Usage: avrdude.exe [options] Options: -p < partno> Required. Specify AVR device. -b < baudrate> Override RS-232 baud rate. -B < bitclock> Specify JTAG/STK500v2 bit clock period (us). -C < config-file> Specify location of configuration file. -c < programmer> Specify programmer type. -D Disable auto erase for flash memory -i < delay> ISP Clock Delay [in microseconds] -P < port> Specify connection port. -F Override invalid signature check. -e Perform a chip erase. -O Perform RC oscillator calibration (see AVR053). -U < memtype>:r|w|v:< filename>[:format] Memory operation specification. Multiple -U options are allowed, each request is performed in the order specified. -n Do not write anything to the device. -V Do not verify. -u Disable safemode, default when running from a script. -s Silent safemode operation, will not ask you if fuses should be changed back. -t Enter terminal mode. -E < exitspec>[,< exitspec>] List programmer exit specifications. -x < extended_param> Pass < extended_param> to programmer. -y Count # erase cycles in EEPROM. -Y < number> Initialize erase cycle # in EEPROM. -v Verbose output. -v -v for more. -q Quell progress output. -q -q for less. -l logfile Use logfile rather than stderr for diagnostics. -? Display this usage. avrdude version 6.3, URL: < http://savannah.nongnu.org/projects/avrdude/> Список поддерживаемых программаторов выводится командой -c ?: c:\Program Files\avrdude-6.3-mingw32>avrdude.exe -c ? Valid programmers are: 2232HIO = FT2232H based generic programmer 4232h = FT4232H based generic programmer 89isp = Atmel at89isp cable abcmini = ABCmini Board, aka Dick Smith HOTCHIP alf = Nightshade ALF-PgmAVR, http://nightshade.homeip.net/ arduino = Arduino arduino-ft232r = Arduino: FT232R connected to ISP atisp = AT-ISP V1.1 programming cable for AVR-SDK1 from < http://mic ro-research.co.th/> atmelice = Atmel-ICE (ARM/AVR) in JTAG mode atmelice_dw = Atmel-ICE (ARM/AVR) in debugWIRE mode atmelice_isp = Atmel-ICE (ARM/AVR) in ISP mode atmelice_pdi = Atmel-ICE (ARM/AVR) in PDI mode avr109 = Atmel AppNote AVR109 Boot Loader avr910 = Atmel Low Cost Serial Programmer avr911 = Atmel AppNote AVR911 AVROSP avrftdi = FT2232D based generic programmer avrisp = Atmel AVR ISP avrisp2 = Atmel AVR ISP mkII avrispmkII = Atmel AVR ISP mkII avrispv2 = Atmel AVR ISP V2 bascom = Bascom SAMPLE programming cable blaster = Altera ByteBlaster bsd = Brian Dean's Programmer, http://www.bsdhome.com/avrdude/ buspirate = The Bus Pirate buspirate_bb = The Bus Pirate (bitbang interface, supports TPI) butterfly = Atmel Butterfly Development Board butterfly_mk = Mikrokopter.de Butterfly bwmega = BitWizard ftdi_atmega builtin programmer C232HM = FT232H based module from FTDI and Glyn.com.au c2n232i = serial port banging, 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 diecimila = alias for arduino-ft232r dragon_dw = Atmel AVR Dragon in debugWire mode dragon_hvsp = Atmel AVR Dragon in HVSP mode dragon_isp = Atmel AVR Dragon in ISP mode dragon_jtag = Atmel AVR Dragon in JTAG mode dragon_pdi = Atmel AVR Dragon in PDI mode dragon_pp = Atmel AVR Dragon in PP mode dt006 = Dontronics DT006 ere-isp-avr = ERE ISP-AVR < http://www.ere.co.th/download/sch050713.pdf> flip1 = FLIP USB DFU protocol version 1 (doc7618) flip2 = FLIP USB DFU protocol version 2 (AVR4023) frank-stk200 = Frank STK200 ft232r = FT232R Synchronous BitBang ft245r = FT245R Synchronous BitBang futurlec = Futurlec.com programming cable. jtag1 = Atmel JTAG ICE (mkI) jtag1slow = Atmel JTAG ICE (mkI) jtag2 = Atmel JTAG ICE mkII jtag2avr32 = Atmel JTAG ICE mkII im AVR32 mode jtag2dw = Atmel JTAG ICE mkII in debugWire mode jtag2fast = Atmel JTAG ICE mkII jtag2isp = Atmel JTAG ICE mkII in ISP mode jtag2pdi = Atmel JTAG ICE mkII PDI mode jtag2slow = Atmel JTAG ICE mkII jtag3 = Atmel AVR JTAGICE3 in JTAG mode jtag3dw = Atmel AVR JTAGICE3 in debugWIRE mode jtag3isp = Atmel AVR JTAGICE3 in ISP mode jtag3pdi = Atmel AVR JTAGICE3 in PDI mode jtagkey = Amontec JTAGKey, JTAGKey-Tiny and JTAGKey2 jtagmkI = Atmel JTAG ICE (mkI) jtagmkII = Atmel JTAG ICE mkII jtagmkII_avr32 = Atmel JTAG ICE mkII im AVR32 mode lm3s811 = Luminary Micro LM3S811 Eval Board (Rev. A) mib510 = Crossbow MIB510 programming board mkbutterfly = Mikrokopter.de Butterfly nibobee = NIBObee o-link = O-Link, OpenJTAG from www.100ask.net openmoko = Openmoko debug board (v3) pavr = Jason Kyle's pAVR Serial Programmer pickit2 = MicroChip's PICkit2 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 stk500hvsp = Atmel STK500 V2 in high-voltage serial programming mode stk500pp = Atmel STK500 V2 in parallel programming mode stk500v1 = Atmel STK500 Version 1.x firmware stk500v2 = Atmel STK500 Version 2.x firmware stk600 = Atmel STK600 stk600hvsp = Atmel STK600 in high-voltage serial programming mode stk600pp = Atmel STK600 in parallel programming mode ttl232r = FTDI TTL232R-5V with ICSP adapter tumpa = TIAO USB Multi-Protocol Adapter UM232H = FT232H based module from FTDI and Glyn.com.au uncompatino = uncompatino with all pairs of pins shorted usbasp = USBasp, http://www.fischl.de/usbasp/ usbasp-clone = Any usbasp clone with correct VID/PID usbtiny = USBtiny simple USB programmer, http://www.ladyada.net/make/ usbtinyisp/ wiring = Wiring xil = Xilinx JTAG cable xplainedmini = Atmel AVR XplainedMini in ISP mode xplainedmini_dw = Atmel AVR XplainedMini in debugWIRE mode xplainedpro = Atmel AVR XplainedPro in JTAG mode Среди этого обширного списка поддерживаемых программаторов нас больше всего интересуют опции flip1 и flip2, позволяющие задействовать загрузчик Flip DFU Atmel. Опция flip1 применяется для всех микроконтроллеров, кроме XMEGA, а flip2 применяется для XMEGA. Список поддерживаемых микроконтроллеров можно получить командой -p ?: c:\Program Files\avrdude-6.3-mingw32>avrdude.exe -p ? Valid parts are: uc3a0512 = AT32UC3A0512 c128 = AT90CAN128 c32 = AT90CAN32 c64 = AT90CAN64 pwm2 = AT90PWM2 pwm216 = AT90PWM216 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 m1284 = ATmega1284 m1284p = ATmega1284P m1284rfr2 = ATmega1284RFR2 m128rfa1 = ATmega128RFA1 m128rfr2 = ATmega128RFR2 m16 = ATmega16 m161 = ATmega161 m162 = ATmega162 m163 = ATmega163 m164p = ATmega164P m168 = ATmega168 m168p = ATmega168P m168pb = ATmega168PB 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 m32m1 = ATmega32M1 m32u2 = ATmega32U2 m32u4 = ATmega32U4 m406 = ATMEGA406 m48 = ATmega48 m48p = ATmega48P m48pb = ATmega48PB 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 m88pb = ATmega88PB 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 t28 = ATtiny28 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 ucr2 = deprecated, use 'uc3a0512' Пример стирания памяти ATmega32U4: c:\temp>"c:\Program Files\avrdude-6.3-mingw32\avrdude.exe" -c flip1 -p m32u4 -e avrdude.exe: Warning: USB bDeviceClass = 255 (expected 254) avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude.exe: Device signature = 0x1e9587 (probably m32u4) avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: erasing chip avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode avrdude.exe done. Thank you. Пример записи в память flash файла myfile.hex. Обратите внимание на две вещи: во-первых, эта команда автоматически перед записью выполняет стирание памяти flash. Во-вторых, используется опция -F для отмены проверки сигнатуры чипа (иначе почему-то здесь сигнатура читается неправильно, и из-за этого запись во flash почему-то не работает): c:\temp>"c:\Program Files\avrdude-6.3-mingw32\avrdude.exe" -c flip1 -p m32u4 -F -U flash:w:myfile.hex:i avrdude.exe: Warning: USB bDeviceClass = 255 (expected 254) avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude.exe: Device signature = 0x1e9587 (probably m32u4) avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be per formed To disable this feature, specify the -D option. avrdude.exe: erasing chip avrdude.exe: reading input file "c:\asm\vcp-ppf-66\vcp-Si570-control\VirtualSeri al.hex" avrdude.exe: writing flash (8408 bytes): Writing | ################################################## | 100% 0.61s avrdude.exe: 8408 bytes of flash written avrdude.exe: verifying flash memory against c:\asm\vcp-ppf-66\vcp-Si570-control\ VirtualSerial.hex: avrdude.exe: load data flash data from input file c:\asm\vcp-ppf-66\vcp-Si570-co ntrol\VirtualSerial.hex: avrdude.exe: input file c:\asm\vcp-ppf-66\vcp-Si570-control\VirtualSerial.hex co ntains 8408 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 0.27s avrdude.exe: verifying ... avrdude.exe: 8408 bytes of flash verified avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: Error: "lfuse" memory not accessible using FLIP avrdude.exe: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode avrdude.exe done. Thank you. http://download.savannah.gnu.org/releases/avrdude/avrdude-doc-6.3.pdf [Ссылки] 1. dfu-programmer site:dfu-programmer.github.io. |