STM32F4でFatFS(SPI)を使うSDカードアクセス
はじめに
SDカードにログ保存がしたくなって、FatFSを使ってみることにした。
丁度FatFSが使えそうな基板として、手元にあったSTM32F401REでやってみた。
この記事の実行環境は下記のとおりです。
SystemWorkbenck for STM32 1.15.0
STM32Cube_FW_F4_V1.16.0
- ターゲットボード:STM32F401RE Nucleo
コード編集
Blog記事STM32/STM32L053C8T6でSDカードにアクセスする – Talk Like Singingを参考に、新規作成したプロジェクトにFatFSのソースコードを編集する。
CSピンのみ変更したが、それ以外は記事ほぼそのままにできた。
動作確認
以下のように配線した。
TODO:STM32とSDカードの配線を写真にする。
オシロで波形をみたところ、SCLKは10MHzで動いている。
分周の設定を変えると、SCLKも変わる。
TODO:オシロの波形写真を上げる
本当は、クロックのコンフィグも正しく把握しておくべきだが。。
実は、動かなくてオシロでリセット時の波形(CS HighでSCLK 80発)とCMD0の波形を見て、
CMD0のResp1に0x01が返らないのに悩んだが、MISOとMOSIの配線が逆だった。。
さいごに
STM32F401REでFatFSが使えるようになった。SDカードの初期化シーケンスも確認できたので、
勉強になったと思う。
参考Webページ
主に参考にしたBlog
STM32/STM32L053C8T6でSDカードにアクセスする – Talk Like Singing
STM32F401RE Nucleo 基板ピンアウト
NUCLEO-F401RE | Mbed
SDカードの使い方
MMC/SDCの使いかた
SDカードの使い方(コマンドフォーマットがわかりやすい図)
浅草ギ研 A33FでMicroSDカードにアクセスしてみる
ST社のFatFSアプリケーションノート
http://www.st.com/content/ccc/resource/technical/document/user_manual/61/79/2b/96/c8/b4/48/19/DM00105259.pdf/files/DM00105259.pdf/jcr:content/translations/en.DM00105259.pdf
STM32+ CubeMXでSPIを使う情報
STM32でSPI通信をやってみる1(ポーリングでマイコン同士で通信編) - ガレスタさんのDIY日記
STM32でHAL Driverをつかって、SPIのslaveモードでDMA受信 - okiami1983のブログ
STM32CubeMXとSystem Workbench for STM32でFatFsを使うプログラム – 工房便り〜TSUBAKI GUITARS & LEATHER