ATTINYのSRAM
ATTINY84でのSRAMについて少し。
ATTINYとかこの辺のマイコンは、スタンバイモードに入れると、消費電流が1uA程度まで落ちる。
改めて主電源を切る必要が無いくらいだ。
で、ウオッチドックを使って定期的に起動し、I/Oポートなどを監視して、必要とあれば起動すればよい。
------
スタンバイモードの時に、メモリー(SRAM)が保持されるならば、前回スタンバイに入った時の状態や、起動回数などを覚えておいて、処理が分けらりたりして便利なのだが。
当該のデータシートを見ても、起動時にメモリーの内容がクリアされない、とある。
webで情報をあさってみても、皆、データは保持されるでしょう、とのコメントしかない。
しかし実際にやってみると、内蔵SRAMのデータは保持されないように見える。
データシートをよく読んでも、クリアされないとは書いてあっても、保持されるとも書いてない。
webの情報も実際に試してレポートしているものは見当たらないようだ。
------
仕方がないので、スリープモードに入る前に、EEPROMにデータを退避して、起動時に読み込むようにして動かす。
しかし、これだとEEPROMの書き込み回数からしても、あまり長期間使うわけにもいかない。
うまい方法はないものか....
------
それとも、スタートアップでメモリの内容が書き換わっているのか?
オブジェクトを逆アセンブルすればわかりそうだけど、億劫だな...
------
世のRTCなどの消費電流は、概ね1uA程度なのだけど、それに対してSRAMのバックアップには、結構な電力が必要なようだ。
前に使ったLPC2368は、2kbyteもの内蔵SRAMもバックアップするようになっていて、Vbat端子に20uAも流れ、小さなリチウムバッテリでは数か月で干上がった。
ATTINYなんて、スタンバイ時の低消費電力も売りなんだろうから、電力を消費するSRAMのバックアップが実装されてなくても、まあそんなもんかとも思う。
チップそのものスタンバイ電流が、0.1uA(typ)なのに、SRAMバックアップに10数uAも消費したら、そりゃあかっこ悪いような。
| 固定リンク | 0
コメント