web-dev-qa-db-fra.com

avrdude: stk500v2_ReceiveMessage (): délai d'expiration

C’est la principale erreur que je reçois lorsque j’essaie d’exécuter mon programme ARDUINO. La liste complète des erreurs est la suivante:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Mon code est le suivant:

int led=13;
void setup()
{
    pinMode(13,OUTPUT);
}

void loop()
{
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
}

J'ai essayé de mettre à jour les pilotes (ils sont complètement mis à jour) et de télécharger certains programmes. J'ai Windows 7 et mon arduino est un MEGA 2560. Il apparaît dans le Gestionnaire de périphériques et toutes mes connexions sont correctes. Le voyant vert PWR est allumé, ainsi que le voyant L clignotant. Les voyants RX et TX clignotent lors de la mise à jour. J'ai presque tout essayé sur le web. Quel est le problème?

20
nattynerdy

Le message d'erreur signifie essentiellement que le programmeur est incapable de contacter le chargeur de démarrage sur le périphérique; le code que vous essayez de télécharger n'a aucune incidence sur le problème.

Les causes peuvent être nombreuses et variées, quelques problèmes possibles:

  1. Communications UART

    • Le clignotement est en cours, donc j'espère que vous n'utilisez pas le mauvais port. Cela vaut peut-être la peine de vérifier à nouveau, parfois, les périphériques USB COM s’installent sur des numéros de port étranges.

    • Connectez TX à RX (et déconnectez-les de l'AVR si possible), puis ouvrez un terminal sur le port COM. Les caractères affichés en écho doivent être affichés si vous les tapez. Si vous ne le faites pas, quelque chose ne va pas en amont de la puce, il pourrait s'agir de la puce de communication (je pense que l'Arduino 2560 utilise un AVR secondaire au lieu d'un FTDI pour une raison quelconque. Matériel)

  2. Chargeur de démarrage ATmega*

    • L'AVR n'exécute pas le chargeur de démarrage pour une raison quelconque. Si le programmeur ne réinitialise pas le micro avant d’essayer de se connecter, c’est peut-être pour cette raison. Essayez de réinitialiser l’AVR (appuyez et relâchez le bouton) pendant que le programmateur tente de se connecter. Parfois, un logiciel qui tourne en boucle empêche le chargeur de démarrage de se connecter.

    • À moins que cela ne se produise, les fusibles pourraient s’être égarés ou le code effacé. Vous auriez besoin de reflasher le chargeur de démarrage et les fusibles appropriés, à nouveau, voir la page d'informations appropriée pour votre appareil.

  3. Arduino Mega 2560 uniquement: logiciel ATmega8U/16U

    • Peut-être ne fonctionne pas et aurait besoin d'une reprogrammation. Reportez-vous à la section Programmation de la page d'informations , vous aurez besoin du micrologiciel et du logiciel DFU (mise à jour du micrologiciel du périphérique) compatible Atmel sur votre ordinateur pour reflasher la cible.
  4. Dommages matériels sur la carte, le ou les AVR ou la puce FTDI

    • Vous êtes arrosé; besoin d'une nouvelle puce.

Cochez cette message de forum } pour plus d’idées.

11
Nick T

Une autre raison possible de cette erreur pour le Mega 2560 est que votre code comporte trois points d'exclamation à la suite. Peut-être dans une chaîne récemment ajoutée.

3 marques consécutives entraînent le chargement du chargeur d'amorçage Mega 2560 en mode moniteur, ce qui l'empêche de terminer la programmation.

"!!!" <--- rompt le chargeur de démarrage du Mega 2560.

Pour résoudre ce problème, débranchez l’Arduino USB pour réinitialiser le port COM, puis recompilez avec seulement deux points d’exclamation ou avec des espaces entre eux ou autre. Puis reconnectez l'Arduino et programmez comme d'habitude.

Oui, cela m’a mordu hier et aujourd’hui, j’ai retrouvé le coupable. Voici un lien avec plus d'informations: http://forum.arduino.cc/index.php?topic=132595.0

11
aaronsti

J'ai eu cette erreur parce que je n'ai pas spécifié le bon programmeur dans la ligne de commande avrdude. Vous devez spécifier "-c arduino" si vous utilisez une carte Arduino.

Cet exemple de commande lit le statut de hfuse:

avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
6
Michael Franzl

Pour ma modeste compréhension, cette erreur survient avec différents scénarios

  1. vous avez sélectionné le mauvais port ou pas du tout. allez dans outils> ports et sélectionnez le port com avec votre Arduino connecté à
  2. vous avez sélectionné le mauvais tableau. allez dans outils> conseil et cherchez le bon conseil
  3. vous avez l'une de ces répliques d'arduino ou le chargeur de démarrage n'est pas installé sur le micro-contrôleur. Je ne connais pas la solution à cela! si vous savez s'il vous plaît éditer mon post et ajouter les instructions.
  4. (Windows uniquement) vous n’avez pas les bons pilotes installés. vous devez les mettre à jour manuellement.
  5. parfois, lorsque vous avez des fils connectés au tableau, cela se produit. vous devez séparer la carte de la planche à pain ou des câbles que vous avez installés et essayez de télécharger à nouveau. Il semble que les broches 0 (RX) et 1 (TX), qui peuvent être utilisées pour la communication série, sont problématiques et il est préférable d’être libres lors du téléchargement du code.

  6. Parfois, cela se produit au hasard sans raison particulière!

Il existe toutes sortes de solutions sur Internet, parfois difficiles à faire la différence avec la magie! Peut-être que l'équipe Arduino devrait penser à de meilleures erreurs de compilation pour aider les utilisateurs à différencier ces différentes causes.

Le même problème m'est arrivé et aucune des solutions ci-dessus n'a fonctionné. Ce qui s’est passé, c’est que j’utilisais un Arduino uno et que tout allait bien, mais lorsque j’ai acheté un Arduino Mega 2560, quel que soit le croquis que j’ai essayé de télécharger, j’ai eu l’erreur

avrdude: stk500v2_ReceiveMessage(): timeout

Et c'était juste sur l'un de mes ordinateurs Windows et l'autre était juste hors de la boîte. 

Solution:  

Mon problème a été résolu dans Outils> Planches> Gestionnaire de planches ... et en haut à gauche des fenêtres ouvertes, sélectionnez "pouvant être mis à jour" dans la section "Type". Puis sélectionnez les éléments dans la liste et appuyez sur mettre à jour à droite. 

Je ne sais pas si cela résoudra le problème de tout le monde, mais au moins cela résout le mien. 

2
Foad

Je me suis connecté au port USB directement dans mon ordinateur portable et le problème de délai d'attente a été résolu.

Auparavant essayé par le duplicateur de ports, mais il n’avait même pas reconnu arduino, j’ai donc choisi le mauvais port - ce qui a entraîné un message de dépassement de délai.

Assurez-vous qu'il est visible par votre système d'exploitation.

0
PeterM

Si vous utilisez la ligne de commande ino:

ino upload

cela peut être parce que vous utilisez le logiciel arduino en même temps, essayez de le tuer.

0
hanoo

J'exécutais ce code depuis l'installation d'Arduino, j'ai eu la même résolution d'erreur après avoir changé
port série vers COM13
ALLEZ À Option
outil >> port série >> COM132

0
Lokesh Tiwari

Assurez-vous que le moniteur série ne fonctionne pas, ce qui peut provoquer des interférences lors du téléchargement. 

0
qwr

Ce n'est pas vraiment une solution, mais cela peut aider les autres. Contrairement à Nick, cela était dû au code de mon programme. J'ai le modèle méga ADK. Le problème était lié à une instruction switch pour le traitement et l'analyse de l'octet renvoyé [] de la connexion USB à Android. C'est très étrange car il compilerait parfaitement à chaque fois mais échouerait comme l'avait indiqué le PO. Je l'ai commenté et cela a bien fonctionné.

0
anders