■そして再びSDカードにトライする。部品がなかったのでマルチバイブレータとか作っていたりしたけれど、部品が揃ったので。足りない部品は、単に14pinのMILコネクタ、っていうところがまあ無計画ぶりなわけですが。SDカードアクセスは前回PIC18Fで作っているけど、今度はATmegaでC言語を使う。多少は楽かな。
技術的には前回と同じく、レイアに沿って作りこんでいく。つまり、1)物理層 2)SD-SPI層 3)SDコマンド層 4)FAT層。
1)は前回の試行錯誤もあって部品さえ揃えば迷うこともなく。今回違うのは全体が3.3Vで統一されているので、レベル変換の仕組みが不要でMPUとSDを直結できるのが楽なところ。
なんかもう、実装部品点数は限界です。
物理層としては、今回はCS, DI/DOを50kでプルアップし、CLKを50kでプルダウン。電源系には47uFの電解コンデンサをくっつけました。PICの時は信号がなかなか出てこなくて苦労した覚えがあるのですが、今回は素直にCLKも出ています。
まだ、カード抜挿検出などは実装していません。
SD-SPIではカードを挿ささずに導通試験を行いました。SDの各端子に対して、AVR側でピンのオン/オフを繰り返し、その周波数がSDカード側で拾えるかどうかを確認しています。
SDコマンド層では起動直後のダミークロック80個程度に、CMD0とACMD41(CMD55+CMD41)を流しています。CMD9とCMD10の応答も無事に取れたので、ブロックリード/ライトと512バイトバッファを実装すれば、その上位のFAT層に着手できる。前回と同じくSDカードエクスプローラをまず作るところからかな。
Copyright (C) 2008-2015 Satosh Saitou. All rights reserved.