PSoC3で電源電圧検出

2011/09/05

PSoC3

製作している電装系の基板には、電池電圧の監視機能を搭載する予定です。

しかし、アートワーク時に電池からPSoC3への結線を忘れていたので、何らかの工夫をしないと電池の電圧を測ることができません。
最も簡単な解決策はジャンパを飛ばして配線してしまうことですが、PSoC3/5に内蔵されている電源電圧監視機能で対応できそうなので試してみることにしました。

PSoC3につながる電源は、LiPo管理IC(BQ24072)からの出力をリニアレギュレータ(TAR5SB33)で3.3Vに定電圧化するだけの単純な回路です。
また、使用しているレギュレータには入力電圧が3.6Vを下回ると出力電圧もそれに従って低下する特性があります。

そこで、PSoC3の電源ピンの低電圧検出機能を使ってバッテリー電圧低下の目安にすることにしました。

詳細はPSoC3のレジスタマップに譲りますが、以下のようにレジスタ設定することで低電圧検出機能を使うことができます。
また、デフォルトの状態では電源低下割り込みはリセットを発生させるので、リセットを無効にしています。

CY_SET_REG8(CYDEV_RESET_CR0, 0x65); //トリップ電圧の設定(アナログ・デジタル)
CY_SET_REG8(CYDEV_RESET_CR4, 0x03); //低電圧リセット無効
CY_SET_REG8(CYDEV_RESET_CR5, 0x03); //低電圧リセット無効
CY_SET_REG8(CYDEV_RESET_CR1, 0x03); //低電圧割り込み有効

電源電圧がトリップ電圧を下回ったかどうかは、以下のレジスタで読み出せます。

CY_GET_REG8(CYDEV_RESET_SR2);

以上の方法で、電源電圧の低下を検出できるようになりました。
下の写真はステータスバーの右端に電源電圧低下を示す"BAT"表示を出したものです。

ステータスバーの拡大図
このときのLiPoの電圧は3.36Vで放電終止電圧まではまだ少し余裕がありますが、十分電圧低下の目安にはなりそうです。