1

USBエクスプローラーに接続されている2台のコンピューター間で通信するときにXbeeAPIモードを正常に使用しました(データを送信して受信します)。しかし、pic33マイクロコントローラーに接続されている無線機で同じことをしようとすると、奇妙な結果が得られます。これが私の設定です:

PCに接続されたXbeeラジオ、ルーターおよびpic33マイクロコントローラーに接続されたXbeeラジオ、コーディネーター

マイクロコントローラはブロードキャストデータを送信します。APIコマンドは次のとおりです。

7E 00 13 10 01 00 00 00 00 00 00 00 00 FF FE 00 00 48 65 6C 6C 6F FD

7E:区切り文字
00 13:長さ
10 01:APIフレームタイプとフレームID
00 x 8:コーディネーター64ビットアドレス
FF FE:16ビットネットワークアドレス
00 00:オプションとブラッドキャスト半径
48 65 6C 6C 6F:データ(こんにちは)
FD:チェックサム

同じコマンドは、PCに接続された両方の無線で完全に機能し、XCTUウィンドウになります。

送信コード全体をデバッグし、必要に応じてコマンドを送信しました。PICKIT3を使用したオンラインデバッグでTXREGレジスタを確認しました。しかし、XCTUウィンドウには何も受信されていません。

私はさまざまな遅延で遊んだり、連続送信と単一送信を試したり、考えられるすべてのことを試しましたが、XCTUウィンドウにはまったく何も表示されません。私が知りたいのは、それを機能させるために何をしなければならないかということです。

4

2 に答える 2

1

これは電子プログラムであり、コーディングの問題ではない可能性があります。PIC と通信できる場合、XBee は正しく動作します。次の問題空間があります。

1) コードがパケットを正しく送信していない (デバッグ済み)、または 2) PIC と XBee の間の電子通信パスに何らかの問題がある

XBees をマイクロコントローラに接続する際に自問自答し、確認すべきことがいくつかあります。

1) XBee を PIC にどのように接続していますか? XBee シリアル I/O は 3.3v です。PIC のロジック レベルも 3.3v であることを確認します。

2) PIC をどのボーレートに設定していますか? PIC のタイミング ソースは何ですか? 内部発振器、RC、または水晶ですか? オシレータのタイミング値がデータシートと一致していることを確認して、予想されるボー レートを導き出します。

3) XBee から読み取ることができますか? PC に接続されたモジュールから PIC に接続されたモジュールにパケットを送信すると、micro には何が届くでしょうか? パケット全体を受け取ることができますか? 欠落しているバイトはありますか? ガベージを受信して​​いますか (これは、ボー レートの不一致を示している可能性があります)。

4) ハードウェア フロー制御が有効になっていますか (XBee パラメータ D6 および D7)。もしそうなら、それらのピンをどのように接続しましたか? XBee が永続的にフロー制御状態にならず、PIC からのバイト受信を妨げないように、論理レベルが正しく設定されていることを確認してください。基本的な通信が機能するようになるまで、フロー制御を無効にすることをお勧めします。

方程式から XBee を完全に排除することで、ハードウェアの問題領域を分割して征服し、期待どおりにシリアルに送信できるようにすることに集中することができます。レベル シフターがある場合は、それを PIC に取り付けてから、PIC を PC に取り付けることができます。PC 端末プログラムから送信しようとしているメッセージを読み取れることを確認できます。幸運にもロジック アナライザーをお持ちの場合は、ロジック アナライザーを接続しなくても同じテストを実行できます。

頑張ってください!

于 2012-04-02T17:01:00.987 に答える
0

Digi は、API モードで XBee モジュールと通信するための ANSI C コードのオープン ソース (MPL 2.0) ライブラリであるxbee_ansic_libraryをリリースしました。POSIX (Linux、BSD、Mac OS X、Cygwin)、Windows (MinGW/MSYS)、DOS (OpenWatcom)、およびいくつかの組み込みプラットフォームをサポートしています。

(まだ) PIC プラットフォームをサポートしていませんが、ハードウェアで使用するために必要なグルー コード (主にシリアル ルーチン) を作成してみてください。

また、XStick または XBee USB アダプターを介して組み込みデバイスと通信するデスクトップ アプリを作成する場合にも役立ちます。

于 2012-12-07T17:28:00.620 に答える