Comment puis-je corriger une erreur AVRdude non synchronisée lors de la programmation d'Arduino via un câble USB vers série?

9

J'essaie de construire cet éclairage ambiant pour PC. Cela a fonctionné parfaitement sur mon Arduino Uno. Ma prochaine étape était de le faire en utilisant "Arduino sur une planche à pain" . J'ai donc acheté une puce ATmega328 vierge et brûlé le chargeur de démarrage Arduino (pour la carte "Arduino Duemilanove w / ATmega328") dessus en utilisant l'Arduino IDE et USBasp; et je sais que cela a été chargé correctement car cette puce ATmega fonctionne bien sur l'Uno.

Ensuite, j'ai fait le convertisseur USB-série en utilisant FT232RL ; mais ses pilotes ne se sont pas installés sur mon PC (Windows 7 x64). Je soupçonne que j'ai surchauffé la puce FTDI à montage en surface et que je l'ai tuée en la soudant à la main.

Donc, je l'ai mis de côté et j'ai obtenu ce pont de conversion USB-série: (Désolé pour les photos de merde) J'ai utilisé un ST232CN supplémentaire sur ma planche à pain, pour convertir les niveaux de tension de RS232 en TTL, comme indiqué dans ce page . Et cela fonctionne très bien, comme je l'ai vérifié à partir d'un test de bouclage. Et j'ai connecté la broche 9 de ST232 à la broche 2 d'ATmega et la broche 10 à la broche 3.

Lorsque j'ai essayé de télécharger un exemple de clignotement depuis Arduino IDE, j'obtiens cette erreur:

Binary sketch size: 1026 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00

Lorsque je fais le téléchargement détaillé (Shift + Upload), j'obtiens cette erreur / ce message:

avrdude: usbdev_open(): did not find any USB device "usb"

En outre, j'ai essayé d'ajouter des résistances de rappel 1k aux broches 2 et 3 d'ATmega, mais je n'ai pas aidé. Donc, je suppose que le problème est maintenant dans la communication série du ST232 à ATmega? Et existe-t-il une connexion spéciale à la broche de réinitialisation d'ATmega? Je l'ai monté jusqu'à 5V avec une résistance de 10k.

potato_in_my_ear
la source
Un schéma et / ou une image de votre configuration de planche à pain serait utile.
sptrks
3
Avez-vous réinitialisé la puce juste avant, en même temps ou juste après avoir commandé le téléchargement? Chaque fois que j'ai eu l'erreur «pas en synchronisation», c'était lié à ce timing relatif. Pour ma planche à pain et Eclipse / AVRDude, la mise à la terre de la broche de réinitialisation juste avant ou juste lorsque je clique sur la commande de téléchargement est le bon moment. Mais vérifiez également que votre PC voit vraiment l'adaptateur lorsque vous le branchez.
JRobert
1
@potato_in_my_ear - Le format approprié pour publier une solution n'est pas une modification mais une réponse. Regardez ci-dessous et vous verrez une boîte intitulée "Votre réponse" dans laquelle vous pouvez la saisir. Après être entré, les gens voteront sur votre réponse, et vous pouvez «l'accepter» en appuyant sur la coche à gauche de la réponse.
Kevin Vermeer
1
@potato_in_my_ear: Je suis content que cela ait aidé. Vous êtes un gentleman et un savant - je ferai de mon commentaire une réponse.
JRobert
2
La solution est que les gens cessent de fournir des réponses dans les commentaires!
Kevin Vermeer

Réponses:

6

Chaque fois que j'ai eu l'erreur `` non synchronisé '', cela était lié au fait que je manquais le timing de réinitialisation (ou que j'oubliais complètement la réinitialisation!). Pour ma planche à pain et Eclipse / AVRDude, la mise à la terre de la broche de réinitialisation juste avant ou en même temps que je clique sur le bouton de téléchargement est le bon moment. Mais vérifiez également que votre PC voit vraiment l'adaptateur lorsque vous le branchez.

Les cartes Arduino ultérieures sont conçues pour se réinitialiser chaque fois qu'une connexion série est établie, et par programme par le chargeur de démarrage. Cet article de blog décrit comment cela fonctionne, et plus intéressant encore, comment le pirater sur des tableaux précédents. Il ne devrait pas être trop difficile de le mettre sur une planche à pain si vous le souhaitez. La puce doit avoir un chargeur de démarrage compatible, bien sûr (que vous avez déjà mis dans le vôtre). Pour les planches à pain, je fais juste la danse du bouton de réinitialisation / clic de souris.

JRobert
la source
J'ai trouvé quelqu'un disant que vous pouvez demander à la chaîne d'outils avr d'effectuer la réinitialisation elle-même en modifiant avrdude.conf ; ici (dans les commentaires). Mais je ne sais pas comment faire ça. Pouvez-vous m'aider. Je déteste appuyer sur reset tout le temps ..
Anubis
Cela nécessitera une prise en charge matérielle sur la carte Arduino ou la maquette que les Aduino ultérieurs auront intégrée; le code seul ne peut pas le faire. Il est basé sur un condensateur du DTR série à la réinitialisation et à un pull-up de réinitialisation. Si vous en avez une plus ancienne ou une planche à pain, vous devrez l'ajouter. Cette question EE StackEx et l'article de blog que j'ai cité devraient vous orienter dans la bonne direction.
JRobert
2

Comme @JRobert l'a dit dans les commentaires, le bon moment de mise à la terre et de mise à la terre de la broche de réinitialisation sur ATmega a fait l'affaire. Continuez à mettre à la terre la broche de réinitialisation de l'ATmega lorsque vous cliquez sur "Télécharger", et tout comme il montre "Téléchargement", déconnectez-la.

potato_in_my_ear
la source
Je viens de recevoir un arduino mini et je savais que je devais appuyer sur le bouton de réinitialisation pour télécharger le code, mais je n'ai pas pu savoir quand !!! Cela a fonctionné pour moi. Merci.
Sponge Bob
0

J'ai eu les mêmes erreurs que j'ai vues sur plusieurs sites RE: Message Arduino "avrdude: stk500_getsync (): pas en synchronisation: resp = 0x00" ou similaire.

J'ai trouvé que si je supprime tout ce qui est corrigé en D0 (la broche zéro DIGITAL [D0], la plus éloignée des prises USB et d'alimentation, lit également "RX").

J'ai essayé deux ordinateurs différents et j'ai eu les mêmes erreurs et j'ai découvert que si: 1- Je retire le fil de ou ouvre le circuit à [D0] 2- Télécharge sur Arduino 3- re-patche le fil retiré ou ferme le circuit ouvert à [ D0]

Je n'ai rencontré cette erreur que lorsque je télécharge et c'est ma solution. pour l'instant.

J'espère que cela aide.

Ça fait du bien de donner enfin des informations utiles à une communauté!

ddd
la source
1
La réponse n'est pas claire: la phrase commençant par "J'ai trouvé que si je ..." est incomplète, je ne sais pas ce que vous essayez de dire là-bas. Veuillez modifier, merci.
Anindo Ghosh
Cette réponse fait référence à des circuits en conflit connectés aux broches série du matériel atmega.
Chris Stratton
0

Cela a résolu mon problème, allez dans Pilotes et configuration, remplacez Boards.txt dans l'arduino IDE ...

J'ai Arduino MEGA 2560 R3 et j'ai eu le même problème

avrdude: stk500_getsync (): non synchronisé: resp = 0x00

http://arduino.cc/en/Main/ArduinoBoardADK

user36857
la source
-1

Pour corriger l'erreur «avrdude: stk500_getsync (): not in sync: resp = 0x00». Installez simplement la version 2.8.24.0 du pilote FTDI. Il y a quelques problèmes avec le nouveau pilote v2.8.28.0.

Christian Skjerning
la source
-1

Lors du téléchargement des codes Arduino IDE sur votre ordinateur, veuillez retirer la broche RX 0 de la carte Arduino. Vous obtiendrez le téléchargement du code de réussite. Branchez la broche RX et essayez. Ou, vous pouvez être mis (peut-être) le RX de bluetooth au RX d'Arduino afin que les TX soient connectés les uns aux autres.

baie
la source