Проблема программирования Mini Pro через Arduino в качестве интернет-провайдера

9

Я только что подобрал пару клонированных плат Arduino Mini Pro 5v (Inland, продается в Microcenter, в настоящее время 4 доллара США) и хотел использовать Uno в качестве интернет-провайдера, как я делал это раньше с чипами ATmega328 и ATtiny85. Я запрограммировал Uno с помощью инструкций на странице учебника ArduinoISP и подключил Uno к Mini Pro, используя инструкции на этой странице . Я не могу получить IDE Arduino или avrdude из командной строки для успешного программирования этих плат, независимо от того, что я пытаюсь. За исключением того, что я могу использовать Arduino IDE для записи нового загрузчика на Mini Pro.

Я также подключил светодиоды состояния (контакты 7, 8 и 9), и я вижу, что у программиста возникает ошибка (вывод 8), когда я пытаюсь запрограммировать что-либо кроме загрузчика.

Вот моя командная строка avrdude, где я пытался установить предохранители на Mini Pro:

avrdude -P /dev/tty.usbmodema0121 -b 57600 -c avrisp -p atmega328p -U lfuse:w:0xff:m -U hfuse:w:0xdb:m -U efuse:w:0xfd:m

Я получаю следующее от avrdude:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

avrdude done.  Thank you.

У меня не было проблем с использованием почти такой же настройки, но с чипом ATmega328 или ATtiny85 на макете с avrdude в прошлом, поэтому я не знаю, что здесь происходит.

Я также взглянул на код ArduinoISP, и я не совсем уверен, что такое resp = 0x1c. Я не вижу значения 0x1c, определенного в разделе «Определения STK» кода, поэтому я не уверен, что может быть причиной этого.

Любые указатели здесь будут оценены. И да, я знаю, что могу использовать плату Uno с чипом ATmega328, который можно использовать и как программист. Но я хочу иметь возможность перезаписывать область загрузчика своим собственным кодом, как я могу с помощью обычного чипа ATmega328.

Спасибо!

Деннис Манси
источник

Ответы:

7

После того, как я немного потрудился, оказалось, что моей проблемой была скорость передачи данных. Я мог бы заставить его работать, установив его на 19200, чуть медленнее. Кроме того, вы можете изменить эскиз ArduinoISP, чтобы обеспечить более высокую скорость передачи. Я использовал этот пост, чтобы включить 115200 бод, и я смог успешно использовать avrdude на более высоких скоростях.

Не уверен, как я пропустил это раньше, но это легко решить, по крайней мере.

Деннис Манси
источник