2012/02/11

S9706の電源制御とFemtoCube電子系


 独立して動く回路では、周辺回路の電源を必要な時以外はOFFにすることで無駄な消費電力を削減することができる。
 既にFMトランスミッタはコマンドで電波発信を止められるようにしている。

S9706はデータシートを読むと消費電流が10mAとある。

これならAVRのポートでも駆動できそうなので、VccはATmega328のピンから取ることにした。
FemtoSatの回路は周辺機能全OFFで定常6mA程度(クロック8MHz)

ここで期待通りON/OFFができているかどうか確認するため、回路の消費電流を測定することにした。

まずは、単純にソースの上端下端で電源ピンをHIGH/LOWしてみた。
FemtoCubeの回路自体はLチカだけさせている状態で6mA以下なのだが、そこでS9706が一旦ONになったタイミングから、突然データシートの4倍くらいの電流が流れ続けた。異常な数値だ。これに送信中のFMトランスミッタが加わると回路の消費電流は80mAを超える。

・異常電流でもS9706の動作は問題ない。前記事
・S9706の電源OFFをやめると10mA程度で一定に。 

消費電流は嘘をつかない。ということで、電源ピンをONにしないで起動してみたところ、データは届かず、やっぱり4倍の電流が現れた。どうも電源OFFにした時、データラインはそのまま放置してるのが問題だった様子。

とりあえず電源OFF時にS9706の全てのピンをLOWに落とすようにしたら、こんどこそはデータシート通りの消費電流が再現できた。単純なことだったね・・・
読み出し時だけONなので、連続取得以外では消費電流はピーク値として扱えそう。

電子系の作り込み


デモ用プロトタイプの頃からすると、少し思想を変える。FMトランスミッタは乗っけておくけど、データ通信はXBeeに譲る。太陽電池で運用することを視野に入れたEM設計を進める。

現在の電流モード
(3.3v時)
・待機 6mA ~20mW
・計測 10mA 
・電波送信 41mA 135mW

待機モードなら、日光下では以前作った小さなアモルファスセルでもギリギリ動かせそうだ。足りなければ電波送信の回数を減らせば良い。
あとは充電させるために、クロック分周比をいじってスリープさせるとよさそう。

残り少ないA/Dも活用したい。部品箱の底で眠っていた気圧センサを搭載することにしたので、そっちの温度センサをアテにしてLM60は外す。1ch、あるいはI/Oの空きができた。
ここにはXBeeのシャットダウン制御端子がつく予定。
SCP1000の制御線を全実装すると、残りのI/Oは埋まった。
残されたA/D3つは照度、光電池出力、バッテリ電圧計測に割り当てる。
観測周期も通常は1Hz以下を想定しているのでこれでいいのだ・・・。

以下は作業管理テキストより。


------------------------------
端子管理
D0 RXD //XBee/ATP3011F4-PU
D1 TXD //
D2 //SCP1000_TRIG(1)
D3 NS73M TX(LineOut)
D4 //SCP1000_DRDY(2)
D5 //S9706_CK
D6 //S9706_DOUT
D7 S9706_VCC
D8 S9706_Range
D9 S9706_Gate
D10 CS //SCP1000_CSB(7)
D11 MOSI //SCP1000_MOSI(5)
D12 MISO //SCP1000_MISO(6)
D13 SCK LED//SCP1000_SCK(3)
A0 //XBee_sleep/LTC3105_shdn/LED
A1 //solarcell_voltage(ref1V1)
A2 //battery_voltage(ref1V1)
A3 Light_sensor_NaPiCa(ref1V1)
A4 SDA NS73M, mag, EEPROM
A5 SCL NS73M, mag, EEPROM


最近はやりのRAMオンチップSOCの内部を見てるような


UP-204GSR基板が狭い。SCP1000基板は足を切ってAtmegaと24C1024の上に貼り付けることになるようだ・・・


参考
浜松ホトニクス デジタルカラーセンサ S9706

Arduinoで遊ぼう -動作クロックを切り替えて省電力制御 (なんでも作っちゃう、かも)