次期アンプBA3886の中心部分は概ね出来ていて、毎日使っており、体感的(例: 気分的なものの気がするが、良く書いている、「初めて聞こえた音」が多い)には前のアンプよりずっといい印象だ。もちろん、特性も良さそうだ(まだ ちゃんと・気合を入れて比較していないので、確定していない)。

と言うものの、別件(DCサーボ基板: これについても追って書きたい)の問題の調査中に目にして気になった、偶発的な故障で電圧の高い直流(以下、オフセット)が出力されてスピーカーを破損する事態(本当に起こるのかは不明w)を避けたいと思ったがために、予想以上に厄介な脇道に入り込んでしまって悪戦苦闘して居たが、今日、どうにかうまく行って ほっとしている。

(我ながら書き出しが長い。ここまでで疲れた・・・)

目指したスピーカー保護機能の方針・条件・理由とその実現案は、以下である。

  • たまたま左右から同時に符号が逆の直流が出力されても、ちゃんと検出・保護できること。
    • 元々起こる可能性の低い事象に備える機能なので、可能な限り、「想定外」の事態を避ける。「片チャネルからしか直流が出ることはないだろう」などのような、都合のいい想定はしない。
      • 左右チャネルは独立のアンプICを使っているが、何らかの問題(例: 製作の誤り)で同時に直流が出力されることはあるだろうし、正負の電源を使っているので、それらの符号が逆になる可能性は低くないと想像する。
    • → 左右のオフセットを独立に検出し、どちらかが起こったらミュートする。
  • 可能な限り、音質を劣化させないこと。
    • 滅多に起こらない事象に対応するために、通常使用時の性能を劣化させないのは当然のことである。
    • → 例えば、オフセットを検出した時、スピーカー出力を切断する(スピーカーの経路に接点・スイッチを追加する)のでなく、アンプの電源を切ることでミュートする。
  • もちろん、電源on/off時に雑音を出さないこと。
    • 音質を劣化させないため、本保護機能ではアンプの電源を制御してミュートを実現するが、そのために雑音が出るのは良しとしない(全くあり得ないことだ※)。上と同様、通常使用時の性能を劣化させては意味がない。
    • → 使用したアンプIC LM3886(以下、3886)には元々電源on/off時のミュート機能があるので、それを利用する。
      • ※以前買った有名オーディオメーカーD社の定番アンプが、(何が原因かは不明だが)電源on/off時に「パチッ」という雑音を平気で出したので、ものすごくがっかりした。クソだと思ったので、即座に返品した。
  • なるべく、自分で保守・修正・改良できる(理解可能な)構成であること。
    • 「ただ組み立てただけで、中身は分かんなーい」だったら、何も考えずに既成品を買って安心している方がいい。いや、それだったら付けなくたっていいと思う。
    • → 理解できる構成を選び、自分で構成や(一部の)回路を考えた。

 

(4/17 23:02) 書く順序が入り乱れるが、ここで、上の条件をどう実現したかについて書く。: まず、全体を把握しやすくするため、本スピーカー保護機能の構成図を示す。

BA3886のスピーカー保護機能の構成

左右チャネル独立のオフセット検出

前の稿でも触れたが、使用したスピーカー保護IC μPC1237(以下、1237)は、オフセットを検出してミュートするために通常使われるオフセット端子(ピン2)の他に、(データシートに詳細が記載されていない、謎の)オーバーロード端子(ピン1)でもミュートすることが可能だ。どちらも同じように入力信号の振幅としきい値で異常を検出してミュートすることが可能だが、オーバーロード端子は正のしきい値でしか検出しないという違いがある。

違いはあるものの、オフセット端子とオーバーロード端子を左右のチャネルに割り当てれば完全に独立にオフセット検出ができるので、本スピーカー保護機能はそうした。最終的な形態までには随分試行錯誤したが、以下のような方式とした。

  • 左チャネル: (通常の使い方と同様に)オフセット端子に入力する。
    • ただし、オーバーロード端子を使う右チャネルとしきい値や平滑化の時定数がなるべく揃うように、入力の抵抗とコンデンサの値を変更した。以下に現状の値を示す。
      • 抵抗: 34kΩ, コンデンサ: 23.5μF
        • どちらも、希望の特性が得られるように手持ちの部品を組み合わせて作ったので、一般的な部品の値ではない。
    • 厄介なのは、抵抗の値は平滑化の特性だけでなくオフセットのしきい値にも関係し、しかも正負のしきい値が別の式で決まることで、そのため、コンデンサの値の自由度も狭まってしまう。
      • 実際には、正のしきい値は概ね固定(変えることも可能)で、抵抗で負のしきい値が変化する。
    • それで、試行錯誤して、右チャネル(下記)と合うように値を決めた。
    • 左チャネルのオフセット検出部も含む、スピーカー保護部の回路図を次に示す。
    • BA3886のスピーカー保護回路

      • 図で、1237のピンは用途の頭文字にピン番号で示した(例: "I1": ピン1, オーバーロード入力端子)。
      • 左チャネルのオフセット検出は信号入力"S in 1 (L)"から1237のオフセット入力端子("I2": ピン2)に信号を入れることで行われる。
      • 左上の"LPF+Abs mod"は右チャネルのオフセット検出のための前処理部(下記)である。
  • 右チャネル: 入力信号の直流成分の絶対値をオーバーロード端子に入力することで、正のしきい値にしか対応しないオーバーロード端子で正負のオフセットを検出してミュートできるようにした。
    • 次の前処理を行っている。
      • LPF → 絶対値取得 → 平滑化 → 増幅(振幅の調整)
    • 前処理の回路図を以下に示す。
    • BA3886のスピーカー保護機能(右チャネル)のオフセット検出の前処理の回路

    • LPFと平滑化は似たような処理で(実際、どちらもLPFである)、私の誤解※もあって当初は平滑化をしていなかったのだが、AC電源などの雑音に誤反応して頻繁にミュートが掛かっていた。それで、良く考えたら平滑化が必要なことに気付いたので、追加した。LPFは絶対値処理を行う周波数を制限し、平滑化は絶対値信号の変動を小さくすることで、AC雑音などで瞬間的に大きな値になった時の誤反応を抑える役割があると考えている。
      • ※絶対値のあとにLPFを入れると、コンデンサのために絶対値が(無限に)大きくなり続けるのではないかとか、絶対値が入力信号の平均振幅になってしまうのではないかと誤解したが、シミュレーションではそうならなかったので、入れた。
      • ただ、AC雑音のパルスのような瞬間的に大きな値の排除は最初のLPFでもできる気がするのだが、実際にはできないところが腑に落ちていない。もしかすると、絶対値処理の回路(LPFのあと)に電源などを経由して雑音が入っていたのかも知れない。
        • ただ、電源経由であれば最後の増幅部に入ってもおかしくないから、あとは、最初のLPF(LPF1)の時定数が短いせいなのかも知れない。
        • それであれば、LPF1を左チャネルのオフセット入力と同様の特性にすればいいはずだ。
    • 絶対値処理回路の都合で振幅が小さくなってオフセット端子としきい値が合わないので、増幅(約1.5倍)を追加した。なぜか、平滑化の後(オーバーロード端子の直前)でないとうまく行かなかったが、ドライブ能力やインピーダンスの関係だろうか。
    • 回路構成は、LPFと平滑化は普通のRCフィルタ、絶対値処理と増幅はオペアンプで行っている。
    • 絶対値処理は、検索して見付かった回路だとどうしても期待通りに動かなかったので、自分で考えた回路を使っている。
    • その回路は、入力に逆方向にダイオード2本を繋げ、入力信号の負の領域と正の領域をオペアンプの-と+入力に入れて、減算回路で正の振幅から負の振幅を減算(= 負の振幅を正にしたものを0に加算= 絶対値にする)することで、絶対値を求めている。
      • このような回路は他で見ないのだが、単に回路の記法の違いなのか、常識外れで何か問題があるのかは分からない。
    • 絶対値処理のオペアンプ周りの抵抗値はどう決めればいいのか全く分からなかったので、減算回路を元にしてシミュレータを用いて大まかに決め、それから実際の回路で調整した。当然ながら、使用するダイオードやオペアンプによって変わる。
    • 使ったオペアンプは、オフセット検出の前処理用で音を聴く訳でないので何でもいいのだが、ASUSのサウンドカードに交換用に添付されていて たまたま手元にあったものを用いた(もったいないが、このまま使わないでおくよりはいいだろう)。ダイオードも、たまたま手元にあったもの(整流用)を用いた。

以上のようにして、左右チャネルで独立にオフセット検出をすることができた。オフセットのしきい値は、データシートの計算式に不明な点(謎の係数2)があったり、正確な直流電圧を入力することができないために理論値・仕様は確かでない(おおよそ直流±0.7V辺りと推測している)のだが、実測では左右ともに直流±1V付近である(約1.2Vの充電池を繋いだり、PCから直流付近の正弦波を出して検出・ミュートできた)。しばらくアンプに繋いで試した限りでは問題なかった(全くミュートしなかった)が、実際に使ってみて小さ過ぎるようなら調整しようと思っている。

気になっているのは、左右の入力回路が異なるため、それらがスピーカー出力に与える影響も異なり、微妙に左右の音がアンバランスになる可能性があることと、左チャネルの入力抵抗が小さ目なために、その後の回路の影響が音に現れやすくないかということだ。それから、右チャネルは入力抵抗は充分大きいが、ダイオードの非線形性の影響が気になっている。実際、チャネルセパレーションは右→左と左→右の値が異なっているので、アンバランスさの影響がない訳ではなさそうだ。

ちなみに、左右の絶対値を同じ回路で合算して求める方式(概略: 上の回路のダイオードを4つにして、正負ごとに左右チャネルを合算する)も試したのだが、現在の方式よりセパレーションが9dB程度悪かったことから、大きな抵抗を通しても そのあとで合算することで、チャネル間の独立性を劣化させる可能性はありそうだ。

なお、絶対値を左右で合算する方式はオフセット検出には使えるものの、正確な加算結果が得られない(左右チャネルの符号の状態によって結果の値が異なる)ので止めて、今の方式にした。

ただ、いずれにしても、普通に聴いて、あるいは、振幅・位相・歪みの周波数特性を測った限りでは、特に問題はない。

それから、もちろん、左右の入力回路を同じにしてアンバランスさを解消することも可能である。左チャネルも右と同じように、LFP+絶対値+平滑化+増幅してオフセット端子に入れれば良い。ただ、オペアンプのパッケージが2個に増えるのと、同じ回路を2個作るのが面倒な(馬鹿らしい)ので実行していない。

アンプの電源を切ることでミュートする。電源on/off時に雑音を出さない

何度か書いて繰り返しになるが、使用しているアンプIC LM3886(以下、3886)には、充分に使える電源on/off時ミュート機能(のための機能)が備わっている。だから、その機能を活用すれば、オフセット検出時のミュート時に普通に電源を切れば特段の雑音が出ずに音が出なくなるはずである(そもそも、この場合は緊急なので、多少の雑音が出ても問題ないのではないかと思うし、スピーカー出力をリレーで切ったとしても雑音は出るはずだ)。

それなのに、で押したようにスピーカー出力をリレーで切るようにしているのが理解できない。他のアンプなら別だが、3886のアンプなら3886の機能を活用すれば、音の経路に余計な接点を追加しないで済むのにと思う。

電源onも同様にミュートされるので、何も考えずに普通に電源を入れて問題ない(回路が良くなくて、オフセットが大きい場合を除く)。1237の電源on時のミュート機能(以下、電源onミュート)は全く不要である。

しかし、下に書いたように、本システムでは、アンプの電源on/offにリレーを使ったため、電源on時にショック音が出る問題が起こった。推測だが、正負電源がonになるタイミングのずれやバウンス・チャタリングによって、3886がショック音を出したのではないか。それを解消するために、やはり下に書いたように、アンプの電源onをリレーで行わないようにした。具体的には、リレーのNC(コイルがoffの時に接続している)端子でアンプの電源を供給することにし、電源がonになった直後から(正確には、onになるのと同時に)アンプがonになるようにしようとした。

すると、1237の電源onミュートが邪魔になった(これのために、電源on時にアンプ電源が一時的に落ちる)ので、強引な手(電源onと同時に電源onミュートの時間を決めるコンデンサを急速充電してミュートしないようにする: 回路図のAの部分)で無効にしてちゃんと動いて一件落着かと思った。

のだが、現在は、(最後に追記したように気が変わって、)1237の電源onミュートを生かしつつ、それによる電源断をマスクするように、電源on直後から1237の電源onミュートが終わるまで、強制的(、あるいはバイパスのよう)にアンプへの電源の線を接続し続ける処理(の回路とリレーのNC接点を使い、電源onの前からアンプの電源をonにし続ける)を追加することを考えた(回路図の右側下から中辺りのトランジスタとリレーの部分)。今はプロトが動作した段階で、部品が届き次第正式に作る予定だ。

 

本文のまとめとして「現状と今後」を書くと、ブレッドボードなどにスピーカー保護回路を試作して期待どおり動くことを確認できたので、これから追加の部品を注文し、届き次第、ユニバーサル基板に実装して※BA3886に組み込む予定である。

※元々スピーカー保護用キットを買ったので、プリント基板はあるのだが、余りにも変更箇所が多いのでユニバーサル基板に作り直す。

 

(以下は最初の投稿の後半と追記)

(疲れているうえに酔って居るので、今はここまでとする。以下は書きたかったことのいくつか+α。)

  • ブレッドボードでの試作が思ったより大変だった。
    • ジャンパ線もミノムシクリップ付きコードもブレッドボードの面積も足りなかった・・・
    • ブレッドボードは意外に載せられる部品数が少なく、仕舞いには、ツイスターみたいに配線に苦労するようになり、気付かずに線が抜けたりショートしたりして、作業効率を低下させた・・・
      • ミノムシクリップ付きコードも経年劣化で接触不良になり、それに気付かずに動作がおかしくなって悩ませられた。駄目になるものが多く、仕舞いにはコード不足で実装・確認が満足にできなくなってしまった・・・
    • 「デジタルじゃないから、そんなに使わないよ」と高をくくって、電源とGNDのないブレッドボードを選んだのも失敗だった。
      • それらだけでも、随分多くのジャンパ線を使った・・・
    • 出来たものは盆栽? 前衛生花?www
    • BA3886のスピーカー保護回路をブレッドボードに実装し、確認・調整中

  • 案の定(作る前の心配が当たった)、電源でミュートする(オフセット発生時に、アンプの電源を切って音を停める)構想が うまく行かなかった。
    • 電源onで盛大に「パチッ」とショック音が出(て、ショックを受けw)た。
      • (オシロなどがないから、実際の状態が見られないので)想像だが、正負電源をリレーでonする場合、正負がonになる時間差(正負の線を別々の接点でon/offするため、どうしても時間差が生じる)やバウンス・チャタリング、それらの組み合わせでアンプICが発狂して本来のミュート機能が働かずに雑音が出るのではないか。
      • だから、アンプの電源をリレーでonしないようにした。
        • オフセット発生時のoffはリレーでするが、そもそも緊急で音を停める場合なので、その時に雑音が出ても仕方ない。
    • その回避に随分手こずった。
      • スピーカー保護IC μPC1237(以下、1237)の電源onミュートが余計なのだが、無効にできずに苦労した。
        • データシートを見て、それを設定する(と書かれている)抵抗やコンデンサの値を調整して無効にしようしたら、まともに動かなくなった。
          • あとで分かったのだが、それらの素子は電源onミュートだけでなく、他の幅広い機能に影響していた。
      • それで、随分いろいろ考え・試して、僕なりの「スゴい手」を考えて実装した。
        • (4/17 13:11) そのスゴい手を簡単に書くと、電源onミュートは1237のピン7のコンデンサが充電されるまで続くので、電源on直後からコンデンサへの電流を制限する抵抗(ピン7-8)をリレーでショートして急速充電※したあとに開放して抵抗を有効にするものだ。
          • ※個人的には「プリチャージ」と呼んでいた。
        • 1237の仕組み上、コンデンサを付けなくても抵抗を0Ωにしても本来のミュートをしなくなるので、少々強引だけど、こうすればいいと考えて、試したらちゃんと動いた。
        • ただ、折角考えた手だが、追記したように電源onミュートを使うことにしたので、お蔵入りとなった。
  • 1237は、きっと、熟練したアナログ技術者が開発したのだろう(「職人技」?)。なかなかすごいとは思うが、僕に言わせれば、モジュール化されておらず(各機能が分離していない)、何とも使いづらいクソ残念なICだ。まあ、「前々世代の作」って感じかねえ・・・
    • 資料(データシート)も、英語版はいかにも日本語を直訳したもので全く分かりずらいうえに脈絡がない(何か端折って居る気がした)し、近頃見付かった原典らしい日本語版を見たら随分謎が解けたものの、「いかもに技術者が書いた」ような、何とも分かりづらいものだった。アナログの話なので分からないことも多かったが、それ以前の問題は多い。
    • そもそも、データシートなのに必要な情報が載ってないってどうよ?
      • 例えば、絶対最大定格で「最大電流」とか書いてあっても、内部抵抗が書いてなかったらどうやって制限すればいいのだろうか? 0Ωを想定するのだろうか? そもそも、この電流は正がICに入るのか出るのかすらも分からない。アナログのプロは分かるのだろうか?
      • それから、電源電圧は最大60Vとあるのに、電源ピン(ピン8)は最大8Vって どういうことだろう?? 全く、「教えてお爺さん」だよw
      • こういう点では、NS社(今はTI)のLM3886のデータシートは神のレベルと言えようw(それでも分からないことが ちょっとあるが)。
    • それにも関わらず代替品や「新作」がないのは、もう、こんなニッチな物は使われないのか(アンプICに組み込まれている?)、作れる人が居ないってことだろうか?

ようやく、BA3886のスピーカー保護回路が動いた。 (左: BA3886本体、右上: 保護回路(試作版)、右下: リレーx2)

  • (4/18 7:01) ミュート機能はちゃんと動作するのだが、そもそもアンプから直流が出ないため、普段は効果を確認することができない。なので、例えば、知らない間に回路が壊れていて いざという時にミュートできずにスピーカーが壊れる可能性をちょっと心配している。
    • 理想は、定期的に自動で自己診断するようにすることだが、どういう契機でチェックするのかが難しい。聴いている時に落ちたら話にならないし、電源on時にしたら、折角それを防いだのに元の木阿弥だ。
    • 例えば、PCに繋いでプログラムからミュート機能をチェックできるようにすれば、自由なタイミングでチェックできて便利だが、なかなか容易ではない。
      • PCから1Hzなどの直流に近い信号を大振幅で出せばミュートするが、スピーカーを繋いだままではちょっと怖い。
    • そこで、まずは、スピーカー保護回路の基板にチェックスイッチを付けて、手動で動作チェックできるようにしたいと考えている。
      • 家の配電盤の漏電ブレーカーのチェックボタンのようなものだ。
      • チェック機能は、オフセット検出入力(= アンプのスピーカー出力)を切断し、テスト用の電圧(±1V程度)を左右の検出入力に掛けてミュートするかを確認することを考えている。
        • この時、正負と左右は別々にチェックする。

 

(4/17 13:06) 寝ると新しい考えや心配が浮かんで来る。今朝、電源on時のミュートを回避する機能の実現方法が今ひとつ「ちゃんとしてない」ことに気付いた。具体的にはリレーの使い方がマズい(メーカーの「べからず集」みたいなのに載っている)。昨日は、思いつくままプロトタイプ的に作って動いたが、そもそも安全性を高めるためのものを いい加減に作るのは良くない。

何が駄目だったというと、電源on時のミュートを回避するためにした、以下の二つである。

  • ミュート用リレーを常時off(NC接点(電源offで閉じている接点)が繋がっている状態)で使おうとしていたが、接点を全然動かさないと、(まずないとは思うが)固着してミュートすべき時にできなくなる可能性がある。
    • 電源on直後からアンプの電源をonにしておくためにそうした。
  • ミュート用リレーの動作を反転させるため、プルアップした。直感的にまずそうだと思ったが、やっぱり良くなかった。コイルに常時弱い電流を流し続けるのは良くないとのことだ。
    • 上記のようにミュート用リレーを常時offで使うため、ミュート時にリレーをonさせる必要があるので反転させた。

それで、早速対処を考えた。

まず、固着については、(苦労して回避するようにした)電源on時のミュートを復活させることにした。そうすれば、電源を入れるたびに動くから、固着する心配はない。動作音で正常性の確認もできる。

ただ、そうすると、リレーでアンプの電源をonするためにショック音が出るので、それを回避するため、起動時(電源off時から)はアンプの電源を強制的にonしておき(ミュート用リレーがoffにするのを無効にするため、並列にもう一個のリレーを繋ぎ、onで「上書き」する)、1237の電源on時のミュートが終わった頃合いを見計らって上書きを止めてミュート用リレーに引き継ぐことを考えた。

なかなか大変そうだったが、何とかなりそうだ。ついにトランジスタを使うことにした。いろいろ調べて回路(1237のリレー出力の反転、リレーの遅延on)を作り、シミュレーションは うまく行った。更に、例によって「ちょっと試したく」なって、どこかに丁度いいトランジスタはないものかと血眼で探しw、運良く古いルータの電源部に付いていた2個※を引っ剥がして試したら、シミュレーションどおりに動いた。超簡単な回路とはいえ、トランジスタが使えるようになったなんて、我ながらすごい進歩だ^^

※チップ上面のコードで調べたら(→ 検索ベージ)、PMBT4401というもので、データシートによれば買おうと思って居た(日本では超定番の)2SC1815の代わりにできそうだったので、外して試すことにした。

トランジスタを使えば、リレーの動作を反転させるのに余計な電力を消費しないのも うれしい。これがちゃんと出来たら、逆転満塁ホームラン級ではないかw

この場合はリレーの動作を反転させる必要はないが、リレーを2個使うので、そのうち1個を起動時以外はoffにして消費電力を抑えようと思っている。まあ、買ったリレーは1個150mWなので、無理して抑える必要はないのだが・・・ → この回路では安定性が重要なので、動作に問題がない限り反転せず、「普通」に したほうが得策な感じだ。 (4/17 17:13)

 

ただ、「ミノムシ不足」で機能全部は試せず歯がゆい思いをしているので、以前あるのを目にしたホームセンターにちょっと買いに行こうと思っている。でも、割高な気がするので、通販のほうがいいかな・・・

結局、だるくて、他の部品と一緒に通販で買うことにした。届くまでは休憩だ。 (4/17 17:13)

  •  0
  •  1

コメントを書く / Write a comment

名前 / Name    

メール / Mail 

URL