Interfaceの記事とソースコードを参考に、FatFsベースに構築したファイルシステムと、オープンソースのMP3デコーダのlibmadを使って、SH-2AでMP3再生ができました。
MP3は1152サンプル(ステレオだと×2サンプル)を1フレームと扱ってますが、1フレーム毎にSDカードからFAT経由でデータを読み出し、大容量RAMに展開(DMA転送)。libmadに1フレーム単位でデータを入力し、libmadからの1サンプル(ステレオで×2)毎の出力をSH-2AのPWMのデューティに設定し、PWM出力(ステレオ2ch)をステレオミニジャックを通して、イヤホンでMP3の音楽を聞けました!
PWMのデューティ設定って結構アバウト(44.1KHzは1サンプルで22.7usだけど、8bit分解能だと10.7us)だし、ボヤッとした音かと思いましたが、めっちゃ普通に音出てます!普段通勤時に聞いてるMP3プレーヤとそんなに変わりはありませんでした!
久々にマイコン動かしてて達成感がありました。
写真の上ちょっと右に写ってる半固定抵抗が左右のボリュームです。その下に見えるのが、秋月で購入したステレオミニジャックです。
-----------------------------------------------------------------------
2012/05/5
イヤホンではイマイチ動いてる感じがしないので、スピーカーを繋いでみました。秋月で150円、250円で売ってるスピーカーなので小さいのかと思ったら、エライでかい。。常時接続は重いし、持ち運び不便なので、もう使うことないかも。。。