空を見上げて
トップページ » オーディオ » メモリプレヤー » mp3 » MP3PlayerKitを作る(6)

MP3PlayerKitを作る(6)

wavの転送の件で、ちょっとあきらめつつあったとき偶然ELMさんのページを発見。

ここでなんと8pinのAVRでWAVを再生していた。しかも、PWMでステレオになる。
48K16bitもOKらしい。
ただ、8bitの再生になるらしいが...。
この方はいろいろな活動をされていて本当に凄い。

それでも、WAVとなると読み込み時間がネックと考えていたので、この製作記事は凄く興味があった。
ソースを見ていると
btr = (sz > 1024) ? 1024 : (WORD)sz;
res = pf_read(0, btr, &rb);
とある。これだと0番地から1024Byte読み込んでしまう。
ところが、ATtiny85は512ByteのRAMだし、そこにはワークもある。

不思議に思ってさらに追っていくと...
なんと読み込みと同時に再生バッファに転送していた。
・mmc.cに
fwd_blk_part(dest, ofs, cnt);
というのがあり
・asmfunc.Sで
それをFIFOに入れ
さらにタイマでPWMで出す
という仕組みのようだ。

ううむ。少ない容量のRAMでこういうやり方もあるのか...と感動を覚える。
Linuxだ!2CPUだ!DMAだ!CPLDだ!と騒ぐ自分が恥ずかしい。
ELMさんのFATFSを使えばいいのか。ここにベンチもある。

・「読む」というより「読んでFIFO(リングバッファ?)」
・タイマ割り込みで「FIFOからVS10XXに出力」
とすれば解決する...ような気分になってきた。
次の課題として考えるべきなのは
・VS10XXに出力
にWaitを入れないことだろう。
ちょっと(そのうち)試してみる気になってきた。

やはりELMさんは凄い人だ。

by   at 09:00
トラックバック
このエントリーのトラックバックURL:

トラックバックはありません

コメント

コメントはありません

コメントを書く




保存しますか?


(書式を変更するような一部のHTMLタグを使うことができます)


Please enter the security code you see here