質問:
XBee PROS2BではフラッシュできないArduinoMega
swege
2014-03-17 18:04:08 UTC
view on stackexchange narkive permalink

libelium XBee Shieldを搭載したArduinoMega2560を持っています。 XBee S2をマウントしていて、2つのジャンパーをUSB設定に設定するか、それらを削除すると、Arduinoにプログラムをフラッシュできます。

ただし、いずれかをマウントすると、 Arduino上のXBeePRO S2B(3つ使用可能で、すべて同じように動作します)、ジャンパーをどのように設定しても、何もフラッシュすることはできません。 ArduinoIDEで avrdude:stk500v2_getsync():プログラマーとの通信のタイムアウトが常に表示されます。

XBeePRO S2BはArduinoと互換性がありませんか、それとも何が問題なのですか? USBに外部電源を追加しようとしましたが、どちらも役に立ちませんでした。

更新

さらに実験した後、新しい詳細を見つけました。シールドの各ピンを個別に外してみました。それをしている間に、arduinoから reset ピンを外すとフラッシュできることを発見しました- XBeeシールド回路図を見てください。これはICSPのピン5です。コネクタ;写真:photo of it

マルチメーターを使用したところ、XBee PRO S2B CTS / DIO7ポートが高いのに対し、XBee S2のポートは低いため、常にarduinoがリセットされていることがわかりました。 XBee PROS2Bを Sparkfun XBee Explorer USBにマウントし、PuTTYでシリアルポートを開きました。S2とは対照的に、PROS2Bにはいくつかのオプションがあるメニューがあります。

  B-Bypass ModeF-Update AppT-TimeoutV-BL VersionA-App VersionR-Reset>  

Sparkfun XBee Explorer USB, CTS port

Bと入力するとすぐに、CTSポートがローになり、arduinoがリセットされなくなります。また、このモードは、XCTUを介してモジュールを検出するために必要です。ただし、変更されていないarduinoを使用すると、XBeeが常にリセットしているため、この手紙を送信する機会がありません。このメニューとは何ですか、どういうわけか無効にできますか?

当たり前のように思えるかもしれませんが、XBee S2とS2Bのレジスタ設定を比較しましたか? X-CTUなどを介して。速度、パリティなど。
アップデートをご覧ください。このDIO7ポートが問題のように思われるので、特にこの設定で構成を確認しました。 S2とPROS2Bの両方で、「DIO7構成:CTSフロー制御[1]」と表示されます。この「ブートローダーのこと」で待機している間、これらの設定はすべて無関係だと思いますか?
完全な答えではありませんが、IO / 7はCTSフロー制御のようです。 X-CTUソフトウェア(Digi Intl。製)をダウンロードして使用し、プログラムすることを強くお勧めします。コマンドラインATD7は現在の設定を表示し、ATD7 = 0は無効になります(ただし、X-CTUを使用します)。何でこれが大切ですか? XBeeシールドはCTS / RTSを使用してArduino(シールド)に再起動を通知します。その後、ブートローダーが起動し、フラッシュ用のデータストリームを受け入れます。
X-CTUを使用してこの設定を変更しました。 DIO7 [0]を無効にすると、同じ動作を示します。このブートメニューにある限り、高です。バイパスモードに入ると、ローになります。 DIO7を5(デジタル出力、高)に設定すると、バイパスモードを選択した後も高音が鳴り続けます。したがって、すべての設定はバイパスモードに入った後にのみ有効になるようです:/
X-CTUを介して、動作しているS2のすべての設定を動作していないS2Bと比較します。
1 回答:
Madivad
2014-03-20 06:42:15 UTC
view on stackexchange narkive permalink

使用できるPROがありませんが、データシートを確認したところ、60秒後にタイムアウトする必要があるようです

ない場合シリアルトランザクションは60秒のタイムアウト期間内に開始され、ブートローダーはタイムアウトしてメニューに戻ります。アップロードが電源の入れ直しまたはリセットイベントで中断された場合、EM250は無効なアプリケーションイメージを検出し、ブートローダーモードに入ります。 (139ページ)

また、ブートローダーに到達するには特定の条件が必要なようです。明らかにこれらの条件が満たされています。

XBeeモジュールは、Emberのブートローダーの修正バージョンを使用します。このブートローダーバージョンは、モジュールピンDIN(ピン3)、DTR / SLEEP_RQ(ピン9)、およびRTS(ピン16)を使用するカスタムエントリメカニズムをサポートします。ブートローダーを呼び出すには、次の手順を実行します。

  1. DTR / SLEEP_RQをロー(TTL 0V)に設定し、RTSをハイに設定します。
  2. DINピンにシリアルブレークを送信して電源を入れ直します。またはモジュールをリセットします。
  3. モジュールの電源がオンになると、DTR / SLEEP_RQとDINがロー(TTL 0V)になり、RTSがハイになります。
  4. シリアルブレークを終了し、キャリッジリターンは115200bpsでモジュールに返されます。
  5. 成功すると、モジュールはEmberブートローダーメニューを115200bpsでDOUTピンから送信します。
  6. コマンドは115200bpsでブートローダーに送信できます。
  7. ol>

    注: EM250ブートローダーにアクセスして通信するときは、ハードウェアフロー制御を無効にする必要があります。

おそらくピン3を確認してください。 、9および16を起動して、それらの動作を変更できるかどうかを確認します。

ドキュメントを閉じてからずっと経ちましたが、2番目のブロック引用は138ページからのものだと思います


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...