DigiFi No.10 付録 USB DAC ヘッドフォンアンプ改造 (ボリューム)Attach Rotary Encoder for PCM2704 USB-DAC
DigiFi No.10 付録 USB DAC ヘッドフォンアンプを改造してボリュームを付けてみました。
1. はじめに
DigiFi No.10 付録 USB DAC ヘッドフォンアンプ(以下USB-DAC)はお手軽なオーディオシステムです。パソコン内蔵のDACより高音質な音楽が楽しめます。既にネット上にはコンデンサやオペアンプを変更する改造が発表されています。少し違った切り口で、ユーザインタフェースを改造してみました。
2. USBボリュームの実現
USB-DACには定番のBB社(現TI社)のPCM2704が使われています。
PCM2704はパソコンからはUSB-Aduioデバイスとして認識されますが、同時に、メディアコントローラとの複合デバイスになっています。メデイアコントローラ機能として、VOLUME-UP, VOLUME-DOWN, MUTEの機能があります。拙作のUSB-HID VOLUMEと同じ機能を実現しています。
実際に基板上にもタクトスイッチが付いていてこれでパソコン本体のボリュームを変更することが出来ます。またMUTEのパタンもあり、この端子を使うと音をとめることが出来ます。
タクトスイッチは使い勝手が悪いので、ロータリーエンコーダでボリュームを変更できるように改造してみました。
3. 回路図
ロータリーエンコーダの位相差信号をVOL+/-の信号に変更する必要があります。
この程度なら、汎用ロジックを組み合わせても実現できると思いますが、今回はなるべくシンプルに実装するため、AVRマイコンTINY10を使いました。Tiny10では4本のI/Oが使えるので2組をエンコーダに、残り2組をVOL制御に使いました。+3.3VはPCM2704のSSPNDから取り出しています。
4. プログラム
説明の必要のないくらい簡単なので省略します。
普通のAVRと違いTINY10の入力のプルアップは専用レジスタで指定します。PUEBレジスタに設定する必要がありますが、忘れていてハマりました。また、システム関係のレジスタに書き込みにはCCPに特定の値を書き込んだ直後に行う必要があります。
プログラムはこちら
5. 実装
Tiny10は米粒より小さなSOT23パッケージです。アダプタ基板を使ってプログラムを書き込みます。プログラムの書き込みにはTPIプロトコルを使います。
ちょうどロータリーエンコーダのピン配置と合わせることが出来たので、直にロータリーエンコーダの裏に基板を付けて配線を出すことが出来ます。
6. 発展
(1) 他のPCM2704基板への応用
PCM2704を使っているUSB-DACであればロータリーエンコーダを使えます。VOLから信号を取り出すように設計されていない基板の場合には直接PCM2704から信号を取り出す必要があり、難易度が上がります。秋月のUSB-DACが相当します。
(2) MUTE
スイッチ付きのロータリーエンコーダの場合にはスイッチを、スイッチをMUTEに配線します。
ボリュームを押下することでMUTEを実現できます。
(了)