2010年4月6日火曜日

Play WAV files on a micro SD card using Atmega8

SDカード上のWAVファイルを読み込んでPWMで音声を出力する実験。

サンプリング周波数をどこまで上げられるかの事前確認を兼ね、SDカードI/Oの様子をオシロで観察。
リングバッファによるFIFOを作り空きがあれば順次読み出しリクエストを発行する仕組み。


悪くはないが、これを調整したところで技術的な取り組みとしての魅力をあまり感じない。

もやもや考えていたらFreeRTOSで以下を試してみたくなる。

* SDカードからデータを読み出してFIFOに転送するタスク
* FIFOからデータを読み出してPWM値を設定するタスク
 
実現の可能性を探るために事前調査を開始。
現状の基板に搭載されているAtmega8では実用性に欠けるが事前調査なので良しとしよう。

まずはデバッグ環境のためにもシリアル通信とその他のタスクの平行動作だろうということで、
早速FreeRTOSをポーティングして10[ms]毎にシリアル通信をするプログラムを仕立てる。


シリアル送受信も割り込みベースで行われるのでタスク処理に時間的影響を与えない。
ふむふむ。

次はサンプリング周波数に応じた高精度タイマー割り込みタスクでの動作を確認したいところだ。

0 件のコメント:

コメントを投稿