USB-シリアルケーブル経由でArduinoをプログラミングするときに、AVRdudeの非同期エラーを修正するにはどうすればよいですか?


9

私はこの PC用のアンビエント照明を構築しようとしています。これは私のArduino Unoで問題なく動作しました。次のステップは、「ブレッドボード上のArduino」を使用して作成することでした。そこで私は空のATmega328チップを購入し、Arduino IDEとUSBaspを使用してArduinoブートローダー(ボード "Arduino Duemilanove w / ATmega328"用)を書き込みました。そして、このATmegaチップがUnoで正常に動作するので、これは正しくロードされています。

次に、FT232RLを使用してUSB-シリアルコンバーターを作成しました。しかし、そのドライバは私のPC(Windows 7 x64)にインストールされませんでした。表面実装のFTDIチップを過熱し、手ではんだ付けしている間にそれを殺したのではないかと思います。

それで、私はそれを脇に置いて、この USB-シリアルコンバータブリッジを手に入れました:(気まずい写真には申し訳ありません)ブレッドボードに追加のST232CNを使用して、電圧レベルをRS232からTTLに変換しましたページ。ループバックテストで確認したように、これは正常に機能します。そして、ST232のピン9をATmegaのピン2に、ピン10をピン3に接続しました。

Arduino IDEから点滅の例をアップロードしようとすると、次のエラーが発生します。

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

私が行うと冗長アップロード(Shiftキー+アップロードを)、私はこのエラー/メッセージが表示されます。

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

また、ATmegaのピン2と3に1kのプルアップ抵抗を追加してみましたが、役に立ちませんでした。では、ST232からATmegaへのシリアル通信に問題があると思いますか?ATmegaのリセットピンへの特別な接続はありますか?10kの抵抗で5Vに引き上げました。


ブレッドボード設定の回路図または写真が役立ちます。
sptrks

3
アップロードを指示する直前、同時、または直後にチップをリセットしましたか?「同期していません」エラーが発生したときはいつでも、それはその相対タイミングに関連していました。私のブレッドボードとEclipse / AVRDudeの場合、アップロードコマンドの直前またはクリックした直後にリセットピンを接地解除するのが適切なタイミングです。しかし、また、お使いのPCが本当にあなたがそれをプラグインする際、アダプターを見ないことを確認してください。
JRobert

1
@potato_in_my_ear-ソリューションを投稿するための適切な形式は、編集ではなく回答です。下を見ると、「あなたの答え」というタイトルのボックスが表示され、そこに入力できます。入力後、人々はあなたの回答に投票し、あなたは回答の左側にあるチェックマークを押すことでそれを「受け入れる」ことができます。
ケビンフェルメール

1
@potato_in_my_ear:お役に立ててうれしいです。あなたは紳士で学者です-私は私のコメントを答えにします。
JRobert、2012年

2
解決策は、コメントへの回答の提供をやめることです。
ケヴィンフェルメール

回答:


6

「同期していません」というエラーが表示された場合は、リセットのタイミングがない(またはリセットを完全に忘れている)ことに関連しています。私のブレッドボードとEclipse / AVRDudeの場合、リセットボタンの接地を解除するのは、アップロードボタンをクリックする直前または同時に、適切なタイミングです。ただし、PCを接続するときに、PCが実際にアダプターを認識していることも確認してください。

以降のarduinoボードは、シリアル接続が確立されるたびにリセットするように構築されており、プログラムによってブートローダーによってリセットされます。 このブログ記事では、それがどのように機能するか、さらに興味深いことに、それを以前のボードにハックする方法について説明しています。必要に応じて、ブレッドボードに配置するのは難しくありません。もちろん、チップには互換性のあるブートローダーが必要です(すでにブートローダーに組み込まれています)。ブレッドボードの場合は、リセットボタン/マウスクリックダンスを実行するだけです。


avrdude.confを編集することで、avrツールチェーンでリセット自体実行できると言う人がいますここ(コメント)。しかし、私はそれを行う方法がわかりません。手伝ってくれますか。私は..リセットすべての時間を押して嫌い
アヌビス

これには、後でAduinoに組み込まれているArduinoボードまたはブレッドボードでのハードウェアサポートが必要になります。コードだけではできません。これは、シリアルDTRからリセットおよびリセットプルアップへのコンデンサに基づいています。古いものやブレッドボードがある場合は、追加する必要があります。このEE StackExの質問と、私が引用したブログ記事は、正しい方向を示しているはずです。
JRobert

2

@JRobertがコメントで述べたように、ATmegaのリセットピンを接地および接地解除する適切なタイミングでうまくいった。「アップロード」をクリックするときはATmegaのリセットピンを接地し続け、それが「アップロード」を示しているように、それを接地解除します。


Arduino miniを入手したばかりで、コードをアップロードするためにリセットボタンを押す必要があることはわかっていましたが、いつなのかわかりませんでした。これでうまくいきました。ありがとう。
スポンジボブ

0

複数のサイトに投稿されたのと同じエラーが発生しましたRE:Arduinoメッセージ「avrdude:stk500_getsync():not in sync:resp = 0x00」など。

D0にパッチされているものをすべて削除すると、USBと電源ジャックから最も離れた[D0] DIGITALピンゼロも「RX」と表示されることがわかりました。

私は2台の異なるコンピューターを試して同じエラーが発生し、次の場合にそれを発見しました:1- [D0]からワイヤーを削除するか回路を開いてください2- Arduinoにアップロードします3-削除したワイヤーを再パッチするか、開いた回路を閉じます[ D0]

アップロードしたときにのみエラーが発生しましたが、これが私の解決策です。今のところ。

それが役に立てば幸い。

ようやくコミュニティに役立つ情報を提供できるようになりました。


1
応答は少し不明確です。「もし私が見つけたら...」という文は不完全です。そこで何を言おうとしているのかわかりません。編集してください、ありがとう。
Anindo Ghosh

この回答は、atmegaハードウェアシリアルピンに接続された競合する回路を持っていることを指します。
Chris Stratton

0

これで私の問題が解決し、ドライバーとセットアップに移動し、arduino IDEのBoards.txtを置き換えます...

Arduino MEGA 2560 R3を使用していますが、同じ問題が発生しました

avrdude:stk500_getsync():同期していません:resp = 0x00

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


-1

「avrdude:stk500_getsync():not in sync:resp = 0x00」エラーを修正するには。FTDIドライバーバージョン2.8.24.0をインストールするだけです。新しいドライバーv2.8.28.0にはいくつか問題があります。


-1

コンピューターのArduino IDEからコードをアップロードしている間に、ArduinoカードのRXピン0を引き出してください。コードのアップロードが成功します。RXピンを取り外して、試します。または、BluetoothのRXをArduinoのRXに(おそらく)入れて、TXが互いに接続されるようにすることもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.