■プロトを使ったランニングテストもできたし、仕様も見えてきたのでGPSロガー3号機の組み上げに手をつける。でも手を付ければ付けたで、いろいろ思い付きを盛り込んでみたくなったりもする。やめときゃいいのに。
とりあえずGPSのON/OFFをAVR側から制御できるようにしたい、というのはある。今使っているGPSモジュールは電源ONで即出力開始してしまう。そこを例えばSDカードを抜いている時は電源OFFとか、そうやって僅かなりとも電池を節約とか。GPSのウォームスタートはそれなりに時間がかかるからそういう意味では不利なんだけど、もーばイルでゆーびきダスだからできれば電池は節約する方向にしたい。そういう時はトランジスタとかFETとか使うけど、GPSのON/OFFに応答性は求めないからトランジスタで十分かな。100mAも流れればいいし。
スイッチの実装方式は2通りあって、電源(+)側にスイッチを入れるのをハイサイドスイッチ、グランド(-)側にスイッチを入れるのをローサイドスイッチと言う。たまたま手元にあったトランジスタは2SC1815Yで、NPN型。ベースに電圧を加えるとスイッチが入る格好になるので、ローサイドスイッチが向いている。ローサイドにあるということは、もともと低電圧なところにいるので、電圧をかけやすいわけだ。PNP型のトランジスタはベースの電圧を抜くとスイッチが入る格好になるので、こちらはハイサイドスイッチに向いている。といったことは勉強した。
ブレッドボードで実験しやすいような小型ボードを作ってみたりして、スイッチできることを確認する。
このスイッチ操作はAVRから行うわけだけど、それじゃあAVR自身の電源も操作できるかしらん、と思って組んでみる。AVR側は起動後、しばらくしてベース電圧をかけているピンをプルダウンするように動作する。
しかし、うまくいかない。プルダウンで0V近く下がることを期待していたのだけど、1.7V程度にしか下がらない。ベース電圧としては有効なままなので、電流は流れ続けてしまうし、電流がAVRに流れることで、そこに電圧が生まれてしまう。
トランジスタ壊れたかな?
とか、昔は思ったわけですが、ちょうど今LTSpiceをかじっているところなので、さっそくシミュレートしてみる。
機械的にパチパチやるスイッチのモデルがSpiceには無いので、そこは回路に与える電源の特性をいじってプルアップ,プルダウンさせることでON/OFFの代わりとする(回路が開いたり閉じたりするわけではないから、厳密には代わりにならないはずだけど、他に思い付かない)。
問題のローサイドスイッチ回路はこんなん。
これで、シミュレーションモデルはこちら。ちょっとみずらいけど右上にあるV3が大元の電源スイッチで、グランド近くにあるVBがAVRのピン出力と見立ててもらえれば。つまり、左側R1の位置に本当はAVRがある。
V3の電位が上がるとQ1のコレクタからエミッタに通電することで、コレクタの電位がいきなりエミッタ-ベース間電圧程度まで落ちる。そうするとR1の上下に電圧が発生して、つまりAVRが動きだす。AVRは動くとこのSpice図上でのVBの電位を操作し、V3がオンのうちにプルアップして、ベースに電圧をかけつづける。電源スイッチが切られた後、プルダウンすることで、トランジスタの通電状態を切ろうとする、と考えたのだけど、実物もモデルもそうはなっていない。
要はAVRがプルダウンすることにより得られる電位というのは、回路全体のグランド電位ではなく、R1の下側の電位であって、この電位は変動することを忘れていたというのが原因。電位は離散的ではなく連続して変化するから、VBの電位を下げていくのに連動して、逆にR1の下側電位は上昇していく。VBの電位を下げる目標値というのが実はR1の下側電位だから、この両者がぶつかったところで拮抗してしまったというわけ。
考えてみればそうだよね、という話で、自分が腰をかけた枝を切り落とすのは難しかった。ただ、自分が腰掛けない枝を切り落とすのは動作確認できていたので、GPSの電源操作回路は盛り込もう。
あと、肝心なのは大元の電源だけど、3.3Vを安定して、長時間供給させたい。昨年TIのDCコンバータを使ったけど、今回はオーストリアマイクロシステムズのAS1322Bを使う。乾電池1本の電圧が1Vを割り込んでもなお3.3Vを出力し続けるという。去年使ったTIは1.2Vくらいが限界じゃなかったかな。この石は表面実装パッケージなので、変換基盤に乗せる。こんなちっこいハンダ付けは以前ならそれだけで諦めていたけど、最近はハードルが下がったような。先にランドにハンダを盛るのではなくて、上からハンダを流し込んで、余分なハンダは吸い取るようにした方がうまくいくみたいだ。その方法はSparkFunで知った。
一応、ブレッドボードで動作確認。約3.3V出ていることを確認した。