
投稿日 2020/01/24
超低消費電力のマイコンを電池で駆動して1年放ったらかしというような場合、いつのまにかマイコンが暴走していたとか、ハングアップしていたなんてことはよくある話です。そこでいつでもリセットして再起動できるようにしておくわけですが、それを通常ウォッチドッグという仕組みで自動的に行います。
つまりマイコンの外にマイコンの監視役を置き、マイコンの反応が無くなったら監視役がリセットするという仕組みです。いろいろ方法はあるかと思いますが、一般的にはカウンターをマイコンが一定間隔でクリアしなければ、設定値になったところでリセット信号を出すという簡単な仕組みです。
ただ、マイコンが超低消費電力なら、ウォッチドッグタイマーも超低消費電力でなければなりません。そこでTPL5010の登場です。
TPL5010は、ウォッチドッグタイマーに使えるTI社の超低消費電力タイマーです。TI社のデーターシートのFeaturesから、
-
Supply Voltage From 1.8 V to 5.5 V
-
Current Consumption at 2.5 V and 35 nA (Typical)
-
Selectable Time Intervals: 100 ms to 7200 s
-
Timer Accuracy: 1% (Typical)
-
Resistor Selectable Time Interval
-
Manual MOSFET Power On
-
One-Shot Feature
電源電圧が1.8Vから5.5Vで使え、2.5Vのときの消費電流は35nAほど。超低消費電流です。(リセット信号を出すまでの)インターバル・タイムは100msから7200sまで設定できます。そのインターバル・タイムは外付け抵抗で設定できるので手軽です。(逆に動的に変更できないことを意味しますが)

Digi-Keyから購入したTPL5010DDCR
このTPL5010はマイコンをスリープ状態からアクティブ状態に移行させるため、周期的にウェークアップ(WAKE)信号を出すことができます。マイコンには自らをスリープ状態からアクティブ状態に移行するための機構を持っているのが普通ですが、そのためにマイコン内で動き続けるクロックやカウンターの消費電流が35nAよりも大きいのであれば、マイコンをよりディープなスリープ状態にし、TPL5010を使用したウェークアップを採用する(WAKE信号によるGPIO端子のレベル変化でウェークアップさせる)のも検討の余地があります。
それと同時に、TPL5010はウォッチドッグ機能を搭載しているので、長期連続実効するような用途のマイコンが、暴走の恐れがある場合に強制的にリセットすることができます。
今回使用したマイコンはTwe-Liteです。WAKE信号は使わずウェークアップはマイコンのタイマーを使いましたが、ウォッチドッグ・タイマーとしてTPL5010を使用しました。

TPL5010をDIP変換基板に乗せ、TWE-Liteのウォッチドッグ・タイマーとして組み込む
入手性は問題ありません。Digi-Keyやチップワンストップなどから購入可能です。今回はDigi-Keyに注文し、TLP5010DDCR が1個150円程度で入手できました。Digi-Keyの場合Fedex/クロネコで届きますが、1週間かかりませんでした。
チップの形状は6ピンのSOT-23ですので、取り扱いやすいように秋月のDIP変換基板に乗せました。
マイコンのウォッチドッグ・タイマーは、精度は要求されませんので、数100msから1min(1分)程度のインターバルが確実に確保できれば問題ありません。その点TPL5010は外付け抵抗で簡単にインターバルを設定できるので助かります。データーシートにあるように、
500Ωで100ms
5.2KΩで1s
22.02KΩで1min
となっていますので、今回は約1min(1分)とすべく22KΩを採用しました。端数は気にしません。
今回は単純なウォッチドッグ・タイマーとして使いました。結線は簡単で、電源とGND、外付け抵抗をつないでおきます。RSTn(Low True))をマイコンのRESET端子につないで47KΩ程度の抵抗でプルアップしておきます。DONE(High True)はマイコンのGPIOピンにつないでおきます。

TPL5010のデーターシートから抜粋
Rextでインターバル・タイムを決める
WAKEがTPL5010より周期的にHighになるので、マイコンのウェークアップなどに使える
DONEをマイコンからインターバル・タイム内に叩けばRSTnがLOWになることはない

TPL5010のデーターシートから抜粋
マイコンがDONEを叩けばその後WAKEが立つ。
Tip内に再度DONEを叩かなければRSTnがLOWになりマイコンがリセットされる
上記の接続で、周期的(外付け抵抗が22KΩの場合は約1min以内)にDONEを叩けば(Highにすれば)、RSTnがLowになることはありませんが、叩かなければRSTnがLowになってマイコンをリセットします。もちろんマイコンのプログラム中で、1min以内にDONEを叩けるようにする(今回はTwe-Liteがスリープから覚めたとき、つまりウェークアップしたときにDONEを叩くようにしました)訳ですが、叩けなければ何らかの原因でマイコンが永久ループに陥ったり、暴走したと見なします。当然、マイコンのプログラムは何時リセットされても定常動作に戻れるようにしておくわけです。
また、このようなマイコン回路にとっての外付け回路は通常動き続ける訳ですから消費電流が少ないに越したことはありません。その点TPL5010は電源電圧が2.5Vのときの消費電流が35nA(TYP)と極少です。今日のマイコンは通常待機電流が1uA以下ですから、外付け回路が大食らいではいけません。
(JF1VRR)