STM32 Primer2をBARE-METALで使ってみる5 -FatFsの実装-

もともとBARE-METALで取り組むのを決めたいきさつは、Chan氏のLPC2388向けのOLED
表示プログラムを"STM32で再現できたら素敵じゃないか"って構想から始まって少しずつ
実現して来たわけですが,STM32Primer2でも再現してみたい!という思惑からはじまっ
てます…。

今回その要であるFatFsの実装にとり掛りました。STM32F107VCT6ではSDカードのアクセス
にSPIを使用していましたが、STM32Primer2(STM32F103VET6)ではSDIOインターフェース
が搭載されているのでこちらを使います。またSDIOのドライバはSTマイクロさん本家から
MassStorageClassのデモの形で提供されているのでRowleyのサイトにある移植例を手本
に"ゲタ"合わせを行いました。(ベースはSTM32F107VCT6のFatFs)

LCDの時よりかは手こずらずに移植は完了しました。が、いくつか引っかかる点が…

ヽ笋蟾み版のUART-Txを使うとxprintf関数を実行したときうまく表示できない
 いろいろやってみましたが文字の送信がうまくいかなかったので折角割り込み版をこさ
 えたのにポーリング版に戻したorz(Rxは割り込みでも問題なし)
私の経験と知識の無さはこういう形で表れてくるorz

20100317:FIFOバッファの処理が不完全なだけでしたorz

RTCの初期化がうまくいかない
 STM32Primer2は電力消費を抑えるためにVbat周辺の回路も同じく低消費電力化されて
 います。以前の回路ではうまくいってたバックアップ方法は今回は動きませんでした。
 具体的に言うとバックアップレジスタにマジックナンバを書いておいてその有無でバッ
 クアップされているか判定していたのですが、STM32Primer2の回路だとそこが正しく
 読めない…仕方ないのでマジックナンバが書かれているかの判定部分は削除しておく
 と時刻情報はかろうじて保持されているのでひとまずこれで進めることに…

開発が落ち着いたらバグ出しついでに上記2点の問題おっかけます。特に大きな支障は
ないので今は対策を保留…。

20100317:RTCの初期化に問題があってバックアップレジスタへの書き込みを
      禁じた状態で書こうとしてましたorz



とりあえずFatFsが動いたので読み込み転送速度の比較を行ってみました。使用したSDカー
ドはATP製の4GBSDHCカード。Class6のものです。比較検証用のファイルはL氏のwebラジオ、
"Lの虹裏ピアノラジオ"を録音したmp3ファイル(132MByte)を使用しました。

un
↑まずSTM32F107VCT6の(SPI,18MHz,DMA使用)で…まずまずです。

un
↑次に今回STM32 Primer2に実装したの(SDIO,4bitmode,24MHz,DMA使用)…あれれ、思った
ほど伸びませんでしたね…。
今すぐ下の方見ろ!!!11!

un
↑最後にChan氏のLPC2388用MCIアクセスプログラム(MCI,4bitmode,18MHz,DMA使用)。
ううむ…ぶっちぎりですなぁ…。

STM32のSDIOはもっと伸びるとおもうんですけどどっかでフン詰まりになっているようで
すね・・・まぁ現状でも十分すぎるのでこちらの件は以後の改善課題としておきます。


20110201追:
アシッド氏のブログの"シングルセクタ転送->マルチセクタ転送"の部分を見てねむい
さん気づいた!
私のも川内氏のもFatFsはRowleyのSDIO実装例を源流にしているはずだから、
FatFsのR/Wの部分ってシングルセクタ転送でしか実装してnほらやっぱり!!


〜小一時間後〜

un

やばい超早い♥


20111111追:
時は流れ、STM32F4では48MHzのSDIOクロックでも安定して動かせられる
ようになったので、約21Mbyte/Secの読み出し速度を常にたたき出してます!


次回は今まで検証してきた成果をすべて組み合わせ、BARE-METALなプロジェクトの到達
目標としていたPrimer2用フォトフレームの制作に挑みます。

Comments

]ω・) ちらっ

]⌒ さっ

  • 2009/11/18 12:41 PM

>]⌒ さっ
あ!多分豚さんちょうどいい所に〜!あのね、うちのコツメちゃんが
“まさか本当に焼豚出すとは思わなかった、でも豚肉オイシイデス!”
って豚さんに伝えてほしいって!

こんにちわ!
いつも楽しく見せて頂いてます。
HPを見て頂いてありがとーございます!
10MB/SECは私では出せませんでしたw
本当何に使うんだって位に超早いですねw

アシッド様 はじめまして、ねむいです。
私もいろいろ参考にさせてもらいました!

動画に手を出すとSDカードのアクセススピードも非常に
重要なファクターになりますね。
私がこの記事で比較に使用したのはATP製の「AF4GUD」
というMicroSDHCです。これはClass10が策定される以前
に販売されたClass6な代物ですが、ご覧のとおりClass10
並のスピードを叩きだせるので気にいってます。。

Post a Comment








Go to top of page