12chアッテネータハングアップ対策(番外編46)

番外編46

今回は予定を変更して、2022年末に完成したモーターボリューム式の12chアッテネータのハングアップ対策を行います。

モーターボリューム式12chアッテネータ

私のシステムはNS-1000Mをバランスアンプでマルチアンプ駆動している為、12chアッテネータが必要となります。初代の12chアッテネータはアッテネーションにリレーを使用して機能実現しました。

回路をシンプルにするためにアッテネーションステップを減らした事でいまいち使い勝手がよくありませんでした。一念奮起し、4連のモーターボリューム3個を並列駆動する第二世代の12chアッテネータを製作して現時点で使用しています。

下の写真のセンター下段に4連モーターボリュームが3個並んでいます。その軸に位置検出用の半固定抵抗を取り付けて位置検出をして各モーターボリュームを連動させています。分解能は基本1dB刻みで、思った程レスポンスも悪くなく便利に使っています。

症状

その時々で不具合発生の確率に波があり、全く問題ない場合と、頻繁に不具合が発生する事がありました。その症状は、マイコンがハングアップして全く動作しなくなります。表示の乱れはありませんが、リモコン、パネルキー共に一切受け付けません。こうなると電源を入れ直すしかありません。この症状は製作時には一切発生しませんでした。電源オン直後は普通に動作しますが、音量をセットして1曲聴き終わった時点でハングアップしている感じです。

状態の確認

ソースコードを改めて確認すると、気になる点がいくつか見つかりましたが、まずはハングアップ時の状態を知る必要があると考えて、メインループの先頭に1秒間隔で状態表示をする処理を追加してみました。

完全にマイコンが暴走状態の場合は、この処理は機能しませんが想定外の状態でループしているのであれば現象特定の手がかりになります。早速ソフトをVer1.02として作成し、入れ替えて現象発生を待ってみる事にしました。

再現確認

ソフト変更前に、現行状態で再現確認を行ってみます。作業テーブルに移動して電源オンしたところ、モーターボリュームのイニシャライズが完了しません。何度か電源を入れ直してみましたがが症状は変わりません。天板をあけて現象発生時の状態を確認してみます。下記がモーター駆動回路図です。

この回路が各モーター用に基板に実装されています。現象発生時はマイコンからボリュームMin方向への駆動信号が入力されていましたが、モーター端子は全て約4.8Vとなっていたため、モーターは動きません。仕方ないので、一旦基板を取り外し、状況を確認してみる事にしました。

単独で電源オンして確認をしてみましたが、現象は発生するものの、各部電圧確認中に正常状態に戻ってしまいます。すこし時間を空けたりして試しましたが安定した再現ができません。駆動用トランジスの不良も疑いましたが、3チャンネルともに発生している事から確率的に原因ではないと判断しました。結局土曜いっぱい確認しましたが状態の全貌を把握できませんでした。翌日気を取り直して確認を行ったところ、しょっぱなで現象を安定再現できました。下記は現象発生時の2つのポイントの電圧です。

黄色がモーターGND側SWとなるトランジスタのベース電圧で、青がモーター電源側SW出力電圧です。両方ともに約5Vとなっています。そのとき時の各部電圧を観測しました。

GND接続されているSW用トランジスタのエミッタ電圧が4.9Vと異常でした。ハンダ不良しか考えられません。ハンダ面を確認しましたが、1点怪しいところが見つかりました。電源端子台部で、上側の横のラインにGND配線を行っていてトランジスタのエミッタが接続されている部分です。

ずっと動いていた事から明らかに怪しい感じではなく、電線へのハンダのノリが悪い感じ程度です。ハンダをやり直したところ、現象が一切発生しなくなりました。やれやれ。基板を戻してようやくスタートラインです。

本来の再現確認

この後、今回の目的の再現確認を行いましたが現象の再現はできなかったので、上記で準備したソフトに入れ替えて改めて再現確認を行いました。動作時のシリアルモニタ画面は以下のとおりです。

1秒毎にk_statの値とmillis()タイマの秒表示がされています。この日一日再現を待ちましたが、残念ながら再現しませんでした。ハンダ不良対策により一緒に直ってしまった事を淡いながら期待し、本日の確認は終了としました。今週末は本対応によりアンプ製作は出来ませんでした。

 

おわり(番外編46)