SDカードを抜き差しすると、挿したときにPICがリセットする。
せっかくRTCCで時刻をキープしているのに、SDカードの抜き差しが出来ないのは困る。
初めは、抜き差しをプログラムで検知しているのかと思って、コードをいろいろ眺めてみたが、そんな箇所は見つけられなかった。
そういう箇所が無いのか、自分が見てもわからないだけなのか、それが分からない。
よくよく考えてみたら、手製のSDカード・ソケットには、カード検出スイッチ(CD)もライト・プロテクト検出スイッチ(WP)も無い。
ChaNさんの回路図でPICへつながっているラインはGNDへつながっている。
つまり、検知できるわけが無いのだった。
それで、あれこれ調べ回っていると、カードに内蔵されているコンデンサのせいでカードを挿したときに電源に影響が出るというようなことが書いてあった。
MMC/SDCの使いかた
ていうか、よく見たら、ここ、ChaNさんのサイトじゃあないですか。
結論
ChaNさんとこでちゃんと勉強してください。
ということで、どんな感じなのか調べてみた。
1.47uHのインダクタをカードの電源の直近につけ、コンデンサはつけない。
抜き差しを2度しているが、どこでやったかわからない。
もちろん、PICもリセットしない。
2.47uHのインダクタをブレッドボードの電源接続部分につけ、コンデンサはつけない。
赤丸のところに何かが出ているのがわかる。
拡大すると、一時的に電圧が下がっている。
PICはリセットされる。
現状はこの回路なので、これでリセットの原因が判明した。
さすがに、1.2Vまで下がると、PICも耐え切れない。
3.インダクタはつけず、ブレッドボードの電源接続部分に10uFのコンデンサをつける。
これも、チラッと乱れてはいるが、リセットはかからない。
そもそも、電源の細かなノイズが全くなくなっている。
何気に、これでもいいのではないかと思う。
4.何もつけない。
どれくらいひどくなるかと思いきや。
かろうじて、2度何かをしたんだろうなとは分かる。
リセットはかからない。
何だかなあ。
何もしなくていいってことだろうか。
もっとも、SDカードの電源直近にインダクタをつけた場合には、乱れが検知できなかったわけだから、それがベストには違いない。
しかも、手を近づけたときにノイズらしき乱れが出ているようで気になる。
5.10uFのコンデンサを電源に、47uHのインダクタをSDカードの電源直近につける。
やはり、これがベストだとわかる。
電源のノイズも少ないし、逆にそのためにカードをどこで挿したかが分かる。
しかし、挿したことによる乱れは最小だ。