■部品取り用ジャンクのMD/CDミニコンポ
メインのマイコンが不良なのでどうにも使い道が無く、惜しげも無く部品を転用していった訳だが、このコンポ、まだまだ活用できる道がありそうだ。 ■USBオーディオアンプへの改造 ・AUX4入力に対応 改造アンプをどのようにするか、色々と考えて見た。まずは、音源だが、USBだけではつまらない。バックパネルには、RCAの入出力回路が入力2回路、出力も2回路ある。CD-RのIN/OUTとTAPEのIN/OUTだ。この4回路を全て入力としてAUX4入力に対応させることにする。 ・OPT-INの検討....諦める MDやCDは、それぞれのユニットに搭載されたマイコンとメインのマイコンがシリアル通信で動いており、メインマイコンが使えない状況では、望むべくも無い。このコンポには、更にOPTのIN/OUTがあり、OPTのINからのデジタル入力は、MDユニット内に一度引き込まれDA変換されてアナログ出力されてくる。 デフォルトの状態で、この機能が働くのかどうか調べて見たが、DA変換チップ(旭化成のデルタシグマ変換チップ)への入力信号フォーマットが、OPT-INからのSPDIF信号のフォーマットとは異なっており、もう一つのDSPチップ(ATRAC用)でフォーマット変換しているようで、メインマイコンからの制御がないと動かないようであり諦めることにする。 ただし、OPT-INの信号がOPT-OUTにスルーで出力されるように改造することにした。単なる光デジタルケーブルの中継器としての役目しかないが、回路を遊ばせておくよりも使えるものは使おうという魂胆だ。 ・チューナーの検討....諦める 入力音源としてもう一つ、FM/AMの受信回路を調べてみた。こちらもマイコンから、チューナーユニットに3線シリアル通信でPLLの周波数設定のデータを送り込んでおり、マイコン無しでは無理なようだ。チューナーユニットは韓国の電子部品メーカーの製品で、ネットでググッて見たが詳細な製品仕様を見つけることが出来ず素直に諦めることにした。 ・音源切替、ボリューム制御、ついでにトーン制御....PICの採用 アンプとしての肝心な機能である音源切替とボリューム制御をどう実現するか。このコンポでは、音源切替をアナログ電子スィッチで行っており、更にトーン制御とボリューム制御も1チップの電子ボリュームで構成している。使われているICは、電子アナログスィッチがJRCのNJU7313で、電子ボリュームがSANYOのLC75343Mだ。この2つのICもマイコンから3線シリアル通信で制御されており、チューナーと同様マイコン無しでは使えない。 そこで、ロータリースィッチや2連の小型ボリュームで代用することを考えたのだが、そうすると操作パネルの物理的な改造が必要になる。部品選定では、そのサイズにも気を付けなければならない。何よりも音源切替のための配線も結構大変だ。やはり、電子スィッチや電子ボリュームを使う方法を考えた方が良い。 MDやCD、OPT、チューナーを諦めるとすると音源はUSBとAUXを合わせて5回路となる。幸いな事に、電子ボリュームのLC75343Mには、入力部に5回路のアナログ電子スィッチが組み込まれている。「D-MS3」は、複雑な音源切替をNJU7313とLC75343Mの組み合わせで実現しているのだが、改造アンプでは、LC75343M一個で済ませることが出来る。 以上の検討から改造アンプの制御にマイコンを搭載することにした。使用するマイコンは、使い慣れた「PIC16F84A」にする。LC75343MをPICでコントロールすることにより、音源切替とボリューム制御、更にトーン制御が容易に実現できそうだ。幸いなことに、LC75343Mのデーターシートはネットからダウンロード出来ており、その仕様は良く判っている。 ■改造アンプの回路検討 ・PICのピン割り当て マイコンを使うとなると、スピーカーリレーの遅延動作などが簡単に出来るので便利だ。とはいえ、「PIC16F84A」には、13本の入出力ピンしかない。この13本のピンにどのように信号を割り付けるか検討した。
「D-MS3」の操作パネルには、たくさんのボタンがある。改造アンプでは、その中の「電源操作ボタン」と「音源切替ボタン」、「トーンボタン」の3つのボタンを使用する。 オーディオ製品では、たくさんあるボタンの操作認識を、マイコンに内臓されたAD変換機能を使用して、数少ない入力ピンで済ませている。「D-MS3」でも、KEY1, KEY2 のわずか2つの信号で実現している。ところが、PIC16F84AにはAD変換機能が無い。改造アンプでは、わずか3つのボタンの認識なので、各ボタン毎にピンを割り当てることにし、RB0〜RB2を使用することにした。
リモコンのボタンについては、本体のボタンと同様3つのボタンと、その他にミュートボタンを受け付けるようにした。 ・ボリュームの回転検出 ボリュームつまみの回転方向の判定には、「D-MS3」と同様に2ピンを使う。RB3とRB4を割り当てた。 ボリュームつまみやジョグダイヤルには、2つの接点が組み込まれており、それぞれの動きは次のとおり。 つまみの回転に応じて、2つの接点は、閉じたり開いたりする。電源にプルアップされた抵抗により、GNDとVR-1(VR-2)の間では、図に示したようにパルスが出力される。 ここでVR-2の出力は、VR-1の出力より若干の位相遅れがあるように作られている。そこでVR-1の信号の立ち上がりを監視しておき、信号が立ち上がった時に、VR-2の信号レベルを調べ、それが0なら右回転であり、1なら左回転であることが判る。PICでも簡単にプログラム出来る仕様だ。 ・電源ランプの点灯制御
改造アンプでは、同時点灯をさせる必要も無く、PICの出力ピンを節約するために、電源投入時に緑のLEDを点灯させるのみにする。さらに、スタンバイ状態にある時には、赤のLEDが点灯するようにLEDの点灯回路に少し細工を施すことにした。 ・メイン電源の入り切り制御 「D-MS3」の電源回路は、マイコンを動かすスタンバイ電源と、CDやMD、アンプを動かすメイン電源の2回路構成になっている。スタンバイ電源は、電源プラグを電源コンセントに挿し込むだけで投入されマイコンが動き出す。その後、マイコンは、電源操作ボタンが押されるのを監視し、電源操作ボタンが押されると、メイン電源の入り切りを制御するリレーを動作させる。PICでのコントロールも「D-MS3」と同じようにプログラムすることにし、このリレーの動作用信号にRB6を割り付けた。 ・電源オン表示(VFDの固定表示) メイン電源が投入されている間は、電源ランプが緑色に点灯するので、電源オンであることは容易に認識できるのだが、それだけでは、なんとなく寂しい。そこで、ディスプレーに、何か表示させることが出来ないか考えて見た。ただし、ディスプレードライバー用のICが欠品なので凝った表示は不可能だ。一点ものの表示ならなんとかなりそうだ。 ディスプレー(以下VFD)のフィラメント電源AC6Vやバイアス電圧-30Vは、メイン電源から直接供給されるので、メイン電源が投入されれば、いつでもVFDは表示可能な状態にある。表示したい項目が属するグリッドと該当セグメント(アノード)に地気(GND)を与えれば表示が可能だ。そこで、VFDの左上隅にある白色のCDディスクのマークをパイロットランプ代わりとして表示するように固定配線を行うことにした。PICからの制御は無しだ。 ・アンプ制御 アンプ基板の端子には、マイコンインタフェースの信号が何点かある。「LMUTE」、「PROTECT-DET」、「AMP-STBY」、「SP-RLY」、「LEVEL」だ。 アンプ回路は、メイン電源が投入されただけでは動かない。「AMP-STBY」端子に+5Vを印加する必要がある。「D-MS3」では、メインマイコンがこれを行っているのだが、改造アンプでは、固定配線にて、+5V電源から510Ωの抵抗を通して直接印加することにした。 ミューティングのための「LMUTE」端子は、何もしないでそのままにしておけば、ミュートオフの状態だ。そこで何もしないでそのままにしておく。 「LEVEL」についても、アンプ出力をわざわざPICで監視をする必要も無いので何もしないでおく。 「PROTECT-DET」は、アンプの異常を通知するものであり、これを監視して、異常時にはアンプを停止させる等の保護動作を行わせるのが望ましいが、自己責任で改造して使うアンプなので今回は何もしないでそのままにしておく。 ・スピーカーリレーの制御 「D-MS3」では、電源投入時のポップノイズをスピーカーに送らないようにリレーを設けており、電源投入に遅れてリレーが動作するようにマイコンで制御している。このリレー制御は、「SP-RLY」端子を通じて行われており、改造アンプでも同様の制御を行うこととし、PICのRB7にこの機能を割り付けた。RB7の出力を1kΩの抵抗を介して、メイン基板の「SP-RLY」端子に接続するのだ。 ・FAN制御
改造アンプでは、アンプの「PROTECT-DET」を無視したこともあり、このFAN制御による温度上昇対策だけは、なんとか残しておきたいと思い、PICの制御ではなく固定配線で実現することにした。 +14VのFANドライブ電源から4.7kΩの抵抗を通じて、「FAN-DRV」端子に電圧を印加。このままでは、電源投入と同時にFANは回転しっ放しとなる。そこで、「FAN-DRV」端子と温度センサーの出力端子「TP-DT」とを接続する。こうすれば、温度センサーは、温度が低い時は、その抵抗値が小さいので、「FAN-DRV」端子は、GND電位に近くなり、FANは回転しない。温度が上昇し、センサーの抵抗値が大きくなると、「FAN-DRV」端子の電圧は上昇し、FANが回転を始め、ヒートシンクを冷却する。ヒートシンクの冷却により温度が下がるとセンサーの抵抗が小さくなりFANが停止する。誠に理に叶った動作をしてくれる。 ・音源切替、トーン切替、音量制御 これらの制御は、SANYOの電子ボリュームIC「LC75343M」を、データシートに従ってマイコンで制御するだけだ。仕様に沿ってプログラムミングすれば動作するはずだ。 「D-MS3」とは異なり、改造アンプでは、音源を次のように割り当てる。LINE-1(USB)、LINE-2(CD-R/IN)、LINE-3(CD-R/OUT)、LINE-4(TAPE/IN)、LINE-5(TAPE/OUT)の5音源だ。音源切替ボタン(「LINE」)を押す毎に、LINE-1からLINE-5まで順次切替制御を行う。音源を切り替えるタイミングでは、スピーカーリレーをオフ、オンし、音源切替時のノイズがスピーカーから出ないようにする。 トーン制御は、「D-MS3」と同様にBASS,TREBLE,SDBをPICで個別に制御することは可能だが、それを操作、確認する手段が無い(ジョグダイヤルは使えず、何よりも表示手段が無い)。そこで、BASS、TREBLE、SDBを一括して増減することにし、プラス側2段階(中間と最大)、マイナス側2段階(中間と最大)、フラットと合わせて5段階の切替とし、トーン切替ボタンを押す毎に切り替えるものとした。現在のトーン設定値を確認するための表示はなくても、ステップ切替なのでスピーカーの音を聞いていれば判るだろうとの判断だ。 音量制御は特に考慮することは無い。つまみの右回転、左回転を検出する毎に、64段階ある増減を1段階ずつ変化させるだけだ。こちらも現在値を表示で確認する方法は無いが特にその必要はないだろう。ただし、左回転が続いて音量値が最小となった時は、以降の左回転は無視するようにする。右回転についても同様に最大値に達したら、その後の右回転は無視する。 PIC16F84Aは、EEPROMの領域を持っており、音源、トーン、音量の現在値を、ずっと記憶させておくことも出来るのだが、そうすると、別途これらの値を初期化する手段を考える必要がある。そこで、これらの記憶はしないでおくことにした。とはいえ、スタンバイ状態にある時は、PICは活きており、現在値をRAM上でずっと記憶しているので、電源ボタンの入り切り操作では、前回の状態で動きだすので不便はない。初期化したい時は、電源プラグをコンセントから抜けば良い。 ・VFD制御(スィッチ操作の応答表示)
音源切替ボタンやトーン切替ボタンを操作した時、あるいはボリュームを廻した時にアンプ側から何らかの応答があると操作確認が出来て便利だ。そこで、VFDの何かの表示項目を点消灯させることにした。
そのためには、PICの出力ピンの状態1,0に応じて点消灯を行う回路が必要になる。その制御回路の仕様は次のとおりだ。
正負の電源が混在し、なんとも悩ましい仕様だ。こんな回路が簡単に作成出来るのだろうか? +5V,-30Vの各電源はコンポの中に既にある。電源そのものを作成する必要は無い。2〜3日試行錯誤した結果、次のような回路となった。 入力が0でTr1がオフの時、A点、B点の電圧は次のようになる。 A点 1k÷(1k+1k+20k)×(-30V-5V)+5V = 3.4V B点 (1k+1k)÷(1k+1k+20k)×(-30V-5V)+5V = 1.8V B点がプラス電圧となるのでTr2はオフとなり、Tr2のコレクタ出力には、電源の-30Vが現れる。 入力が1でTr1がオンの時は、 A点 GND 0V B点 1k÷(1k+20k)×-30V = -1.4V B点がマイナス電圧となるのでTr2はオンとなり、Tr2のコレクタ出力には、GNDの0Vが現れる。 こんな程度の回路を考案するのに3日も掛かっているようでは、技術力も大したことが無いことの証明かも 音源切替ボタンやトーン切替ボタンの操作、あるいは、ボリュームの回転を検出した時は、200msecの間点灯させることにした。表示する項目は、MD録音時の赤の●マークとする。 ■PICのプログラミング PICのおおまかな動作仕様を決める。動作の流れは次のようになった。 ※記述しているラベルは仮のものである。 START: @ 電源プラグが電源コンセントに差され、スタンバイ電源が活きるとPICが動き出す。 A 入出力ポートの設定を行い、LC75343Mに設定する音源、トーン、音量の初期値をセットする。 B スタンバイ状態を示すフラグをセットする。 MAINLOOP: C 電源操作ボタンの操作を検出するルーチン(POWER_DET)を呼び出す。 C' リモコンの信号を受信検出するルーチン(RMC_RECEIVE)を呼び出す。(2008.8.12) D スタンバイ状態であれば、Cに戻る、オン状態であれば、次のEに進む E 音源切替ボタンの操作を検出するルーチン(LINE_DET)を呼び出す。 F トーン切替ボタンの操作を検出するルーチン(TONE_DET)を呼び出す。 G ボリュームつまみの回転を検出するルーチン(VOL_DET)を呼び出す。 H Cに戻る POWER_DET: //電源操作ボタンの操作を検出するルーチン @ RB0(電源操作ボタン)が1ならリターンする。0なら1になるまで待って次に進む A スタンバイ状態なら電源投入処理を行う。 B 電源LEDを点灯、メイン電源リレーをオン、 C LC75343Mを設定、3秒後にスピーカーリレーをオン、 D 状態フラグをスタンバイからオンに変更 E リターンする。 A’オン状態なら電源切断処理を行う。 B 電源LEDを消灯、メイン電源リレーをオフ C スピーカーリレーをオフ D 状態フラグをオンからスタンバイに変更 E リターンする。 LINE_DET: //音源切替ボタンの操作を検出するルーチン @ RB1(音源切替ボタン)が1ならリターンする。0なら1になるまで待って次に進む A 音源を次の音源に設定する。音源5の次は音源1に戻す。 B スピーカーをオフにする C LC75343Mを設定 D VFDの応答を表示する E 1秒待ってからスピーカーリレーをオンにする F リターンする TONE_DET: //トーン切替ボタンの操作を検出するルーチン @ RB2(トーン切替ボタン)が1ならリターンする。0なら1になるまで待って次に進む A トーンを次の段階に設定する。 ※ フラットから始まり、プラス方向に1段階ずつ変更する。 トーン切替時の変化をはっきりさせるためにプラス最大の次はマイナス最大にする。 B LC75343Mを設定 C VFDの応答を表示する D リターンする VOL_DET: //ボリュームつまみの回転を検出するルーチン @ RB3(VOL-1)の立ち上がりでないならリターンする。 A RB4(VOL-2)が0なら右回転、1なら左回転の処理を行う。 B 右回転処理 C 音量の現在値が0ならリターン D 音量値を-1する E LC75343Mを設定 F VFDの応答を表示する G リターンする B’左回転処理 C 音量の現在値がB'111111'ならリターン D 音量値を+1する E LC75343Mを設定 F VFDの応答を表示する G リターンする RMC_RECEIVE: //リモコンの信号を受信検出するルーチン(2008.8.12) @ RA4(リモコン受信入力)が1ならリターンする。0ならリモコン信号の開始として受信処理を行う。 A 受信コードに応じた各種処理を呼び出す。 B リターンする
上記のフローを元に作成したプログラムはこちら。dms3.asm ■コンポの改造・PICの取り付け 事前の回路検討に基き、各基板類の改造を行う。 ・電源基板
・アンプ基板 アンプ制御に関する改造はメイン基板側で行うので、アンプ基板での改造箇所は無い。 ・CDユニット/MDユニット/チューナーユニット 改造アンプでは一切使わないので改造するような所は何も無い。メイン基板と接続するケーブルは、接続してもしなくてもどちらでも良い。ユニット自体を取り外してしまった方がすっきりするかも知れない。 ・メイン基板
アナログ信号入力周りの改造
OPT周りの改造 PICの取り付けと配線
操作パネル側にある操作ボタンやボリュームとの接続には、既存のパネルとメイン基板を繋ぐフラットケーブルを流用することにし、端子は、次のように使用することにした。
改造を終えたメイン基板の様子を下に示す。
・操作パネル ボタンの配線変更
VFD点灯制御 VFDの表示項目は、16桁の表示グループで構成されており、0〜13番の14桁で数字や文字を表示している。14番、15番は、その他の図柄や「ALL」などの単語を表示している。 電源がオン状態にある時に表示したい「CDのディスクマーク」は、15番目の桁の表示セグメント0番に設定されている。表示セグメントは、5x7ドットの文字を表示出来るように35セグメントと、さらにプラス1ドットの36セグメントある。 電源がオンとなった時、VFDの15番目の桁と0番目のセグメントに相当するピンに地気を与えることで表示させることが出来る。 ジャンパーワイヤーで、パターン上のグランド端子から、VFDのGrid15、Seg00に配線接続を行った。 VFDのセグメントにずっとGND電位を与えておくことは、VFDの蛍光体の寿命を縮めることになる。本来ならば、もう少し電圧を落とすか、VFDのドライバICが行っているようにダイナミック点灯にすべきだが、ジャンク品であることから、これで良しとしておく。 音源切替時やボリュームの回転時の操作応答の●表示は、Seg06に同様に地気を与えればよい。こちらは、PICでの点灯制御が必要であり、考案したVFD点灯制御回路を使い、その出力をSeg06に接続した。こちらは、操作応答時に200msecだけ表示するものであり、蛍光体への影響は心配しなくても良い。
■テスト・完成 改造が終わり、分解したコンポを元通りに組み立てる。 電源プラグをコンセントに差し込んで見る。改造したコンポからは何も音が聞こえない。ここでリレーの動作音でも聞こえると不具合があることになる。操作パネルの電源操作ボタンに組み込まれたLEDは、赤色で点灯している。スタンバイ状態は正常だ。
次に、「電源操作ボタン」以外のボタンを押して見たり、ボリュームやジョグダイヤルを廻して見る。何も反応しない。スタンバイ状態では、電源操作ボタン以外は、全て無効であることが確認できた。 ここで、「電源操作ボタン」を押して見る。ボタンを離した瞬間に、LEDが緑色に変り、カチッとリレーが動作する音がしてVFDに「CDのディスクマーク」が表示された。メインの電源が活きたようだ。暫くして、またカチッというリレーの動作する音が聞こえた。スピーカーリレーの動作する音だ。 次に、もう一度「電源操作ボタン」を押して見る。カチッカチッと2つのリレーがオフする音がして、VFDの表示が消えた。LEDは緑色から赤に戻った。オン状態からスタンバイ状態に正常に戻った。 再度、「電源操作ボタン」を押す。LEDが緑に変りVFDも表示した。2つのリレーも正常に動作した。 次に、音源切替ボタンを押して見る。スピーカーリレーがオフする音がして、VFDに一瞬●マークが表示された。すぐその後、スピーカーリレーがオンする音がした。 一秒以上の間隔を空けて、音源切替ボタンを、何度も押して見る。毎回同じ動作をする。正常だ。 トーン切替ボタンを押して見る。何も動作する音は聞こえてこないが、VFDの●マークがボタンを押すたびに一瞬表示される。 ボリュームつまみを右に、左にゆっくりと回転させて見る。トーン切替ボタンを押した時のように、何も動作する音は聞こえてこないが、VFDの●マークが、回転に応じて、点灯消灯を繰り返す。つまみを早く廻して見ると、点消灯の間隔が早くなった。ボリュームの回転検出はうまく出来ているようだ。 左回転を連続して行って見る。何回かの点消灯の後、いくら回転を続けても●マークは点灯しなくなった。ボリュームが最小となり、それ以降の操作をきちんと無視しているものと思われる。 ここまでの動作確認では、PICのプログラムは正しく動いているように思われる。 次に、LC75343Mの制御が正しく行えているのかどうか確認するために、スピーカーを接続して音出しのテストを行って見る。 ここで一度電源プラグをコンセントから抜き差ししてPICをリセットする。そのまま、スタンバイ状態にしておく。 スピーカー端子にテスト用のスピーカーを接続する。CD-R/INに、コンポとは別のMDデッキから、そのアナログ出力をピンケーブルで接続し、MDデッキを再生状態にしておく。 電源操作ボタンを押して、オン状態にする。スピーカーリレーがオンしてもスピーカーからは何も聞こえてこない。初期状態では、入力音源は、USBになっているので当然何も聞こえない。 ここで音源切替ボタンを押して見ると、スピーカーリレーが一度オフして再度オンとなった時、小さな音だが、MDデッキからの再生音が聞こえて来た。ボリュームつまみをおそるおそる右回転して行くとスピーカーからの音が大きくなった。 ある程度音量を大きくした状態で、次にトーン切替ボタンを押して見た。高音と低音が強調された。もう一度押して見ると、更に大きく強調された。もう一度押すと、急激に高音、低音が弱くなりトーンが最低レベルになった。 MDデッキからCD-R/INへ接続しているオーディオケーブルをCD-R/OUT、TAPE/IN、TAPE/OUTと順次接続変更しながら、音源切替ボタンを押して、音源の切替をテストして見る。すべてうまく行った。 LM75343Mの制御はうまく出来ているようだ。最後に、PCと改造アンプをUSBケーブルで接続し、PCの音源が再生されることを確認してテストは終了。すべてうまく動いた。 これで、USB専用アンプの完成だ。 ■リモコン信号フォーマットについて(2008.8.12)リモコンの受信処理をプログラムするにあたり、リモコンの信号フォーマットを知る必要があり、操作パネルの赤外線受信モジュールの出力をオシロスコープで観測して、信号フォーマットと各ボタンのコードを調べた。 「D-MS3」の専用リモコン「RC-918」の出力する信号フォーマットは、一般的な家電協会フォーマットやNECフォーマットではなく、デノンの独自フォーマットであった。ヘッダやリーダーに相当する部分は無く、15ビットのデータがそのまま伝送される。 後続する反転データとの対になっており、ボタンを長押しすると、対のデータが繰り返し伝送された。 15ビットのデータは、先頭5ビットと下位10ビットに区分されているようで、マイコンで押されたボタンを判定する場合に、2次元のコードテーブルを参照出来るようにしているのかも知れない。 ビットの0/1は、他の伝送フォーマットと同様にパルス幅で区分しており、信号の立下りから次の立下りまでの時間が、ビット0では、約1msec、ビット1では、約2msecとなっていた。
PICでの受信検出プログラムは次のように考えた。 立下りを検出したら、次の立ち下がりまで、0.1msec単位でパルス幅を計測し、その値が、15(1.5msec)未満ならビット0、以上ならビット1と判定する。 15ビット分のビット検出処理を行ったら、次の信号立ち上がりを検出して受信処理を終了する。 なお、専用リモコン以外のリモコン信号を受信した場合やデータの途中から検出処理を開始してしまった場合、あるいは、PICの入力信号線が断線した場合などに、プログラムがループ状態、あるいは受信検出ルーチンから抜け出せ無くなることの無いよう、パルス幅の計測途中に計測結果が40(4msec相当)を越えた場合には、受信エラーとして計測を打ち切り、受信無しと判定することにした。 改造アンプで必要なボタンとその信号コードは次のとおりであった。
|