27MHz~2.4GHz対応RFチェッカー(ラジコン電波検知器) の頒布を始めて2か月が経ち、頒布先から色んなフィードバックをいただいている。その中で多かったのが、「省電力化」の要望だ。小型化するためにボタン電池を使っているケースが多いようだ。それで、今回はRFチェッカーの省電力化を行う。
【現状】
RFデテクタとCPUは常時稼働していて、表示部を合わせた消費電流は 16mA だ。
消費電流の内訳は以下のとおり。
RFデテクタ(LT5534使用) 10mA
バーLED 3mA
CPU 3mA
【省電力化の対策】
・RFデテクタはADCのアクイジションタイムの約4.62usだけ稼動させて、それ以外の時間は停止させる。
・メインループの周期を長くしてCPUを間欠的に動作させる。Sleep中にも稼働できるタイマーはWDTしか無く、その最短周期は 1ms だ。長過ぎる感がするが、仕方無く 1ms でやってみる。
【改善結果】
・RFデテクタ(LT5534使用)とCPUを合わせて 13mA 消費していたのが、 1mA になった。
・バーLEDの消費電流は、表示を切り替える時間の割合が減ったため 4mA になった。全体の消費電流は 16mA から 5mA への低減になった。LED電流を調整すれば、全体で 4mA にできる。
・メインループの周期を 13us から 1ms に長くしたことで、表示のちらつきが無くなった。バトロボーグのようにペアリングの周期が長い(200ms)ものでは間引きされているのがバレてしまうが、大半のコントローラの電波は違和感なく表示されている。
【課題】
・バーLEDが消費電流の大半を占めることになったので、更に改善するにはバーLEDを高輝度のものに替えるしかない。
・間欠動作させるので、電波の包絡線を音で聴くことはできない。また、レガシーバンドでのプロトコル分析もできなくなる。その用途でも使うためには、常時稼働させるモードが必要だ。
【回路図】
RFデテクタを間欠動作させるために LT5534のENピン、または AD8314のENBLピン を 16F1705 から制御する。
RFデテクタ部(LT5534使用)

RFデテクタ部(AD8314使用)

表示部

【ファームウェア】
ファームウェアのプロジェクトは
ここから ダウンロードできる。
プロジェクト名は以下のとおり。
LT5534用(FVR=2.048V) は RFchecker2_FVR2_1705
AD8314用(FVR=1.024V) は RFchecker2_FVR1_1705
【後日談】
WDTの最短周期が1msであるため緩慢な動作になってしまうのを改善しようと画策した。
方策1 タイマーによるWakeUpは諦めて、外部の時定数回路を設けてWakeUpのタイミングをとる。
やり方は
・RC3~GNDにコンデンサを繋ぐ。
・Sleep直前に放電させる。
・Sleep中に内部プルアップにて充電させる。
・IOC割込みでWakeUpさせる。
結果、WakeUpしてからx4PLLが稼働するまでは8MHzのクロックで動作するため、稼働時間の短縮にはならず、メインループが200us程度でも、電源電流は8mAに留まった。
方策2 Sleepしないでダミーループによりメインループの周期を長くして、RFデテクタの稼働率を下げる。
メインループが100us程度でも、電源電流は7mAに留まった。
今回の改善方法は最善とは言えないので、今後も改善が続くと思われる。
- 関連記事
-
スポンサーサイト
- 2017/10/06(金) 13:28:08|
- 2.4GHzラジコン
-
-
| コメント:0