create 2010.12.15
update 2010.12.16

AtMega328pでFatFsとSDカードを組み合わせて使用する

回路図 プロジェクトファイル一式
2010.12.16


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'の中身です。



【HOME】