XBeeアダプターでループバックテストをしてみよう [XBee]
※ちょっと、回路図を差し替えました。
RESETスイッチも付けてね。
XBeeを開発キットで購入した場合、キットによっては左の様なUSB接続タイプのボードが付いてくるのですが、XBeeモジュール単体で購入した場合は、X-CTUで各種設定を行う為に自前でPCと接続しなければなりません。
そこで現在配布中のXBeeアダプター基板を使っての接続方法を紹介します。
勿論レガシー232で接続しても良いのですが、まあ今更なのでUSB/シリアル変換を利用する事とします。
マルツで販売されているこの様な変換モジュール基板とブレッドボードを利用するのがお手軽で良いでしょう。
※接続時の配線を書いて置きます。各画像はクリックで大きくできます。
注意点はXBeeの電源電圧やI/O端子は、必ず3.3V以下(最大動作電圧は3.6Vかな?)の電圧で使用する事が必須です。間違ってそれ以上の高い電圧を使用すると永久的な破壊に至る可能性が有ります。
そこで、USBのVBUSから+5Vを頂き、3.3Vに落としてXBeeの電源とFT232RLのVIOに供給します。
また、MFT232RLのジャンパーは、J2のみ閉じておきます。
まずXBeeアダプターをブレッドボードに搭載する前に、正常に3.3Vが生成できているか確認しましょう。写真の三端子レギュレータの使い方だとブレッドボードの”+”マークと"-"マークが逆になる点に注意して下さい。
三端子レギュレータはTA48033Sが必須と言う訳ではなく、手持ちがこれしか無かったからで、500mA程度出せる物なら何でもよいでしょう。
実際には最大でも100mAも消費しませんが。
電源や各配線に問題が無ければXBeeを搭載したXBeeアダプターをブレッドボードに取り付け、USBケーブルを接続し、ドライバーのインストールが完了すれば、X-CTUでアクセスしてみます。
無事、モデムコンフィギュレーション情報等が読み取れたでしょうか。これで開発キットに付属の基板と同様の操作が可能になりました。
※通常の操作ではDIN、DOUTの接続のみで動かせますが、ファームの書き換え等ではRTS、DTRも使用する事に注意してください。
さて、ループバックを行うにはもう一つのXBeeモジュールが必要です。やはりこちらもXBeeアダプターに搭載し、ブレッドボードを使って配線してしまいましょう。しかしこちらは非常に簡単です。
2pin、3pinのDIN、DOUTをショートし、1pinに+電源、10pinに-電源を接続するだけです。電源もシリーズ2製品の無印(PRO版ではない方)の場合は最低動作電圧が2.1Vからとなっていますので、写真の様にニッケル水素電池を直列2本で使用しても動きます。
共に電源を供給し、XBeeアダプターのASSOCLEDが点滅を始めたら、X-CTUのRange Testタブからループバックテストを開始します、、、おっとその前に、事前に両方のモジュールを送信先アドレスに互いを指定する様にX-CTUで設定しておきます。
電池で駆動されているループバック側を手に持って移動してみます。家は木造の2階建て住宅で、今は2階に居ますので、そのまま1階に降りてどの程度電波が到達するかをやってみます。
一々ループバック側を置いてX-CTUが稼動しているPCの前に戻って来なくとも、XBeeアダプターにはTXとRXのLEDが搭載されていますので、LEDの点滅状況から電波の状況が大体判ります。電波が切れると点滅が停止して消灯しますから。
で、結果ですが、なんと家中移動しても偶に短い間消灯するのみで、ほとんどは通じてしまいます。
しょうがないので、ループバック側を手に持ったまま家の外に出てみました。まあ流石に家の外の電波を遮るような物陰に入ると通信が出来なくなります。ですが思った以上に飛びますね。これで最も電波出力の小さい製品ですから。
RESETスイッチも付けてね。
そこで現在配布中のXBeeアダプター基板を使っての接続方法を紹介します。
勿論レガシー232で接続しても良いのですが、まあ今更なのでUSB/シリアル変換を利用する事とします。
マルツで販売されているこの様な変換モジュール基板とブレッドボードを利用するのがお手軽で良いでしょう。
※接続時の配線を書いて置きます。各画像はクリックで大きくできます。
注意点はXBeeの電源電圧やI/O端子は、必ず3.3V以下(最大動作電圧は3.6Vかな?)の電圧で使用する事が必須です。間違ってそれ以上の高い電圧を使用すると永久的な破壊に至る可能性が有ります。
そこで、USBのVBUSから+5Vを頂き、3.3Vに落としてXBeeの電源とFT232RLのVIOに供給します。
また、MFT232RLのジャンパーは、J2のみ閉じておきます。
まずXBeeアダプターをブレッドボードに搭載する前に、正常に3.3Vが生成できているか確認しましょう。写真の三端子レギュレータの使い方だとブレッドボードの”+”マークと"-"マークが逆になる点に注意して下さい。
三端子レギュレータはTA48033Sが必須と言う訳ではなく、手持ちがこれしか無かったからで、500mA程度出せる物なら何でもよいでしょう。
実際には最大でも100mAも消費しませんが。
電源や各配線に問題が無ければXBeeを搭載したXBeeアダプターをブレッドボードに取り付け、USBケーブルを接続し、ドライバーのインストールが完了すれば、X-CTUでアクセスしてみます。
無事、モデムコンフィギュレーション情報等が読み取れたでしょうか。これで開発キットに付属の基板と同様の操作が可能になりました。
※通常の操作ではDIN、DOUTの接続のみで動かせますが、ファームの書き換え等ではRTS、DTRも使用する事に注意してください。
さて、ループバックを行うにはもう一つのXBeeモジュールが必要です。やはりこちらもXBeeアダプターに搭載し、ブレッドボードを使って配線してしまいましょう。しかしこちらは非常に簡単です。
2pin、3pinのDIN、DOUTをショートし、1pinに+電源、10pinに-電源を接続するだけです。電源もシリーズ2製品の無印(PRO版ではない方)の場合は最低動作電圧が2.1Vからとなっていますので、写真の様にニッケル水素電池を直列2本で使用しても動きます。
共に電源を供給し、XBeeアダプターのASSOCLEDが点滅を始めたら、X-CTUのRange Testタブからループバックテストを開始します、、、おっとその前に、事前に両方のモジュールを送信先アドレスに互いを指定する様にX-CTUで設定しておきます。
電池で駆動されているループバック側を手に持って移動してみます。家は木造の2階建て住宅で、今は2階に居ますので、そのまま1階に降りてどの程度電波が到達するかをやってみます。
一々ループバック側を置いてX-CTUが稼動しているPCの前に戻って来なくとも、XBeeアダプターにはTXとRXのLEDが搭載されていますので、LEDの点滅状況から電波の状況が大体判ります。電波が切れると点滅が停止して消灯しますから。
で、結果ですが、なんと家中移動しても偶に短い間消灯するのみで、ほとんどは通じてしまいます。
しょうがないので、ループバック側を手に持ったまま家の外に出てみました。まあ流石に家の外の電波を遮るような物陰に入ると通信が出来なくなります。ですが思った以上に飛びますね。これで最も電波出力の小さい製品ですから。
ZigBeeセンサーネットワーク―通信基盤とアプリケーション
- 作者: 阪田 史郎
- 出版社/メーカー: 秀和システム
- 発売日: 2005/07
- メディア: 単行本
2009-01-20 22:13
nice!(0)
コメント(13)
トラックバック(0)
へー、結構電波飛ぶもんですねぇ。
なんかいろいろと使えそうで、欲しくなってくる。(笑)
by JUN猫 (2008-12-25 22:35)
そうですね、思ってもみなかったと言うか、決して送信出力の所はいじってないのですよ、ストックのまま。あれっていじって良いのだろうか。
T.I.のあれの場合は1階と2階でもう怪しかったから、そんな物かと思っていたので、、、ってなんでそんな事を知っているのだろう。
この後中継機能のテストでもしようかと思っていたのですが、これでは外に出なければ実験できない事が判りました、トホホ。
by hamayan (2008-12-25 22:58)
質問です。MFT232RLの3V3はたぶん3.3V出力だと思うのですが、使えたりしないのでしょうか?
by Sim (2009-01-22 00:33)
基本的にこの3.3Vは、USBトランシーバーのロジック用の電源なのであまり使い回しをしたくは無い。
ですがまあそう言った目的(外部で利用)の為に50mAくらいは使えるよ!って書いてありますね。
XBeeモジュールのPRO版ではない方なら電流の最大が40mAなので使えそうです。
PRO版は最大300mA近く流れるので、こちらはアウトだと思います。
by hamayan (2009-01-22 01:14)
なるほど。了解しました。ていねいな説明をありがとうございます。
by Sim (2009-01-22 01:41)
APIモードに書き換えて、復帰できなくなりこちらのサイトにたどり着きました。
情報ありがとうございました。
私の実験だと、見通し距離(2階の部屋と駐車場の端)で80m(ホイップアンテナ)はデータシート通り通信できました。ただ、走りまわると通信がとぎれます(ドップラー効果?この実験もおもしろいかもしれません)
鉄筋の建物内だと、壁を挟むと10mくらいで通信できなくなります。このあたりは、2.5GHzの周波数特性そのものです。
中継機能に関しては、壁を挟んで通信不可能な配置でどちらからも見通せる場所に、XBEEをおいて電源のオン・オフをしましたが問題なく確認できました。
1:1でシリアルケーブルの代わりに使うのならATモード、複数のモジュールで通信する場合はAPIモードとなります。後で気づきましたが、APIモードの説明はXBEE-ZBのマニュアルの方が説明は詳しいです。
by おる (2009-01-30 13:22)
情報有難うございます。
有線と違ってただ接続できたらOKと言う事は無いので、皆で使って様々な状況でどうなるのか?をお互いに共有できた方がいいですよね。
> 走りまわると通信がとぎれます
AGCが追いつかないのかもしれませんね。
ただそうなると、これはよく通信できたなぁ!と思っちゃいます。
http://www.kumikomi.net/article/explanation/2009/03zigbee/01.html
by hamayan (2009-01-30 14:28)
通信方式に"802.15.4"を選択しているせいかな。
XBEE選択時に、ZBはメッシュ、802.15.4がスタータイプということで
メッシュだと中継があるので分散したデータ収集に便利、スターだと
親機が集中して管理するので通信が確実って説明でした。
最初の構想では、メッシュで複数個のモジュールからブロードキャスト
送信して受け取ったモジュールが必要なデータを使用する(無線版CAN)
みたいなことを考えていたのですが失敗でした。
これは、ブロードキャストの優先度が低いため衝突が起こった場合は
一定時間待ってから再送信されており(この辺りの仕様は802.15.4に
あるのかな?)データが数秒遅れて、届いたころには遅すぎました。
(ブロードキャストでRangeTestをするとよくわかります)
合体ロボットが作れるかと思ったんですが ○rz
by おる (2009-02-04 13:47)
随分前にブロードキャストを試した時、あまり転送速度を上げられなかった記憶があります。
時間が掛かるのはブロードキャストパケットが中継される時間を見込んでいるのかもしれませんね。
Broadcast Radius辺りを設定すれば変わるのかな?。
by hamayan (2009-02-04 23:14)
はじめまして。googleの検索で引っかかりコメントさせて頂きました。
MFT232RLのJ1を3.3V側にショートピンを差し込むと、VIOに3.3Vが
供給されると思うのですが、それをせずにTA48033Sで生成した3.3Vを
VIOに入れているのは確実にXBeeとのTXD,RXDの電圧を合わせるために行っているのでしょうか?
by ぼり (2009-10-30 00:05)
以下はあくまでも私の考え方であり、別に人にそれを薦めたり意見したりとかいう話ではありません。
FT232RLの3.3Vレギュレータは50mAまで出力できるようです。
逆に言えば50mAまでしか保証が無く、それを超えた場合はどうなるか判りません。
多分、本来のこのレギュレータの目的はUSBのロジック周りの電源供給の為にあると思います。
XBeeは省電力タイプでも送信や受信の時に定常で40mAとなっています。つまり10mAしか余裕がありませんし、状態が変化した時の過渡的な電流については記載が無いので、その時どれ位電流を必要とするか判りません。
別に5Vが取れない訳ではないので、FT232RLに付いているおまけ機能みたいなレギュレータの出力をあてにすると言う不確定要素を排除する為に、外部に3.3Vレギュレータを用意して使っています。
※USBの規格から言えばスタンバイ電流が満足しないので、必ずしもベストとは言い難いですけれどね。
by hamayan (2009-10-30 11:27)
hamayanさま、丁寧なお返事ありがとうございます。
もし私の文法が悪く、hamayanさまに少しでも不愉快な気持ちにさせたのであれば申し訳なく思います。
確かにFT232RLからXBeeへの電源供給は流石にまずいと私も思っています。回路図を見たときにXBee以外にもFT232RLのVIOにも三端子レギュレーターから供給されていたので興味を持ってコメントさせて頂いた次第です。
大体は三端子レギュレーターは放熱器なしでは定格の30~40%程度にしておかないと危ないと良く聞きますので、私もTA48033Sを使用し、XBee-Proを使っています :)
ただ三端子レギュレーターから生成された3.3VをXBee-Proに入れ、
MFT232RLのVIO(VccIO)へは無接続で、J2ショートのみ(J1をオープン状態=VIO無供給)にしてAVRとTeraTermで正常に通信できていたのが不思議でした。(AVRからはMFT232RLへは、TX,RX,GNDのみ接続)
AVRマイコンは5Vで駆動させており、USARTのTXDからXBeeのRXDピンにレベルコンバートなしに使い続けていますが問題はないようなのでそのままにしてありますが実際のところどうなのでしょうね・・・。ラッチアップ問題
by ぼり (2009-10-30 14:47)
いえ、こちらこそぶっきらぼうな感じになってすいません。
TA48033Sの損出ですが、基本的にMFT232はデフォルトで使用しているので、「このボードは100mA以下で使用します」と宣言している訳です。
なので消費電流を最大でも100mAとした時、5Vから3.3Vを作るのでレギュレータでの損出は0.17Wです。
データシートではTA48033Sの熱抵抗は62.5℃/W、最大動作温度は85℃です。
62.5℃/Wに0.17Wをかけると約10.6度となり、つまり周囲温度が25℃なら100mA流した場合は35.6℃までしか上がらない事となります。
これは動作温度範囲内に充分居ますので、特にヒートシンクを用意する必要は無さそうですね。
えっと、PRO版でしたっけ、ちょっとその辺を気を付けてください。
> MFT232RLのVIO(VccIO)へは無接続で、J2ショートのみ(J1をオープン状態=VIO無供給)にしてAVRとTeraTermで正常に通信できていたのが不思議でした。
イマイチ状況が掴めないのですが、VIOはその名の通りIO側(モデムインタフェース側)に接続されるデバイスの電源ですので、ここには接続されるデバイスの電源を接続する必要が有るかと思います。
もしAVRを5V、FT232RTのVIOを無接続としても動いていしまっているとすれば、可能性としてはTXやRXの信号線から内部のFETの寄生ダイオードや保護ダイオード経由で電源が供給されてしまい、それで動いてしまっているのではないでしょうか。AVRはシンクもソースも比較的強いですから。
いずれにせよ本来の目的と異なるダイオードの使い方となるので、壊れてしまう可能性は否定できません。
by hamayan (2009-10-30 15:37)