web-dev-qa-db-ja.com

avrdude:stk500v2_ReceiveMessage():タイムアウト

これは、ARDUINOプログラムを実行しようとしたときに表示される主なエラーです。エラーの完全なリストは次のとおりです。

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

私のコードは次のとおりです。

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

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

ドライバーを更新(完全に更新)し、いくつかのプログラムをダウンロードしようとしました。 Windows 7を使用しています。arduinoはMEGA 2560です。デバイスマネージャーに表示され、すべての接続が正しく行われています。緑色のPWRライトが点灯し、点滅するLライトも点灯します。更新すると、RXおよびTXライトが点滅します。私はほとんどすべてをウェブで試しました。何が問題ですか?

23
nattynerdy

Mega 2560のこのエラーのもう1つの考えられる理由は、コードに3つの感嘆符が連続している場合です。おそらく最近追加された文字列です。

3個の連続したマークがあると、Mega 2560ブートローダーはモニターモードになり、そこからプログラミングを終了できません。

"!!!"<--- Mega 2560ブートローダーが壊れます。

修正するには、Arduino USBを取り外してCOMポートをリセットし、感嘆符を2つだけ使用するか、スペースを空けて再コンパイルします。その後、Arduinoとプログラムを通常どおり再接続します。

はい、これは昨日私に噛み付き、今日私は犯人を追跡しました。詳細はこちらのリンクをご覧ください。 http://forum.arduino.cc/index.php?topic=132595.

15
aaronsti

このエラーメッセージは基本的に、プログラマがデバイスのブートローダーに接続できないことを意味します。アップロードしようとしているコードは問題に関係ありません。

これの原因は多数あり、さまざまで、いくつかの考えられる問題があります。

  1. UART通信

    • 点滅が発生しているため、間違ったポートを使用していないことを願っています。ただし、USB COMデバイスが奇妙なポート番号にインストールされることがあります。

    • TXをRXに接続し(可能な場合はAVRから切断します)、COMポートのターミナルを開きます。入力すると文字がエコー表示されます。そうしないと、チップの上流で何かが間違っている、それが通信チップである可能性があります(Arduino 2560は何らかの理由でFTDIではなくセカンダリAVRを使用しているため、ソフトウェアまたはハードウェア)

  2. ATmega*ブートローダー

    • AVRは何らかの理由でブートローダーを実行していません。プログラマが接続を試みる前にマイクロをリセットしていない場合、これが原因である可能性があります。プログラマーが接続を試みている間に、AVRをリセットしてください(ボタンを押して放します)。タイトループで実行されるソフトウェアがブートローダーの接続を妨げることがあります。

    • それがなければ、ヒューズがめちゃくちゃになっているか、コードが消去されている可能性があります。ブートローダーと適切なヒューズを再度フラッシュする必要があります。デバイスの適切な情報ページを参照してください。

  3. Arduino Mega 2560のみ:ATmega8U/16Uソフトウェア

    • 動作していない可能性があり、再プログラミングが必要です。 情報ページのプログラミングセクション を参照してください。ターゲットを再フラッシュするには、コンピューターにファームウェアとAtmel互換DFU(デバイスファームウェアアップデート)ソフトウェアが必要です。
  4. ボード、AVR、またはFTDIチップのハードウェア損傷

    • あなたはうんざりしています。新しいチップが必要です。

これを確認してください フォーラムの投稿 さらにアイデアがあります。

12
Nick T

Avrdudeコマンドラインで正しいプログラマーを指定しなかったため、このエラーが発生しました。 Arduinoボードを使用している場合は、「-c arduino」を指定する必要があります。

次のコマンド例は、hfuseのステータスを読み取ります。

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

私の謙虚な理解に、このエラーはさまざまなシナリオで発生します

  1. 間違ったポートを選択したか、まったく選択していません。ツール>ポートに進み、Arduinoが接続されているCOMポートを選択します
  2. 間違ったボードを選択しました。ツール>ボードに進み、適切なボードを探します
  3. これらのarduinoのレプリカの1つがあるか、マイクロコントローラーにブートローダーがインストールされていません。これに対する解決策がわかりません!知っている場合は、私の投稿を編集して手順を追加してください。
  4. (Windowsのみ)適切なドライバーがインストールされていません。手動で更新する必要があります。
  5. ボードにワイヤが接続されていると、これが起こることがあります。インストールしたブレッドボードまたはワイヤからボードを分離して、もう一度アップロードする必要があります。シリアル通信に使用できるピン0(RX)と1(TX)は問題があるようで、コードのアップロード中は空いている方が良いでしょう。

  6. 特定の理由もなくランダムに発生することもあります!

インターネットにはあらゆる種類のソリューションがあり、魔法との違いを見分けるのは難しい場合があります! Arduinoチームは、ユーザーがこれらのさまざまな原因を区別するのに役立つコンパイラエラーを改善することを検討する必要があります。

同じ問題が私に起こり、上記の解決策のどれもうまくいきませんでした。起こったことは、私がArduino unoを使用していて、すべてが順調だったということでしたが、Arduino Mega 2560を購入すると、どのスケッチをアップロードしようとしてもエラーが発生しました:

avrdude: stk500v2_ReceiveMessage(): timeout

そして、それは私のWindowsコンピューターの1つにあり、もう1つはそのまま使用できました。

解決策:

私の問題を解決したのは、[ツール]> [ボード]> [ボードマネージャー]に移動し、開いたウィンドウの左上の[タイプ]セクションで[更新可能]を選択することでした。次に、リスト内のアイテムを選択し、右側の更新を押します。

これで全員の問題が解決するかどうかはわかりませんが、少なくとも私の問題は解決しました。

3
Foad

ラップトップでUSBポートに直接接続しましたが、タイムアウトの問題は解決しました。

以前はポートレプリケーターによって試行されましたが、arduinoを認識しなかったため、間違ったポートを選択しました-タイムアウトメッセージが表示されました。

つまり、OSから見えるようにしてください。

0
PeterM

Inoコマンドラインを使用する場合:

ino upload

arduinoソフトウェアを同時に使用しているために、それを殺そうとする可能性があります。

0
hanoo

私はArduinoセットアップからこのコードを実行していましたが、変更後に同じエラーが解決しました
COM13へのシリアルポート
GO TOオプション
tool >>シリアルポート>> COM132

0
Lokesh Tiwari

シリアルモニターが実行されておらず、読み取り/書き込みが何もないことを確認しますdev/tty/S0(または使用しているポート)、アップロードの干渉を引き起こす可能性があります。

0
qwr

これは実際には解決策ではありませんが、他の人を助けるかもしれません。ニックが私に言ったのとは異なり、それは私のプログラムのコードによるものでした。メガADKモデルを持っています。この問題は、Androidへのusb接続から返されたbyte []を処理および解析するためのswitchステートメントに関連付けられていました。毎回完全にコンパイルされますが、OPが述べたように失敗するため、非常に奇妙です。私はそれをコメントアウトし、うまくいきました。

0
anders