リセットの罠

PICには外部リセット端子というものがあります。 通常これをプルアップしてHにしておき、リセットしたいときにLにします。 問題は、これをプルアップしていなくても動くということです。 つまり、外部リセットを無効にしていたつもりが、実は有効だったとき、一見何の問題もなく動くことがあります。 当然コンパイルエラーにもなりません。でも何故か突然変な動きをしたりします。なんかの拍子にリセットがかかるからです。 リセットはある動作(たとえばある出力ピンのLからHにする)で決まって起こったりすることが多いので、 原因解析が見当違いの方向に進みやすいので要注意です。

ブラウンアウトリセットにも注意が必要。これを高めに設定していると、ちょっとしたことですぐリセットがかかります。 たとえば、PIC18F2550においてUSBバスパワーでマイコンを動かしている時、
BORV = 0; //ブラウンアウトリセット電圧4.59V
としていると、USB通信をするたびにリセットがかかったりします。 微妙な回路の違いでかかったり、かからなかったりする点が非常に厄介で、原因を分りにくくします。

原因不明の動作をしたとき、まず「リセットを疑う」 のは原因追求に余計な時間をかけないために重要です。

Top