AVRマイコン周りの回路です。
AVRマイコンの役割は、シフトLED用信号の出力、電源コントロール部から電源状態の受け取り、CdSセンサー部からの受光状態の受け取りです。これらの機能をUSB経由でAndroid端末に提供することです。
キーをオフにすると、ACC電源に連動するPIC側の電源が先に落ちて、その電圧をAVRのPART-Cの4番ピンにも入れてキーオフを検出する計画でしたが、うまく動作しませんでした。
PIC側の電源が落ちても、何故か4番ピンに1.6Vほど電圧が残り、キーオフを検出できません。
USB側の電源はオンのままなので、どういう経路からか流れ込んできているようでした。
回路図を見てもそのような配線はなく、いろいろ調べたところ、CdSコントロールPICに送っているクロック信号が原因でした。ラッチアップっていう現象でしょうか? 電源を落としたICの入力端子には電流を流してはいけないというルールがありますが、電源オフと同時に出力を止めるので問題ないと思ってましたが、電源がオフになったこと自体が検出できないという結果に。
仕方なく、電源コントロール部を変更して、PIC側に供給する電源とは別にACCオフの信号をAVRに送るようにしました。
RA0ピンから出ているACC DOWNという線です。
AVRマイコンのPORT-C周辺の抵抗も「電源電圧よりも高い電圧を入力してはいけない」のルールに従い追加しておきました。AVRマイコンはUSBのバスパワーで動作し、他のICは別電源ですから同じ5V規格とはいえ微妙な差があると思いますし。
この変更でやっと計画通りの動作になりました。
AVRのプログラムはこちら elm327d.zip
電源コントロールプログラムの修正版はこちら power_v2.asm
コメントする