ELM Home Page

2009. 8. 11
更新: 2012. 10. 2

8ピンICで作る SDオーディオプレーヤ


MicroSD Player

8ピンICで作るシンプルなオーディオプレーヤです。8ピンAVRのtinyX5シリーズ(ATtiny25/45/85)は、250kHzの高速PWM出力を2本持っているので、かなり広い帯域のオーディオ信号の出力が可能です。そこで、これとSDメモリカード(SDC)を組み合わせてオーディオプレーヤを作ってみました。SDCはわずか4本の信号線で制御できるので、8ピンマイコンでも容易に制御することができるのです。tinyX5はその機能から主にSMPS等への応用を狙って設計されたマイコンのようです。

このプレーヤは配線数が極端に少なく手軽に作れるので、寝る前や起き抜けのちょっとした半田遊びには最適なプロジェクトだと思います。ブレッドボードなら10分もあれば実験できるでしょう。

ハードウェア

PCB
回路図: モノ | ステレオ | モノHi-Res | モノOCL

右に製作した基板の写真を示します。記録メディアにはMicroSDを使用するようにしていますが、もちろん標準SDやMiniSDも使用可能です。基板サイズはMicroSDのソケットのサイズの都合上、これ以上小さくなりません。たぶん、世界最小(MicroSDプレーヤとして)。回路の都合上、プログラムの書き込み方式に制約が出るため、モノラル、ステレオ、モノラルHR、モノラルOCLの4通りの回路を書いてあります。

オーディオ出力はマイコンに少し頑張ってもらい、PWM出力でスピーカを直接駆動しています。3V動作なら出力インピーダンスにより、ショートしても最大定格を越えることはありません。このため、あまり大きな音は鳴らせませんが、能率の良いスピーカなら机上で聞くのに十分な音量が得られます。また、100μHのインダクタをPWM出力に直列に追加すると、消費電力を減らすことができます。出力をアンプに接続する場合は、必ずLPFを通してください。PWM信号を直接入れるとアンプやスピーカにダメージを与える可能性があります。

ソフトウェア

メモリカードを使用するということは、ファームウェアはFATを操作しなければならないということを意味します。ということで、毎度手前味噌ですがFatFsの姉妹モジュールであるぷちFatFsを使用することにします。ぷちFatFsは利用可能メモリの乏しい(512バイト以下)システム向けに開発されたFATモジュールで、tinyAVR等には最適です。

AVRに書き込むファームウェアは、製作した回路にマッチしたものでなければなりません。ステレオとモノHRでは全てのピンを使用するため、HVSPライタが必要になります。ISPライタでも1回だけなら書き込めますが、書き換えはできなくなります。添付のHEXファイルにはヒューズデータが含まれますが、一部のAVRライタはこの種のHEXファイルに対応していません。もしもそのような場合は、HEXファイルの最後の3行を削除してから書き込み、ヒューズ値はそれぞれ別に書き込みます。

このプレーヤで再生可能な音声ファイルは、waveファイルとして知られるRIFF-WAVE形式(LPCM, 8/16bit, mono/stereo, 48kHzまで)のファイルだけです。全ての出力構成でこの範囲のフォーマットを受け付けますが、出力構成にマッチしていた方がメモリカードの利用効率は良いです。MP3ファイルはwaveファイルに変換しておかないと再生できません。電源ONまたはカード挿入で再生を開始し、ルートディレクトリ上に"wav"という名前のディレクトリがある場合はその中の、無い場合はルートディレクトリ上の音声ファイルを順に無限ループで再生します。押しボタンスイッチを押すと次の音声ファイルにジャンプします。

資料

Sign