• 締切済み

PIC16F84がハングアップする

PIC16F84を使用して、ある電飾をコントロールをさせています。 一旦、完成して1ヶ月ぐらい使用していました。 先日、電源をOFFにしても、しばらく点滅している状態にしたくて、 電源アダプターから5Vへ変換してPICへ供給している3端子レギュレーターのアウトプット側に 1.5Fの大容量のコンデンサを取り付けました。 【レギュレーター→ダイオード→1.5Fコンデンサ→PIC】 その結果、動作しているときに電源を切っても約10分は点滅している状態で、 うまく行ってるように思いました。 しかし、1日ぐらい放置してコンデンサの電圧が完全になくなると、 次に電源を入れたときにPICが全く動作しなくなってしまいました。 そこで、一旦コンデンサを切り離してから電源を入れてやると今までどおりの動作をしてくれます。 なぜ、ハングしたままでリセットされないのでしょうか? 思い当たるのは、電源ON時に空のコンデンサに充電されるために、 電圧の立ち上がりが遅いと思われますが、関係あるのでしょうか? どうしても、この大容量コンデンサを入れて使いたいのですが、なにか解決方法は無いでしょうか?

みんなの回答

  • LM5505E
  • ベストアンサー率61% (8/13)
回答No.4

1. 大容量キャパシタが、0vまで使い切れていないと思います。 PIC動作の最低限電圧を下回った時点で、動作終了していると思いますから、 再動作に問題が生じていると思います。 システムリセットICなどを使って、PICにリセット信号を送る。 または、再動作時にMCLRをリセットピンとして、電源投入後リセットさせる。 2-1. 大容量キャパシタが完全に0vの場合は、大容量キャパシタにほとんど電流が吸い取られてしまいます。 一電源の場合は、PICは100mA程度・大容量キャパシタ及び、電飾電源側に2A位の三端子レギュレータを使ってみる。 (逆電流防止の為、三端子レギュレータのIn/Out両方に保護ダイオードを入れる) 2-2. PICと、大容量キャパシタ及び、電飾電源を別にする。二電源方式。 電飾コントロールには、パワートランジスタ類・FET類・フォトカプラーなどを使う。 大容量キャパシタからPICに送る電源の接続方法をきちんと考える。 (私は、秋月のデータロガーに、合計3Fのコンデンサーを追加していますが、問題なく動いています。 (1FコンデンサーRTC用は別)合計4Fのコンデンサを使っています。) 3. スイッチを入れて、電飾がつきだしてから、大容量キャパシタに充電させる。

  • pochi_won
  • ベストアンサー率38% (15/39)
回答No.3

>1日ぐらい放置してコンデンサの電圧が完全になく >なると、次に電源を入れたときにPICが全く動作し >なくなってしまいました。 >そこで、一旦コンデンサを切り離してから電源を入 >れてやると今までどおりの動作をしてくれます。 >なぜ、ハングしたままでリセットされないのでしょ >うか? ハングと言っている時の電源電圧は、PICが動作可能な電圧になっていますか? コンデンサへの充電電流にもよりますが、1.5Fですと電圧が漸近線に近づくまでに結構な時間を要すると思います。 次に、考えられるのが充電途中でのリセットレベルに対するチャタリングと言うかふらつきです。 電源の立ち上がりがなだらかになると、スレシレベル近辺に対する時間が長くなり、リセットが入ったり切ったりを繰り返す可能性があります。 対策としては、 1)WDTを入れる。 ソフトにタイムアウト処理を入れて、ソフト的に復帰させる。 2)外付け回路として、電源電圧が一定電圧を超えるまではリセットが掛かる回路を追加する。 などが考えられます。

回答No.2

三端子レギュレータの周囲につけるコンデンサはどんなものでもいいわけではなく、データシートをみて適切な範囲にしないと、今回のように正しく動作しなくなります。三端子レギュレーターの異常発振としてよく知られているものです。今回の場合の大容量キャパシタは、レギュレータの出力側ではなく、入力側においた方がうまくゆきやすいと思いますが、何にしろデータシートの確認が必要です。

回答No.1

思いつきで書いていますが…… 実は、コンデンサの中にかなりの電荷が残っていて、CPUの動作電圧以下にはなっているが、安定して、リセットがかかる電圧まで下がっていないとかいう可能性はないでしょうか? データシートを見ると、4MHz 時で、動作保証は、2.0v、Power On Reset が起動するのは、一度 1.3v(保証値)まで下がる必要があるように読めますし。 このコンデンサは、電源を切ってもしばらく動かすのがもくてきでしょうか? もしそうで *なければ* 単に、ACアダプタの側(3端子レギュレータの入力側)に、カソードが来るようにダイオードを追加するだけなのですが。 あとは、リセットスイッチをつけるとか。

関連するQ&A