電子ボリューム BH3532

BH3532版の販売は終了いたしました。 新電子VR基板 (PGA2320)  こちら  


 音量調整用に使う質の良いVR(可変抵抗器)の入手が難しくなってきてます。
 現在、安価に入手できるVRの問題点として、
  (1) 絞り込んだ時の左右差(ギャングエラー)が大きいため、ボリューム位置で音像が左右に移動してしまう。
  (2) 最小絞り近辺での音量調整がクリチカルでやりにくい。
  (3) 回転時に動ノイズ(ガリ音)が発生する場合がある。
  (4) VRを使う場合の一般論として、出力インピーダンスがVR位置で変化するため高域特性が変化する。
 等、種々の問題を抱えています。 定インピーダンス型のATTを抵抗で作るのは高精度/半端な値の抵抗器を
 入手するのは困難で現実的ではありません。 最近では電子VRを使った方がどうも手っ取り早いようです。 

 そこで手軽に使える電子VRユニットを ということで、設計・作製しました。


   < 2010年9月 追記 > 
  基板改訂しました。 VRチャンネル数の増設が可能となりまました。 また、バッファ用オペアンプ廻りのパターンは
  Gain 調整や、単電源OPにも対応できるようになりました。 (ご希望があれば対応した基板で出荷可能です。ご相談ください)




 <主な使用部品>
  ・電子VR用IC: BH3532FS ROHM製 22KΩ抵抗を256分割/256ステップのATT回路を2回路内蔵 動作電圧 5V
    =>1ChにATT2回路シリーズ使用(512Step相当)し最適な組合せから、0dB〜-80dB 2dBステップを実現
  ・制御用マイコン: AT Tiny2313 Atmel製8bit RISCマイコン FROM2KB/SRAM128B  最大クロック20MHz  動作電圧 5V
    =>クロック/内部発振8MHz リセット電圧/4.3V 開発環境/AVR studio+WinAVR ライター/AVRISP-MK2
  ・バッファアンプ: NJM4558 他同等品など
    =>Gain 0dBで使用します。 ATT出力インピーダンスを低インピーダンスに変換するために使用します。
  ・ロータリーエンコーダ: P-00292/秋月電商扱い 16型 24Step/360度
    =>マイコンで回転方向と回転量を検出し、電子VR IC を制御します。
  ・その他:表示用LCDまたは、LED回路、等


<主な仕様>

  ・ 最大信号入力    : 2.1Vrms
  ・ 挿入損失(0dB時)  : -0.5dB
  ・ ATT量可変範囲   : 0dB〜-80dB  最小絞り -100dB以上/1KHz
  ・ 周波数特性      : 10Hz〜100KHz  ±1.0dB以内 (ATT位置 0dB/-20dBとも)
  ・ クロストーク      : -85dB以下 (1kHz 2V入力時)
  ・ S/N          : 90dB以以上 (1kHz 2V入力時) JISA補正時 110dB以上
  ・ 電源(1)      : マイコン及び 電子VR IC 用 5V  日圧 EH-2Pコネクタベース使用。
     電源(2)      : バッファアンプ用 ±5V〜±15V  日圧 EH-3Pコネクタベース使用。
                (OPA2604使用時には ±12V 〜±15V の使用がお勧めです)
  ・ 基板サイズ   : 外形/72o×47o 取付孔/各辺から-3oの位置  (ユニバーサル基板同サイズ)
  ・基板材質     : ガラスエポキシ FR-4材 両面スルホール
  ・信号入出力端子 : ヘッダーピン 4Pタイプ
  ・表示用デバイス : LCD(SC1602 16文字X2行) または、LED推奨回路 が接続可能です。 無くてもVR機能としては問題ありません。
 

電子VR基板 V2です。 
VR IC、Buff OP AMP、マイコン等が搭載されています。

チャンネル増設のためのパターンを追加しました。(2010/9/4)
増設用は、マイコンを搭載せず搭載している基板のからの制御
信号で制御されます。 増設VRの動作は、メイン基板のVRと同じ
動作になります


< 基板例 >
上の写真が増設用(コントローラマイコン無し)
下が基本となる基板(コントローラ付き)です




電子VR用 ロータリーエンコーダ補助基板です。
バランス調整用のタクトSW 2個と エンコーダ位置表示用LED、
パワーLED等が搭載されています。

VR基板本体とは、エンコーダー出力用が 5P、LED用として 2Pのコネクタで結びます。




< 接続・動作例 >

2chVR用として結線・動作させた例です。




4chVR用として結線・動作させた例です。



取扱の詳細は、取扱説明書を参照願います。



 ・おすすめの電源基板は (こちら

 ・動作デモビデオは < こちら >

 ・LEDで表示する場合は < こちら >

 ・5V単一電源で使う改造方法は < こちら >

 ・6ch仕様の例(特注対応品)  < こちら >


  


<戻る>

 開発ノート (参考)
(本内容は、別荘ページで先行掲載している内容のリメイク版です)
  VR回路2段化の検討
 
 当初は、BH3532FS 1段 1個のICチップでLch/Rchまかなう予定であったが、1段タイプで試作試聴した結果、減衰量が足りないことが
 判明し、Lch/RchそれぞれICチップを用いてATTを2段し、ATT量を稼ぐこととした。

  =>使用したヘッドホンは、SONYのMDR-F1。 感度は100dB/mWとあまり高い方ではないがインピーダンスが12Ωと低いため、
   低インピーダンス駆動能力のあるアンプの場合は、電圧感度換算で8dB程度アップしMDR-CD3000(32Ω)より高感度となる。


 まずは減衰量のシミュレーションである。 2段構成にする場合 VR間にbuff等を入れるなど回路を複雑にしたくないので単純に
 VR回路をシリーズにつなぐことを前提とする。その場合、1段目の減衰カーブは2段目の全抵抗値(22KΩ)が負荷となるため
 減衰カーブが変わる。 

                  VR1とVR2のシミュレーション結果
     


 2段の減衰量の組み合わせで、リニアなステップ設定が出来そうなので、それぞれの減衰量から
 組み合わせで 2dBステップで-80dB程度の組み合わせが可能か、検討してみた。
 最初は手計算で 丁度2dBステップになる組み合わせを探していたのだが、埒があかない。 

 C#でさくっと組み合わせを探すソフトを作ってシミュレーションした結果、結構良い組み合わせがあるようで
 -60dBまでなら 2dBstepを±0.02dB 内で収まるような組み合わせが探し出せる。
 これははっきり言って凄いことで単品の抵抗でATTを作ることを想定した場合、論理計算で出した半端な抵抗値を
 1%以下の誤差で組み合わせすることに等しい。 つまり一般的には不可能ということである。
  但し、BH3532FS内部の抵抗誤差を全く無視した話であり 「とらぬ狸」 ではある。
 

 この結果は、「思っていた以上に良い結果」 であり ぜひとも実現したい。 と欲が出てくる。
 
    


  使用予定のマイコンのメモリーが 2KBしかないため Cで書いたプログラムを納めることができるかどうか・・・・。
  ソースコードの見直しと変数の型見直したり(intをint8_t等) データのプログラム参照(const)にするなどして
  無事、2048byte + 128byte に収まりました。

 

  下の写真のように表示させています。 LchとRchのバランス調整も可能です。


           
           -80dBまでLch/Rch 独立制御します。 但し、理論値   
           実力の程は・・・・・ こちら

 ボリューム位置の保存
 ATMEL社のTINY2313スペックシートを確認すると、eePROMの書き換え保証回数は 「10万回しかない」
 ボリュームdata保存のため操作するたびに値を eePROMに書き込んでいると簡単に保証回数を超えてしまう。
 初期値を何らか 別の方法で保持する必要がある。

  (BH3532は、minからmaxまでのステップが256であり 単純に駆動した場合 10万/256=390 
   つまりわずか 390回 最小/最大を繰り返すと保証範囲を超えるのである。  eePROMが
   そんな回数でダメになるとは思えないのだが 保証範囲内の対応が望ましいのは言うまでもない)

 操作に使えるSWとしてバランス調整用のタクトSW2個があるので、このSWに以下の3つの機能を持たせている。
  (1)SWの単独操作では、ボリュームdataを L/Rそれぞれダウンさせることによりバランス調整を行う。
  (2)SW同時押しさたときに、L/Rの値が異なる場合は バランスリセット(L=R)とする。
  (3)SW同時押しされたときに、L/Rの値が同じであり 且つ1.5秒以上長押しされたときボリュームdataを
    eePROMに書き込みボリュームdataを保存する。 保存されたデータはpowerオン時読み込まれる。
    バランスの値は保存されない。

  回路と基板の再設計
  VRが2段になると出力インピーダンスも高くなり、生出しするのはさすがに気が引けるのでオペアンプbuff(0dB)を追加。

   

  基板全面書き直し
  毎回 DグランドとAグランドの分離方法に頭を痛めます。
  今回は、DグランドとAグランドをパターン上でつながず、Jamperでつなぐことにしました。
  そうすれば塗り潰しブロックを分けるだけで、D-Aのグランドが分離できます。
  しかし、両面基板使って ”Jamperか?!” と野次が出そう

     
       塗り潰し実行画面。 ベタアースが分離しているのが分かります。

  完成基板での実験風景写真
         手前に見えるツマミがロータリーエンコーダ

    < 動作デモビデオは こちら >



 電子VRでも LED表示

  ATAPIコントローラで、LCD端子にLED回路を付けて表示する改造の企てが成功したので、気をよくしてこちらの電子ボリュームでも LED回路を
 接続できるようファームを改造した。 ソフト的には既に開発済の内容であるので 移植だけだったのだが こちらにはこちらの都合があり ちょっとだけ
 細工を要求された。 というのも、先にも述べているように 使用している マイコンチップのメモリー容量が上限に来ていたため さらなるコード削減が
 求められたというわけである。 ともあれ無事改造を終え LED回路でも自動検出及び表示動作が可能になった。

 回路は、ATAPIコントローラでは 切換SWとして使っていたポートにも LEDをつなぐようにして 5ステップの表示を 可能にしている。

   

 LCDと LED回路の制御切換は 自動で行われる。 具体的には 電源投入時にどちらが接続されているか検出し 以降のマイコン制御を切り替えている。


       LED回路手作り基板

 各LEDの表示は、左から -50dB、-40dB、-30dB、-20dB、-10dB のレベルで順番に点灯していく 設定となっている。

 VR IC 2段化の減衰量測定

 パターン設計が一段落したので、2段化したVRの減衰量を実測しました。
 -40dB以下になってくると理論値との差異が1dBを超えたため組合せを見直し補正しました。結果ステップ毎の理論値との差は1dB以内。
 ギャングエラー(左右差)は最大で 0.66dBと ±1.0dB以内に収まります。 最大減衰量(∞)は、-103.1dB/-102.3dB でした。
 予想以上の、良い特性が出ています。



  測定方法
   ・入力 1KHz 2V 一定
   ・出力 100KΩ負荷 Noiseメータ/JIS-Aカーブ補正

      グラフ1. <設定step と VR減衰カーブ>
  


      グラフ2. <理論値との差異>
  



 ロータリエンコーダについて

 今回使った、ロータリエンコーダー(秋月扱い)には、回転時にクリックがあり そのクリック位置でボリュームを 1stepずつ進めたいのですが
 エンコーダの出力は、下図のようにクリックとクリックの間でも変化し 且つチャタリングも発生します。従って、単純にエンコーダの
 出力を数えると、ボーリュームコントロールとしての操作に違和感がある変化を生じます。(つまり誤動作が発生する)


   最初は、クリックが無くなるように ロータリーエンコーダを改造して使ってみたのですが、Stepが細かすぎて
   音量ボリュームとしての操作としては使いにくいので、クリック有りに 戻しています。(=>改造方法は別荘ページで)
   クリック無しとして変化を全て取り込んだ場合、回転角度 3.75°(96step/360度) で 1stepの変化が得られますが細かすぎるようです。


 コントローラ TINY2313の処理は、割込を使わず入力ポートレベルをソフト的に見ています。

               


   ロータリエンコーダーのチャタリング波形例
   一見、チャタリングのないきれいな波形のようにみえるのだが   高速で取り込むと、この例では100μS程のチャタリングが観測される。
         
   <参考値>
     ロータリエンコーダのチャタリングのスペック
       ・プルアップ10KΩ時に  max5mS
       ・プルアップ  5KΩ時に  max2mS です。
    TINY2313の内部ポートプルアップ抵抗は、20KΩ〜50KΩです。
  つまり単純にタイマーを使って遅延(5mS〜10ms))すると素早い回転時に変化が追いつかない状態が生じます。

   プログラムの例です。 (搭載した実際のコーディングとは異なります)
    
                           //volume[0]はLch, volume[1]はRch の位置dataに相当










< HOME >



(c) 2009-2010 Mi-Take/t.minobe