Sparkfun Pro Micro (5v) как ошибка ISP
Я пытаюсь использовать Sparkfun Pro Micro (5 В, 16 МГц) в качестве ISP для программирования чипов Attiny (ОС: Windows10Pro). Я следовал инструкциям. Установлен правильный драйвер и добавлены платы Sparkfun в ArduinoIDE:
С помощью Arduino IDE загрузите на него скетч ArduinoISP. Как видите, программисту доступны два варианта:
- Arduino как ISP
- Arduino Leonardo/Pro Micro в качестве ISP
К сожалению, оба они выдают одну и ту же ошибку:
Sketch uses 28 bytes (2%) of program storage space. Maximum is 1024 bytes.
Global variables use 0 bytes (0%) of dynamic memory, leaving 64 bytes for local variables. Maximum is 64 bytes.
C:\Users\K1\AppData\Local\Arduino15\packages\MicroCore\tools\avrdude\7.1-arduino.1/bin/avrdude -CC:\Users\K1\AppData\Local\Arduino15\packages\MicroCore\hardware\avr\2.3.0/avrdude.conf -v -pattiny13a -cstk500v1 -PCOM16 -b19200 -Uhfuse:w:0xff:m -Ulfuse:w:0b00111010:m -Uflash:w:C:\Users\K1\AppData\Local\Temp\arduino_build_207900/sketch_aug28a.ino.hex:i
avrdude: Version 7.2
Copyright the AVRDUDE authors;
see https://github.com/avrdudes/avrdude/blob/main/AUTHORS.
System wide configuration file is C:\Users\K1\AppData\Local\Arduino15\packages\MicroCore\hardware\avr\2.3.0\avrdude.conf
Using Port : COM16
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude stk500_recv() error: programmer is not responding
avrdude stk500_getsync() warning: attempt 1 of 10: not in sync: resp=0x00
avrdude stk500_recv() error: programmer is not responding
avrdude stk500_getsync() warning: attempt 2 of 10: not in sync: resp=0x00
...
avrdude done. Thank you.
the selected serial port
does not exist or your board is not connected
Я попробовал avrdude в командной строке с этими параметрами и получил тот же результат:
avrdude -p attiny13a -P COM16 -c avrisp -b 19200 -U flash:w:r.hex -v
Я также обнаружил, что проблема, скорее всего, не имеет ничего общего с:
- Целевой чип, который я использую: потому что его изменение не имеет никакого эффекта.
- Проводка: потому что даже если к контактам SPI ProMicro не подключен чип, я получаю ту же ошибку
- USB-кабель хороший: я могу успешно загрузить скетчи в Pro Micro, но не могу использовать его в качестве ISP, и заменил кабель, чтобы исключить такую возможность.
В этом видео парень легко делает то, что я хочу, и у него нет никаких проблем: https://www.youtube.com/watch?v=7Rz9A9VbDx4
Любые идеи приветствуются.
@AKTanara, 👍0
1 ответ
Лучший ответ:
Попался... После двух дней поисков и размышлений наконец нашел решение:
Краткий ответ: В команде avrdude вместо -c avrisp используйте -c arduino:
avrdude -p attiny13a -P COM16 -c arduino -b 19200 -U flash:w:r.hex -v
Развернутый ответ: Моим целевым чипом был ATtiny13a, поэтому мне пришлось использовать MicroCore v2.3.0, единственное ядро, поддерживающее ATtiny13 для Arduino. В отличие от других ядер, в списке programrs.txt этого ядра каждая запись должна иметь строку upload.protocol:
arduinoasispatmega32u4.upload.protocol=
иначе выдаст такую ошибку:
avrdude programmer_not_found() error: cannot find programmer id {upload.protocol}
Я добавил эту строку раньше, чтобы устранить эту ошибку, но, очевидно, с неправильным параметром stk500v1, который я имитировал из записей структуры! Преобразование этого параметра в arduino решило проблему. Вот как должна выглядеть эта запись для ATtiny13 MicroCore v2.3.0 (\packages\MicroCore\hardware\avr\2.3.0\programmers.txt):
arduinoasispatmega32u4.name=Arduino Leo/Micro as ISP
arduinoasispatmega32u4.communication=serial
arduinoasispatmega32u4.protocol=arduino
arduinoasispatmega32u4.upload.protocol=arduino
arduinoasispatmega32u4.speed=19200
arduinoasispatmega32u4.program.protocol=arduino
arduinoasispatmega32u4.program.speed=19200
arduinoasispatmega32u4.program.tool=avrdude
arduinoasispatmega32u4.program.extra_params=-P{serial.port} -b{program.speed}
Для других ядер, таких как ATTinyCore v1.5.2 (\packages\ATTinyCore\hardware\avr\1.5.2\programmers.txt), такая строка не требуется, поэтому эта запись работает нормально:
arduinoasispatmega32u4.name=Arduino Leo/Micro as ISP
arduinoasispatmega32u4.communication=serial
arduinoasispatmega32u4.protocol=arduino
arduinoasispatmega32u4.speed=19200
arduinoasispatmega32u4.program.protocol=arduino
arduinoasispatmega32u4.program.speed=19200
arduinoasispatmega32u4.program.tool=avrdude
arduinoasispatmega32u4.program.extra_params=-P{serial.port} -b{program.speed}
Также вам следует вручную обновить avrdude в ядре Arduino: Загрузите последнюю версию из ЗДЕСЬ и замените ее файлами, связанными с IDE. Если вы не можете их найти, посмотрите ЗДЕСЬ. Если avrdude не обновлен, вы можете получить такую ошибку:
Error during upload using programmer
The uploader process failed
The uploader process failed
The uploader returned an error
avrdude: Version 6.3-20201216
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\K1\AppData\Local\arduino15\packages\MicroCore\hardware\avr\2.3.0/avrdude.conf"
avrdude: error at C:\Users\K1\AppData\Local\arduino15\packages\MicroCore\hardware\avr\2.3.0/avrdude.conf:421: syntax error
avrdude: error reading system wide configuration file "C:\Users\K1\AppData\Local\arduino15\packages\MicroCore\hardware\avr\2.3.0/avrdude.conf"
Третье решение: Используйте это приложение с этой конфигурацией:
- Первое программирование самодельной платы ATMega32U4
- При использовании Arduino Uno в качестве ISP: "Yikes! Invalid device signature" - плохое соединение, неверную конфигурацию или неверную версию avrdude?
- Arduino Pro Micro, получить данные с контакта Tx?
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
- Распиновка аналога Arduino Pro Micro
- Не удается загрузить скетч - avrdude: butterfly_recv(): programmer is not responding
- Keyboard.h: Нет такого файла или каталога - Arduino pro micro (leonardo)
- Arduino UNO для получения подписи чипа ATmega328P-PU