Wed
Apr 14
2010
USBプレヤー(8)
さすがにH8とAVRがあると面倒。(TT)
でもAVRはそんなにたいしたものではない。CPLDよりははるかに有難い。
でもってやった結果。
こんな感じ。(wavを再生しているところ)
一番上のDebugというのは
LがUSBからファイルを読んでいる部分。
Hがお休み時間。つまりAVRの転送終了を待っている部分。これがなくなると転送ミスする。
転送が終わると、DMAをかけて再びLになる。
下がDREQとSCKで、これは忙しく出ている。(殆ど間断ない。)
基本的に「読み込み時間」<「転送(再生)時間」でないと音楽プレヤーとしては成り立たないわけで、H8は毎回転送終了を待つことになる。
この時間は操作関係に利用できる。
wav再生ではさすがに厳しく、読み込みの10%程度が待ち時間になる。
一方DMA転送は、それとは別にバックグラウンドで処理されているのがわかる。この転送にはCPUは携わっておらず、AVRがクロックを出しているだけで後はDMAが処理している。
やったーーー。wavが再生できた!!
ちょっと感動的だった。
ううむ全然落ちない。バッファは8Kでも16Kでも32Kでも、いいようだ。
この休み時間に操作を見るが、反応を上げるには8Kの方がよさそう。
ただ音量などのコマンドを出すと一旦転送が止まって変な音がする。
それと、8K単位にしろファイルの最終にゴミが残ってそれを転送してしまう。
DMAは一括転送だし、ここが泣き所...。
by at 09:00
コメントはありません