日本語文字フォントを格納したり画像をLCDに表示したいのでSDカードからの読み取りを始めました。
STBeeボードのマイコン(STM32F103VET6)にはSDIOという機能が内蔵されており、これを使うことによってSDカードをネイティブモード(MMC互換モード?)で読み書きできます。
このSDIO機能はSDカードの他にMMCカードやSD I/Oというカードにも対応していてバス幅は1/4/8ビットに切り替えて使うことができ面倒なCRCの計算やチェックもやってくれます。
至れり尽くせりなSDIO機能を使わない手はないですね。
しかしSDカードをネイティブモードでアクセスする方法ってあまり情報が見当たらないんですよね><;
SPIモードについては豊富なんですが・・・。
ということでSDカードの資料やマイコンのリファレンスを読みあさりっては試行錯誤をしてなんとかカードを初期化してMBRを読むところまでできました。


MBRと諸情報を取り出してUSARTから端末に表示させてみました。
SDIOのクロック周波数を12MHzにして4ビット幅で通信できました。
通信速度としてはこれで48Mbpsでてることになるのかな??めちゃ早い(^ω^)
これより速度あげるとFIFOがオーバーフローになりました。
次はFAT組み込んでいよいよ画像表示かな。
P.S.
SDIOのクロック周波数が24MHzでも取り込めました。(たぶんこれが最速?)
gccの最適化レベルを-Osから-O3にするとポーリングの際の実行速度が改善されたためかオーバーフローせずに取り込めました。
アセンブラを勉強しないといけないかと思いましたがなんとか済みそう(汗
STBeeボードのマイコン(STM32F103VET6)にはSDIOという機能が内蔵されており、これを使うことによってSDカードをネイティブモード(MMC互換モード?)で読み書きできます。
このSDIO機能はSDカードの他にMMCカードやSD I/Oというカードにも対応していてバス幅は1/4/8ビットに切り替えて使うことができ面倒なCRCの計算やチェックもやってくれます。
至れり尽くせりなSDIO機能を使わない手はないですね。
しかしSDカードをネイティブモードでアクセスする方法ってあまり情報が見当たらないんですよね><;
SPIモードについては豊富なんですが・・・。
ということでSDカードの資料やマイコンのリファレンスを読みあさりっては試行錯誤をしてなんとかカードを初期化してMBRを読むところまでできました。


MBRと諸情報を取り出してUSARTから端末に表示させてみました。
SDIOのクロック周波数を12MHzにして4ビット幅で通信できました。
通信速度としてはこれで48Mbpsでてることになるのかな??めちゃ早い(^ω^)
これより速度あげるとFIFOがオーバーフローになりました。
次はFAT組み込んでいよいよ画像表示かな。
P.S.
SDIOのクロック周波数が24MHzでも取り込めました。(たぶんこれが最速?)
gccの最適化レベルを-Osから-O3にするとポーリングの際の実行速度が改善されたためかオーバーフローせずに取り込めました。
アセンブラを勉強しないといけないかと思いましたがなんとか済みそう(汗