ボリューム(POT)の減衰曲線
目標とするボリュームの減衰曲線は ALPS RK27 ボリュームの
A(15A)曲線(ボリューム50%位置で出力は入力の15%, 指数変化)を参考にします。
見た感じ3つの直線でできているので, ボリュームの減衰曲線も3つの直線で作ることにした。
電子ボリュームIC LM1972の減衰特性
設定値 0~127, 128(mute)をLM1972に設定した時の減衰量グラフがFIGURE 3
途中から減衰ステップが0.5dB刻みから1.0dBへと変化する特性になっています。
2つの直線を組み合わせた関数で単純な1次関数ではないので,
目的の減衰特性を得るテーブルを用意するスクリプトを作る。
Aカーブ減衰特性
GNU Octaveで電子ボリュームの設定値0から31とLM1972の設定値をAカーブで設定するテーブルを作るGNU Octave用減衰テーブル計算スクリプト を作った。
(注: 実際の15A曲線は使いにくかったので,これは15A曲線ではありません)
|
|
GNU Octave用減衰テーブル計算スクリプトで作ったテーブル
|
|
減衰曲線のグラフとAカーブ32段階電子ボリュームの減衰曲線のテーブルが得られた。
このあとでボリューム0は127=muteに書き換えます。
検討中の名残でLM1972とPGA2311の減衰設定値も出てますが
それぞれのグラフは重なっています。
チャンネルをLM1972に設定する
LM1972の2つの減衰器にはそれぞれに独立した値を設定できるのですが, 今回の目的はステレオ電子ボリュームなので両チャンネル(L/R)には同じ値を設定することにします。
LM1972のDATA-INに Address Register(Byte 0)のbit7からbit0, 次に 設定値のbit7からbit0 を送り出します。
減衰値をLM1972に設定する
- LOAD/SHIFTピンをLに
- DATA-INに最上位ビット(bit7)から設定値を送り出す
- CLOCKピンをHに
- 150ns以上待って
- CLOCKピンをLに
- 設定値を送り出す, CLOCKピンをH/Lにする作業を
すべてのデーターを送り出すまで繰り返す - LOAD/SHIFTピンをHに
ステレオAカーブ電子ボリューム設定関数
|
|
電子ボリュームコントローラソフトウェア
2チャンネル電子ボリュームIC(LM1972)を32段階ステレオ電子ボリュームとして使うプログラムです。
One thought on “電子ボリュームICをAカーブ減衰特性で制御する”
I am so grateful for your article.