H8マイコンに増設したSRAMを簡易的にバッテリーバックアップする方法とその回路を設計したときのメモです。オリジナルマイコンボードの設計に活用しました。
※最終更新日時 2006/05/19
概要
SRAM(Static RAM)は電源が切れると保存していたデータも消えてしまう。電源とは別にバックアップ用電源を用意し、それをSRAMに供給することでSRAM上のデータの消失を防ぐのがバッテリーバックアップである。
バックアップ用電源には、コイン電池や電気二重層コンデンサ等が用いられる。SRAMのスタンバイ時の消費電流は通常動作時にくらべて少ないので、コイン電池や電気二重層コンデンサでも比較的長時間のデータ保持が可能である。(←よく実験していないのでどれくらいの時間もつのかはわかりません。)
バッテリーバックアップの必要性、利点
SRAM上のデータを保全する。また、デバッグ時に便利?ゲームを作ったとき、前回までのスコアを保存しておくとか。
要するに、セーブデータの作成ができます。
回路設計工程
1.バックアップ用電源ラインの用意
2.チップセレクト切り替え回路の用意
バックアップ用電源ラインの用意
マイコンの電源ラインとは別に、バッテリーバックアップ用の電源ラインを用意する。これは、電源ラインとバッテリーバックアップ用電源ラインをダイオードで分けることで実現できる。
以下、電源ラインをVccライン、バッテリーバックアップ用電源をVbackラインと呼ぶことにする。バックアップ用のバッテリーは、Vbackラインに接続する。SRAMにはVbackより電源を供給する。↓
Vccラインに電源が供給されているときは、Vccラインからダイオードを経てVbackラインに電流が流れるため、SRAMに電源を供給できる。同時に、電気二重層コンデンサを接続した場合はそれに電荷を溜める。
Vccラインに電源が供給されていないときは、ダイオードにより、Vbackラインに接続したバッテリーからVccラインには電流が流れないため、マイコンは動作せずSRAMのバックアップのみが行われる。※実際はわずかに電流は流れる。
●ダイオードによる電圧降下の影響
Vbackラインは、ダイオードの順方向電圧分だけVccラインより電圧が低くなる。それにより、H8マイコンの出力信号電圧がSRAMの入力信号電圧の最大定格を超えてしまう場合がある。最大定格を超えるような場合は素子を破壊する恐れがあるので避ける。
よって、H8の出力する電圧が、SRAMの入力信号電圧の最大定格を超えないようにする。そのために順方向電圧の低いダイオードを選ぶ。SRAMの入力信号電圧の最大定格が、例えばVcc+0.3(V)となっている場合、ダイオードの順方向電圧が最高でも0.3(V)になるように設計する。ダイオードの順方向電圧が低いに越したことはない。
バックアップ用バッテリーの接続方法
SRAMバックアップ用バッテリーとして、コイン電池を接続する場合は、Vccラインに電源を供給している際にコイン電池に電流が流れ込んでくるのを防ぐために、ダイオードが必要になる。↓
SRAMバックアップ用バッテリーとして電気二重層コンデンサを接続する場合に注意する点として、電気二重層コンデンサに電荷が溜まっていないときに、Vccラインに電源を供給したら電気二重層コンデンサに突入電流が流れることである。これを防ぐために電流制限用の抵抗が必要になる。電気二重層コンデンサは、内部抵抗が高い方だが、あったほうがいいだろう。抵抗値は数十オーム程度。↓
また、電気二重層コンデンサの放電時に電流制限用の抵抗が邪魔になるなのでダイオードを挿入する。↑
チップセレクト切り替え回路の設計
SRAMはチップセレクト端子の状態によってスタンバイモードになったり、動作したりする。マイコンのリセット時及びノーアクセス時に、SRAMはスタンバイモードになるようにするディジタル回路を設計する。回路はディジタルICにより実現する。
●SRAMのチップセレクト端子数の確認
SRAMには、チップセレクト端子が1つのものと2つあるものがある。チップセレクト端子が1つだけのSRAMには、これから説明するチップセレクト切り替え回路が必要であるが、チップセレクト端子が2つある場合は回路が非常に簡単になる。
チップセレクト端子が2つあるSRAMのバックアップについては後述します。
以下、SRAMのチップセレクト端子が1つの場合の回路説明
●必要な信号
チップセレクト切り替え回路に必要な端子は―――
入力:マイコンのReset端子, マイコンのCS端子
出力:SRAMのCS端子
以上。2入力1出力のディジタル回路。
そして、この回路はVccラインに電源が供給されないときも動作しなければならない。よってVbackラインより電源を供給する。
ディジタル回路の設計
●真理値表を描く
でき上がった真理値表。↓
マイコンのリセット時及び、SRAMにアクセスしていないときは"Highレベル"になるようにね。
●真理値表よりカルノー図を描く
でき上がったカルノー図。↓
●カルノー図より論理式を求める
でき上がった論理式。↓
又は、
論理式より、"AのnotとBのOR"又は"Aと'Bのnot'のNAND"の回路を作ればよいことがわかる。
●どのディジタルICを使用するか
NAND, NORのどちらかひとつあればその組み合わせで何でも(AND,OR,NOT,NAND,NOR)作れるので、NAND又はNOR素子を使用したい。また、消費電力を低くするためにCMOS ICを使用したい。
今回設計する回路は、NORが3つ又はNANDが2つあれば実現可能である。
私の手元には、4回路NOR(TC74VHC02)と4回路NAND(TC4011BFT)があったので、この2つのICのどちらかを使用することにした。
考察した結果、TC74VHC02(4回路NOR)を使用することにした。このICを選んだ理由は、TC4011BFT(4回路NAND)に比べて、"スイッチング時間が短い", "低電圧で動作する" からだ。
スイッチングに時間がかかることで、SRAMへのアクセスが遅れる。4000シリーズは遅い。これは、H8のアクセスステート数やSRAMのアクセスタイムとの兼ね合いを考慮に入れる。
SRAMにもよるが、電源電圧が2[V]程度あればデータを保持していてくれるようだ。ならばこの切り替え回路も2[V]程度までは動作してほしい。データシートを見ると、TC74VHC02の最小電源電圧は2[V]だがTC4011BFTは3[V]だった。
以上2点が選定の理由である。
●できあがった回路(4回路NOR IC使用)↓
H8のチップセレクト端子はVccラインにプルアップする。RESETラインは別途リセット回路で制御する。使用しない入力端子は固定する。
チップセレクト端子が2つある場合の回路設計
以下、SRAMのチップセレクト端子が2つある場合の回路説明
SRAMのチップセレクト端子が1つだけの場合、左図のような回路を組む必要があった。
しかし、チップセレクト端子が2つある場合は、左図のように一方をH8のチップセレクトと接続し、もう一方をリセットラインに接続すればディジタル回路を設ける必要もなく回路は完成する。
この場合SRAMへのアクセスに対するディジタル回路による遅延時間も発生しない。ただしチップセレクト端子はVccにプルアップし、リセットラインは別途リセット回路で確実に制御すること。
あとがき
私の製作したマイコンボードは、以上で説明した(ような)回路を実装しています。ただ、この回路はあくまで簡易的にバッテリーバックアップするためのものであり、本記事を利用したことにより発生したいかなる損害について、一切の責任を負いませんが、少しでもお役に立てば幸いです。