FIRチャンネルデバイダの作成【19】デジタルボリューム

 

マルチアンプシステム向け、FIRフィルター搭載チャンネルデバイダー(チャンデバ)自作に関連する記事の一覧はこちら!

 

今回は、デジタルボリュームを追加してみましょう。

 

さて、デジタルボリュームですが仕組みは、内部のI2S信号で送られてくる数値に、ボリュームの数値(0〜1.0)を掛け算することで、実現していきます。

 

よって、ビット落ち!することは確実ですので、利用するかどうかは、各自ご判断を、という所です。

私の環境では、後段で、PGA2311を利用したマルチチャネルボリュームを構えているので、使用していないというのが現実です。

 

とは言うものの、利用したいシーンは出てくるかもなので、ご紹介いたします。

っと、さらに、ご紹介します、言っていますが、実際には、

 

こちらのAUAD1467公式の評価ボードユーザーガイドのコピペ的なお話ですが。

 

  回路図の変更

まずは、いつものように、挿入部分をカットします。

音に影響がでるので、とにかく後段に置きます。

 

そして、追加するモジュールは4種類5個配置します。

まずは、ADC入力

 

DSP内部の値を読み取るモジュール(DSP Readback)、これは2個使います。

 

そして、シフト演算モジュール

 

最後に、外部コントロール付きボリュームコントロール(以前使っているものと違います!)

 

これらをドラッグ&ドロップして、以下の図の配線&パラメータに設定してください。

 

概要は、

  • ADC0から入力
  • Readback32ビット整数としてどんな値か確認(なのでReadbackモジュールはなくてもいいですが、デバッグ的にあったほうが楽)
  • 左に14ビットシフトして8.24形式の小数に変換
  • Readback8.24形式小数としてどんな値か確認
  • 外部コントロール付きボリュームコントロールのコントロール信号(赤ポチ)として入力

このような感じです。まあ、コピペでほぼほぼ問題なく動作します。

ちなみに、外部コントロール付きボリュームコントロールですが、
青い四角の中をクリックすると、ボリュームの上げ方、下げ方の指定、
その下にある「8」とかの数値は、上げる時間、下げる時間、の指定となります。

※実際にどのくらいの時間?は、

 

こちらのQAで記載されていますので参考にすると良いでしょう。

 

そして、外部コントロール付きボリュームコントロールを8ch化して、全体に組み込みます。

 

  ボリューム接続

一般的な、Aカーブ、Bカーブ(お好みで)の、10Kくらいのボリュームを以下の部分に接続します。

 

ADCの基準電圧は、内部IO電圧(3.3V)となっているので、リファレンスは3.3V端子からもらいます。

ただ、配線の長さによっては以外とノイズが乗るのでADC0への入力がふらつきます。

GNDでシールドできるような、内部2線のシールド線を使う、あと0.1uF+0.01uFのコンデンサをADC0入力直前に差し込むと低減されます。

ただ、実際に気になる(聞いて分かるほど)ほどボリュームが揺れるかと言うとそうでもないので、まあお好みで。

 

ここまで出来たら書き込みを行って動作確認してみてください!

無事に、ボリュームコントロールできているかと思います。

 

つづく!