関連:
シリアル通信関連記事一覧XBee3が国内で販売されるようになりました。
DigiのページによるとXBee3にて802.15.4(XBee S1タイプ)と通信できるとのことです。
※ファームを書き換えて対応する
ということで早速購入して試してみました。
※2021/01/26 PWM設定に関する情報訂正設定方法
X-CTUにて設定を行いますが、2019/03/01時点ではレガシーバージョンのX-CTU(5.2.8.6)では設定変更を行うことができませんでした。XBee3のファームウェア追加を試しましたが、どうやら対応していない様です。X-CTUの更新は2013年から止まっていますが更新履歴を見ると数年あいてから更新することもある様なのでしばらく様子見です。
しかたないので新しい方のX-CTUを導入します。
ダウンロード
2019/03/01時点でのダウンロード先は
Digiのページから
https://www.digi.com/IoT PRODUCTS AND SERVICESのタブにカーソルを合わせて
※クリックしない方があとで探しやすい
Digi XBee Configurator(XCTU)を選択
DOWNLOAD XCTUをクリック
XCTU v.6.4.2 Windows x86/x64をクリックしてダウンロード(123Mbyte)
インストール
オフライン状態でインストールしてみます。
インストール
利用規約
説明文
訳
マルウェアに対する保護のため、Win7,8,10はProgram Filesフォルダの様なディレクトリ内のファイルを変更する通常の処理が実行されません。
従って:
インストール場所としてこれらの保護された場所が選択されると、問題なくXCTUを実行するために管理者権限が要求されます。
という事で、標準状態ではProgram Filesではなく、Usersフォルダが選択されています。
私は旧XCTU(Ver.5)がインストールされたフォルダを指定しました。
旧XCTU(Ver.6)はXCTUフォルダ、新XCTUはXCTU-NGフォルダへインストールされるので共存可能です。
インストール準備が出来ました。インストールを開始します。
インストール完了
ソフト起動
起動直後に強制アップデートしようとします。
ライブラリのアップデートの確認に失敗しました
強制アップデートのアップデートの確認に失敗しました。
X-CTUの嫌いな点がこの、ユーザーの確認無しに勝手にアップデートしようとするところです。
オンラインであろうがなかろうが勝手にアップデートしようとします。
強制アップデートを停止するには
Preferencesから
こいつと
こいつのチェックを外す
XCTUを起動しなおしてチェックが外れているか再度確認しておきましょう。
モジュールの認識
組み立て済みエクスプローラ等を使ってモジュールをPCへ接続し、モジュールを認識させます。
方法1:プラスマーク使用COMポートや通信設定がはっきりしている場合。
条件を指定してFinish
工場出荷状態のモジュールだと 9600,8,None,1,None にて通信できます。
5秒ぐらいで検索が終わります。
方法2:虫眼鏡マーク使用COMポートや通信設定がよくわからない場合や複数同時にチェックしたい場合に使用します。
検索対象のCOMポート選択(複数選択可)
通信条件の選択
各項目最低1つはチェックを入れてください。(エラーにはなりませんが検索できません)
複数項目選択することも可能ですが、その分検索時間が長くなります。
2ポート、全項目選択だと検索に45分近くかかる様です。
ある程度条件を絞って検索をかけましょう。
検出されたデバイスを追加します。
左の枠に検出されたデバイスの一覧が出てきます。
一覧のアイコン説明
デバイスのタイプとデバイスのセッティングが出てきます。
XBee3は初期状態だとZigBeeのルーター扱いになっています。
設定変更
S1と通信できるように設定を変更します。
デバイスをクリックすると設定内容が表示されます。
表示に10秒ぐらい待たされます。
S1と通信するにはファームウェアを変更します。
Updateから
ファーム選択
S1と通信するために802タイプを選択します。
何か説明
訳
選択されたファームウェアはデバイスで実行中ファームとは異なるブートローダーに関連付けされています。
モジュール内でより安定するために、選択されたファームウェアに必要なブートローダーの更新が推奨されます。
ブートローダーの更新はデバイスの設定を消去します。ブートローダーを更新しますか?
ファーム変更中
ファームを変更するとXBee3も802設定になりました。
あとの設定はS1と同じです。
設定変更後書込みを実行してください。
項目ごとに設定を書き込むこともできます。
通信条件を合わせればS1とXBee3で通信ができるようになりました。
XBee S1とXBee3 802モードの違い
とりあえず通信ができるようになったのでXBee S1とXBee3 802モードの違いを比べてみます。
端子機能の一覧を見る限りではXBee3はXBee S2と同じ機能・同じピン配置の様です。
特に気になった点は
XBee S1→XBee3の変更点
・AD変換ポート 6ポート→4ポート
・AD変換のVref 配線を接続→1.25V/2.5V/VDDから選択
※2019/03/07追記・
ATモード中に定期送信(APIの0x83メッセージ)を受信できなくなった。・定期送信で4ポート分AD変換を行っても
2ポート分しか送信されない事がある。
・電源導入から通信開始に1秒ぐらいタイムラグがある。
ラジコン送信器を作るうえでADポートが4つになったのはちょっと痛いです。
でも4ポートあればそれなりの事が出来ます。
※2019/03/07追記S1では
ATモードだろうが定期送信メッセージを受信できていたのが、XBee3(Firm 2002)では
APIモードにしないと受信できなくなりました。
厳密に言うと受信自体はしているのですが、シリアル通信で出力されません。
今後ファームウェアのアップデートで変わるかもしれません。
ATモード+定期送信はできている様です。
良く分からない現象を確認。
定期送信で4ポート分AD変換を行って送信しても2ポート分しか送信されない事があります。
これが、
USBインターフェースに接続中は4ポート分送信されるのに、
ピッチ変換基板を
使うと
2ポート分しか送信されない事が多いようです。
DIO9の設定を変えると4ポート分送信されやすくなる気がしますが要調査。※2019/03/08追記
色々試していて原因判明。この現象のトリガーとなるのはPin2(DOUT/DIO13)の端子です。
・起動時にこの端子がLoレベルだと2ポート分しか出力されません。
・起動時にこの端子がHiレベルだと4ポート分出力されます。
マニュアルによるとXBee3はデバイスの起動時にDIO13がLoだと強制的にSPIモードになります。
AD変換に使える端子のうちPin17、Pin18はたとえAD機能に設定してあってもSPIモードで起動すると強制的にSPIの機能に割り振られてしまいます。
従って、Pin17、18のAD値は出力されなくなります。
問題となるのはこの端子が起動時に
プルアップもプルダウンもされていないこと。
端子機能設定でプルアップしても起動直後は宙に浮いた状態になります。
従って、Pin2に何も接続せず起動すると空中の電位を拾ってしまうので、SPIモードになったりならなかったりします。
更にPin2を機能設定してDIO13やらDisableやらにしたとしても、起動時は必ずSPIモードのトリガー扱いになります。
これを防ぐには外部回路にてプルアップするしかなさそうです。
追加機能
・電源電圧と温度を取得可能になった
・UARTのポートもDIOとして使用可能になった
・プルダウンが可能になった
・PWMの
周期初期状態のデューティー比を設定可能になった
・SPI通信に対応した
私は基本的に出力機能を活用していないのですが、PWMの周期を設定可能になったのは大きいと思います。※2021/01/26 訂正設定可能なのは初期状態のデューティー比っぽいです。また、ATコマンドにて電源電圧と温度が取得できます。
その他、XBee3で増えた設定項目をピックアップしてみました
コマンド 書込(
Read
Write /
Read
Only):項目名
通信機能関連
C8 RW:802.15.4 Compatibility
NP RO:MaximumPakcetPayloadLength
TO RW:TransmitOptions
PP RO:Output Power in dBm
SB RW:UART Stop Bits
FT RW:Flow Control Threshold
AO RW:API Output Mode
AZ RW:Extended API Options
ポート設定関連
P3 RW:DIO13/UART_DOUTn
P4 RW:DIO14/UART_DIN
D9 RW:DIO9/Sleep_Rq
P2 RW:DIO12/SPI_MISO
ポート機能関連
PD RW:Pull-up/down Direction
M0 RW:
PWM0 Duty CycleM1 RW:
PWM1 Duty CycleLT RW:Associate LED Blink Time
AV RW:
Analog Voltage Reference ラインパッシング設定
T8 D8:Output Timeout
T9 D9:Output Timeout
Q0 P0:Output Timeout
Q1 P1:Output Timeout
Q2 P2:Output Timeout
内部情報
VH RO:Bootloader Version
%C RO:Hardware/Firmware Compatibility
%V RO:
Supply VoltageTP RO:
TemperatureCK RO:Configuration Checksum