放課後の電子工作 HOME > SDカード・トランスポートを作ってみました > Timpy Rev7.0"改"

2009年7月19日 更新

SDカード・トランスポートを作ってみました −その1−
 
Timpy Rev7.0"改"

SDカード・トランスポートを
作ってみました

−その1−

Timpy Rev7.0"改"

Timpy Rev7.0"改"

2009年4月 完成

特徴
写真
ハードウェア
ファームウェア

Timpy Rev7.0を改造し、VS1053bのI2S出力機能を利用したSDカード・トランスポートです。

記録メディアはmicroSDです。
サンプルレート48KHz、16ビットのWAVファイルをI2S信号として出力します。

--

》特徴

*記録メディア : microSDカード(SDHC非対応)

*対応フォーマット : FAT16

*対応ファイル形式 : RIFF WAVファイル

*対応サンプルレート : 48KHz

*対応ワードサイズ : 16ビット

*出力信号形式 : I2S

--

》写真
動作しました
動作しました

中央の小さな基板がTimpy Rev7.0"改"です。
右の黒い箱は電源となる単3型アルカリ電池3本の電池ボックス、左の基板はテスト用に併せて製作したI2S入力のヘッドフォンアンプです。
ヘッドフォンがちょろい点には突っ込まないでください。この時は仕方なかったんです。(汗)

Timpy Rev7.0"改"
Timpy Rev7.0"改"

改造前のTimpy Rev7.0はこちらです。
VS1053bの上に怪しくおんぶされているのは水晶発振器(TCXO)です。低ジッタを特徴としているFox Electronics社のXpressoシリーズFXO-HC73(12.288MHz)を使ってみました。裏返しに、つまりパッドを上にして実装してあります。

VS1053bのI2S関連ピン(MCLK、SCLK、LROUT、SDATA)は足をはね上げて基板から浮かせ、電線を直接ハンダ付けしました。
サブ基板の方はバッテリ充電回路などの不要部分を省略し、操作スイッチとモニタLEDのみが実装されています。

ヘッドフォンアンプ
ヘッドフォンアンプ

I2S信号のモニタ用に簡単なヘッドフォンアンプも作ってみました。

アンプにはお手軽なところでTIのPCM1771を使用しました。
PCM1771評価ボードの回路図を参考に、必要最低限の部品を市販の基板に実装しました。

*VS1053bでのI2S信号出力
データシートにしたがってレジスタを設定したところ、何の問題も無くすんなりとI2S信号が出力されました。すばらしい。
ところが、やはり油断は禁物です。スイッチの操作時にノイズが出るのですが、その直接の原因がわかりません。
・・・いろいろ調べた結果、VS1053bのバグと判明しました。ソフトウェアリセットをかけるとGPIO_DDRレジスタがクリアされるため、I2S信号出力が一時的に途切れてしまうことが原因でした。和訳の時に見ていたはずなのですが・・・すっかり忘れてました。(汗)
幸いなことにVS1053bはVS1011eと違って曲間でのソフトウェアリセットが不要です。起動直後の1回を除きソフトウェアリセットが実行されないようにファームウェアを改修しました。同時にソフトウェアリセットを必要とするビープ音生成機能を削除しました。でもビープ音が無いと操作モードが確認できなくなるので、モニタLEDの点滅パターンを変化させることでそれの代替とするようにしました。

*サンプリング周波数48KHzの無圧縮PCMデータ(WAVファイル)再生
上の写真の通りハードウェアを製作し、Rev7.0のファームウェアに若干手を入れたものを作って書き込んで、ワクワクしながら48KHzサンプルのWAVファイルを再生してみたところ・・・見事に音が出ません。撃沈です。なんとこの時点のファームウェアでは、サンプルレート16KHz程度のデータ転送能力しか無いことがわかりました。MP3やOgg Vorbisなどの圧縮データなら余裕で再生できるのですが・・・無圧縮PCMデータ恐るべしです。そういえば昔作ったプレーヤの時、カードとマイコンはワードサイズのパラレル接続でしたし、マイコンにSPIなんて付いてなかったんでシフトレジスタでパラシリ変換してたような気がします・・・これはピンチです。

転送レートを3倍以上上げる必要が出てきました。3割ではなく3倍です。24.5MIPSのC8051F316で果たして転送可能なのか?と思いながらファームウェアのソースを眺めていたところ・・・改善の余地があることに気がつきました。
アセンブラを駆使してマイコンの能力を引き出すのは、難しいパズルを解くような楽しい作業です - 仕事でなければ。早速処理方法を変更し、何とか48KHzサンプルのWAVファイルが再生できるようになりました。

WM8741評価ボード
WM8741評価ボードと共に

かのWolfson Microelectronics社のWM8741評価ボードと、Timpy Rev7.0"改"(写真左下の小さいの)です。
このセット一式はBunpeiさんが貸してくださったものです。

とても素直な、心地よい音でした。感動。

改造版Rev7.0
小さいけどがんばってます

タイトルどおり、健気にがんばってます。

このTimpy Rev7.0"改"は同時に2つ製作しました。1個だと不具合の連絡を受けた時に手元で確認ができないからです。その後、お渡しした1個はそのままBunpeiさんにお譲りしました。

*果たして結果は・・・
Bunpeiさんのお知り合いの方によるブログをご紹介します。
・Feastrexスピーカー、キノコと健康・ひとり言 : 高音質MicroSDプレーヤ
・西野和馬のオーディオ西方浄土 : 酒仙坊さんのデジタルオーディオ研究 bunpeiさんとの共同レポート

残念ながら、私自身"耳が雑"なので自分で評価ができないのです。Bunpeiさんにお渡しする前、もしかしたら"なんだこりゃ"という感じの箸にも棒にもかからない代物に仕上がっているのではないかとひやひやしていたのですが、なんと、予想をはるかに超えた高評価で驚きました。Bunpeiさんの目論見が見事的中です。

--

》ハードウェア

(準備中)

--

》ファームウェア

(準備中)

--


HOME