Problème de programmation de Mini Pro via Arduino en tant que FAI

9

Je viens de prendre une paire de cartes clones Arduino Mini Pro 5v (Inland, vendues au Microcenter, actuellement 4 USD) et je voulais utiliser mon Uno comme FAI comme je l'ai fait avec les puces ATmega328 et ATtiny85 auparavant. J'ai programmé l'Uno avec les instructions de la page du tutoriel ArduinoISP et j'ai connecté l'Uno au Mini Pro en utilisant les instructions de cette page . Je ne peux pas obtenir l'Arduino IDE ou avrdude à partir de la ligne de commande pour programmer avec succès ces cartes, peu importe ce que j'essaie. Sauf que je peux utiliser l'IDE Arduino pour graver un nouveau chargeur de démarrage sur le Mini Pro.

J'ai également connecté les voyants d'état (broches 7, 8 et 9), et je peux voir que le programmeur a une condition d'erreur (broche 8) lorsque j'essaie de programmer autre chose que le chargeur de démarrage.

Voici ma ligne de commande avrdude où j'ai essayé de régler les fusibles sur le 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

Je reçois ce qui suit d'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.

Je n'ai eu aucun problème à utiliser à peu près cette même configuration exacte, mais avec une puce ATmega328 ou ATtiny85 sur une planche à pain avec avrdude dans le passé, donc je ne sais pas ce qui se passe ici.

J'ai également jeté un coup d'œil au code ArduinoISP, et je ne suis pas vraiment sûr de ce qu'est resp = 0x1c. Je ne vois pas de valeur 0x1c définie dans la section Définitions STK du code, donc je ne suis pas sûr de ce qui pourrait provoquer cela.

Tout pointeur ici serait apprécié. Et oui, je sais que je peux utiliser la carte Uno avec la puce ATmega328 tirée pour l'utiliser également comme programmeur. Mais je veux pouvoir écraser la zone du chargeur de démarrage avec mon propre code comme je le peux avec une puce ATmega328 régulière.

Merci!

Dennis Munsie
la source

Réponses:

7

Après avoir fouillé un peu plus, il s'avère que mon problème était le débit en bauds. Je pourrais le faire fonctionner en le réglant sur 19200, juste un peu plus lentement. Alternativement, vous pouvez modifier l'esquisse ArduinoISP pour activer des vitesses de transmission plus élevées. J'ai utilisé ce message pour activer 115200 bauds et j'ai pu utiliser avrdude avec succès à des taux plus élevés.

Je ne sais pas comment j'ai manqué cela auparavant, mais c'est au moins facile à résoudre.

Dennis Munsie
la source