次に XBee の Cyclic Sleep

次に、低消費電力化のために XBee の Cyclic Sleep を試しました。まずは、パラメタ SP を 20秒程度に設定して、様子を見てみます。
XBee の ON ピン出力を見ていると、確かにちゃんと周期的に ON になって、その後スリープするのですが、なぜか RSSI が点きません。もちろんデータも飛びません。おかしーなー。
以下の方の分かりやすいウェブサイト

を拝見し、さらにマニュアルをちゃんと読んだら、以下のように書かれてました。

Note: SP controls the packet buffer time on routers and coordinators. SP should be set on all router and coordinator devices to match the longest end device SP time. See the XBee Router / Coordinator Configuration section for details.

つまり、End Device の SP x SN の最大時間よりも、Router や Coordinator の SP x SN を長く設定しておかないといけませんよ、ということです。マニュアルはちゃんと読みましょう。 > 私
なお、私の場合は外部マイコンCTS 信号を見ているのですが、これが SP x SN ではなくて、SP の間隔でアサートされてしまいます。これを解決するには、Extended Cycle Sleep オプションというのを使う必要があるので、パラメタ SO に 0x4 あるいは 0x6 を設定します。
さらに付け加えて、私は外部マイコンが SP x SN で CTS トリガされると信じてたのですが*1、実はこれは period ではなくて length です。つまり、あるタイミングで起きてから、次に起きるまでの周期は、SP x SN 〜 SP x SN + ST の間になります。これを一定にするには SO に 0x2 を論理和して、"always wake for full ST time" という設定にする必要があるかも知れません。ただし、これをすると常に ST の時間起きてしまうことになるので、電池がもったいないかも知れず、私は利用していません。ま、だいたいの周期で起きてくれれば、いいや。
今日はここまで。ね、眠い。。。

*1:だって、period って書いてあるもん。