Не удается записать байт блокировки на Arduino Pro Micro
У меня есть Arduino Pro Micro с чипом atmega32u4 и загрузчиком caterine. Однако каждый раз, когда я (успешно) прошиваю какую-либо программу через USB-порт, устройство /dev/ttyACM0
исчезает, и я больше не могу прошивать его через USB.
Поэтому я подключаю его к моему ISP-программатору, совместимому с stk500v2 (MISO/MOSI/SCK подключаются к контактам 14, 16 и 15 на плате; VCC, GND, RST к их аналогам). С этой настройкой я могу установить на него новый загрузчик Caterina. Однако проблема с прошивкой через USB-порт платы осталась.
Поэтому я попытался установить байт блокировки с помощью программатора ISP, который успешно пишет, но затем не проходит проверку:
> avrdude -p m32u4 -P /dev/ttyUSB0 -c stk500v2 -b 115200 -U lock:w:0x0F:m
...
avrdude: verification error, first mismatch at byte 0x0000
0xcf != 0x0f
Правильно ли мое предположение, что исчезновение загрузчика вызвано неправильно установленными (разблокированными) битами блокировки? Если да, то почему я не могу установить байт блокировки через ISP?
1 ответ
Лучший ответ:
Тем временем мне удалось решить эту проблему.
Причина ошибки проверки заключается в том, что два старших бита байта блокировки в моем варианте Arduino Pro Micro доступны только для чтения. Это означает, что если вы (попытаетесь) записать значение 0x00 = 0b0000 0000
, это приведет к значению 0b1100 0000 = 0xC0
на оборудовании.
Таким образом, решением было просто игнорировать эти два бита.
> avrdude -p m32u4 -P /dev/ttyUSB0 -c stk500v2 -b 115200 -U lock:w:0xCF:m
- Arduino Pro Микро кирпичился?
- Одновременно записать загрузчик arduino и скомпилированный скетч
- Запрограммировать новый заводской Atmega328P через контакты UART, не записывая загрузчик
- Самодельный Arduino с использованием ATMEGA328P, ISP или ICSP?
- Загрузка загрузчика Arduino в ATmega32U4 с помощью другого Arduino?
- Mega2560 программирование avrdude мегакора: Device signature = 0x000000
- Первое программирование самодельной платы ATMega32U4
- Невозможно использовать Arduino nano в качестве ISP, потому что он не может прочитать подпись устройства.