まずは、SDカードに読み書きできるハードウェアおよびソフトウェアを検証しなければならない。SDカードインタフェースについての検証は初めてなので、初期的勉強から始めた。【きむ茶工房ガレージハウス】とセッピーナの趣味の天文計算を参考にさせて頂いた。これらのサイトの情報が非常にわかりやすくとても参考になりました。感謝感謝です。
SDカードと情報をやり取りするにはシリアルインタフェースが利用される。SDバスモードとSPIモードの2通りがあるようだ。SDバスモードがネイティブになるが、外部のマイコンから制御するとなると標準規格のSPIモードが利用しやすい。
SDバスモードでしか対応できない機能もあるようだが、今回の機能はSPIモードでも利用可能のため、ハードウェア的にはSPIモードを選択することとした。
とりあえず動作確認が行えればよいので、保護回路などは省略した。電池駆動を想定するので、電源周りはスリープした際に消費電力をできる限り抑える構成とした。電池はボタン電池を想定した。SDカードの消費電力に十分かどうかは不明だが、足りなければ見直すことで、とりあえずは動作確認ができればよい。動作確認のため液晶ディスプレイを接続する。SDカードアクセスには512バイトのバッファメモリが必要なので、CPUはPIC16F1705を選定した。液晶ディスプレイにはいつも利用している秋月のI2C接続小型キャラクタLCDモジュールを、SDカードアダプタは秋月のSDカードDIP化モジュールを利用する。
回路図はこんな感じ。ブレッドボードでさっそく組み立てて動作を確認する。
SDカードアクセスには、コマンドを決められた順番で発行するというのが基本動作。最初にSDモードからSPIモードに変更し、決められたコマンドを順番に発行し、SDカードのメーカ情報などを読み込むテストプログラムを記述。何とか情報が読み出せるところまではたどり着いた。
前回へ 次回へ