Как Arduino IDE сбрасывает плату перед прошивкой? Почему avrdude этого не делает?
У меня есть плата beetle, клон Леонардо, такой же, как в этом вопросе.
Используя контакт сброса и быстрые руки на клавиатуре, я могу прошить avrdude и получить информацию о плате с помощью командной строки, подобной этой:
$ avrdude -c avr109 -p atmega32u4 -P /dev/ttyACM1
И получить результат:
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude done. Thank you.
Это хорошо, но когда я прошиваю что-то из ArduinoIDE, я заметил, что мне не нужно сбрасывать плату вручную, заземляя контакты сброса, загрузчик запускается автоматически
Как ArduinoIDE сбрасывает загрузчик, какая-то связь на /dev/ttyACM1
?
@Simson, 👍2
1 ответ
Лучший ответ:
Загруженный скетч Arduino содержит в части, предоставленной ядром, код, который ожидает соединения со скоростью 1200 бод по USB. Если установлено соединение со скоростью 1200 бод, плата сбрасывает загрузчик. Затем загрузчик запускает COM-порт и ожидает загрузки.
Чтобы сбросить плату, в файле boards.txt upload.use_1200bps_touch=true
, Arduino IDE открывает соединение со скоростью 1200 бод с платой, затем обнаруживает новый COM-порт и запускает avrdude для загрузки.
- avrdude ser_open() can't set com-state
- avrdude: ошибка проверки, первое несоответствие в байте 0x0000 : 0x00 != 0x16 с использованием USBasp
- Где параметры avrdude определяются в Arduino IDE?
- Запись загрузчика на Adafruit Feather 32u4
- Ошибка проверки Avrdude при прошивке кода Arduino Mega
- Невозможно загрузить скетчс помощью Platformio (но Arduino IDE работает)
- Избегать 10 попыток Avrdude, когда программатор не отвечает
- Можно ли оживить плату Arduino Leonardo (mini beetle)?