FM3マイコンを使ってみる4 -もう、誰も...-

もう触る気力がゼロになってしまったのでいつも見に来てくださってるFujitsuの方々
には真に申し訳ないのですがここで打ち切っていつものの公開をさせていただきます。

●勝てなかったよ…
当初実装予定だった以下のコードは私の力不足もあって盛り込めませんでした。
・外部SRAMアクセス
 ->基板に半田付けまではしたけど配線めどい。
・松浦氏のmp3プレーヤー(libmad)の移植
 ->STM32F4でhelixの方を移植しリベンジ完了。

●いつもの
私のぶろぐにおいていつものとはChaN氏謹製FatFsの移植例を指します。もちろん単に
移植しただけではなくTFT-LCDと組み合わせた(同じくChaN氏の)ファイラにより視覚的
に操作が可能になっています。どのMPUにかかわらずいつものは基本的に下記の機能を
網羅するようにしており他の用途にも簡単に応用できる仕組みとなっています。

・FatFs
・UART(TFT-LCDドライバ/FatFsテストルーチンの動作に必ず必要)
・TFT-LCDドライバ
・SPI転送(TFT-LCDドライバに使う)
・外部バス(TFT-LCDドライバ・SRAMに使う)
・タッチパネル入力(TFT-LCDドライバに使う・BlueScreenのものを汎用化して移植)
・タッチパネル入力用のデータ保持(FRK-FM3ではFRAMを使用)
・DMA転送(TFT-LCDドライバに使う)
・FONTX2ドライバ


●動かすためのハードウエアの準備

FRK-FM3にのっかっているレギュレータはデフォルトではLDO側の出力が使用されています。
これを600mA引き出せるDCDCコンバータ側に切り替えました。基板単体で通電した時の立
ちあがりとたち下がりの波形は以下の通り。



まぁ特に問題もないですね。(あったら困りますけど…)


基板から外の配線は、GNDとVCCの配線がものすごく簡単になるアイテムラボさんのパワ
ーメッシュユニバーサル基板
を使用しました。

裏にはebayで大量に購入したmicroSDカードスロットを設けました。安価で引き回しもや
りやすいです♥


アナログ出力はローパスフィルタを通じて単電源オペアンプで構成されたボルテージ・
フォロワ経由で行います。3.5φのジャックをつけるコネクタの上に見えるヘッダピンは
ボリ松基板(LPC2388用)をつけるためのものです。


TFT-LCDモジュールはパラレル/シリアル用のポートを引き出してます。中央のICはくっ
つけただけで配線で挫折した1MBのSRAM...



いつものを動かしてみたところです。もはやここまでは基本の"き"ですね〜。

8bit-i8080と8bitSPIのRGBデータのブロック転送はDMAに対応しています。ところで
外部バスを使用した場合のDMAはメモリ間転送扱いなのでまだ簡単なのですがMFSを用
いたSPIでDMAする場合の具体的な手順がいまいちわからず難儀しました。資料を探し
てFM3の英文の方のサイトの別品種のサンプル例にUARTでの転送手順があったのでこ
れをもとにDMA転送ルーチンを作りました。転送に関しては以下の要素が必要です。

・MFSのDMAはハードウエアのデマンド転送とする
・MFSの送信/受信割り込みをDMA要求として使用する
・DMACBxレジスタのEBビットは立てるのを忘れずに
・送信/受信割り込み許可ビット立てて転送開始

ぇっと詳しい手順はソースを見てください(丸投げ!)
XMEGAのMSPIでDMA転送できるようになった経験が生きました。


ちなみに速度は遅いですがソフトウエアSPIも出来るようにしてます。尤もFM3の場合
は9bitSPIが可能なので出番は無いと思います。



今回は表示系もちょっとだけパワーアップしてます。ロングファイルネーム(LFN)も表示
が出来るようになってます♥

これはWAVEファイルを再生してる画面ですがLFNの日本語ファイル名にももちろん対応
です。ちなみに私もf_stat()で取得したFILEINFO構造体のデータがLFNだけ拾ってこ
られない罠にはまった一人ですorzSFNからLFNを引っ張ってくる関数を一つ設けて実
現しています。



というわけでFM3にかなり寄り道してしまいましたがこの経験をSTM32F4に反映していこう
と思います。せっかく超格安全部載せ基板買ってしまってもったいないですし!

Go to top of page