Не удается записать байт блокировки на 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


1 ответ


Лучший ответ:

0

Тем временем мне удалось решить эту проблему. Причина ошибки проверки заключается в том, что два старших бита байта блокировки в моем варианте Arduino Pro Micro доступны только для чтения. Это означает, что если вы (попытаетесь) записать значение 0x00 = 0b0000 0000, это приведет к значению 0b1100 0000 = 0xC0 на оборудовании. Таким образом, решением было просто игнорировать эти два бита.

> avrdude -p m32u4 -P /dev/ttyUSB0 -c stk500v2 -b 115200 -U lock:w:0xCF:m
,