AtMega328pでFatFsとSDカードを組み合わせて使用する
SDカードの覚え書き
mega328pのSPI端子にSDカードを接続し、ChaN氏作成のFatFsを使用したサンプルです。
mega328pグループのAVRの場合、SPI端子とISP端子が共有されます。プログラムを書き込む際にSDカードが接続されていると100%の確率でプログラムに失敗します。
理由は簡単で、電源投入時、SDカードは初期化待ちになっていて、CSをディゼーブルの状態でクロックを80クロック受信するとステータスを出力してしまい、ISP通信の邪魔をする為です。
同様の理由により、SDカードと同じSPIバス上には他のデバイスは接続しない方が良いと思われます。
ちなみにmega128グループの場合は、SPI端子とISP端子は共有しないので、プログラミング時の不具合は発生しません。
今回のサンプルは、USART通信経由でSDカード内のルートディレクトリにあるファイル一覧を出力します。
ターミナルから、Enterキーを押すと、結果が返ってきます。
同時に'test.txt'ファイルをSDカードのルートディレクトリに作成します。中身は、取得したファイル一覧テキストファイルです。
通信設定は、9600ボー、8bit、ストップビット1、パリティ無しです。
SDカード内のファイルを表示した状態。ターミナルアプリは「Tera Term」を使用しています。
右の画像は作成された'test.txt'の中身です。
|