SB32+PROコマンド
SB32+PRO DoPは出荷時に最適なパラメータに設定してありますが、ユーザが独自にパラーメータをカスタマイズすることもできます。
カスタマイズしたパラメータはPIC内部のEEPROMに保存され再起動後も有効です。
以下のコマンドはコピペして使うと打ち間違えが少ないです。CUIではスペルをひとつでも間違うとダメですのでご注意ください。
i2cコマンド送信の準備
i2c通信をするためにi2c-toolsをインストールします。
sudo apt-get update
sudo apt-get install i2c-tools
これでi2c通信するツールがインストールできました。
次に、
/etc/modules に i2c-dev が記載されていること
/boot/config.txt に dtparam=i2c_arm=on が記載されていること
なければ追記します。
ここで再起動するとi2c通信可能になっているはずです。
sudo i2cdetect -y 1 とコマンドを打つと
上の 45 がSB32+PRO DoPのI2Cアドレスです。UU(4D)はPCM5122のアドレスですが、カーネルが使用していてユーザはアクセスできません。
ブロック図を見ると理解しやすいでしょう。PICマイコンは0x45と0x4D、及びES9218P用のI2C通信を並列に処理します。
デジタルフィルタ設定
以下のコマンドで8種類のフィルタを選択できます。 NUMのところを任意の数値(hex)で指定します。
sudo i2cget -y 1 0x45 0x60 c // 現在値の確認
sudo i2cset -y 1 0x45 0x60 NUM b // NUMを下記の中(0x00~0x08)から選択する。デフォルト値は0x00。
0x00の時はPCM5122互換モードなのでAlsamixerからの選択です。
NOSモード設定
デジタルフィルタをバイパスすることが可能です。サンプリング周波数に応じてバイパスの可否を設定できます。
sudo i2cget -y 1 0x45 0x61 c // 現在値の確認
sudo i2cset -y 1 0x45 0x61 NUM b // NUMは下記の中から選択します。デフォルト値は0x03
8倍というのは、8倍オーバーサンプリングが機能するという意味です。NOS時でも後段のIIRフィルタが常時ONのためfsが低いと高域が伸びない仕様なのでお気を付けください。
0x02もしくは0x03がお薦めです。
マスターPLLバンド帯域幅
マスターモード時のPLLバンド帯域幅設定です。
sudo i2cget -y 1 0x45 0x63 c // 現在値の確認
sudo i2cset -y 1 0x45 0x63 0x01 b // Lowest
sudo i2cset -y 1 0x45 0x63 NUM b // デフォルト値は0x05
sudo i2cset -y 1 0x45 0x63 0x0F b // Highest
NUMを小さい値にすると音像定位が鋭くなり、大きな値にするとゆったりした音になります。マスター時は、DAC基板上の低位相ノイズクロックを使用しているためジッターが殆どなく値はいくつでもPLLは外れません。好みで選択してください。
スレーブPLLバンド帯域幅
スレーブモード時のPLLバンド帯域幅設定です。
sudo i2cget -y 1 0x45 0x62 c // 現在値の確認
sudo i2cset -y 1 0x45 0x62 0x01 b // Lowest
sudo i2cset -y 1 0x45 0x62 NUM b // デフォルト値は0x0D
sudo i2cset -y 1 0x45 0x62 0x0F b // Highest
入力信号にジッターがある場合は、大きな値にすると音飛びしにくくなります。
Auto Mute
指定レベル(LEVEL)を指定時間(TIME)以上下回ったときミュートします。ノイズゲートをイメージすると分かりやすいでしょう。
sudo i2cget -y 1 0x45 0x65 c // LEVEL 現在値の確認
sudo i2cset -y 1 0x45 0x65 NUM b // 範囲 0x00 - 0x7F 敷居値のデシベルをhexで指定(例:110dBなら0x6E)
sudo i2cget -y 1 0x45 0x64 c // TIME 現在値の確認
sudo i2cset -y 1 0x45 0x64 NUM b // 範囲 0x00 - 0x7F 小さい方が短い時間
Soft Mute
ミュート解除開始までの時間(Start)とミュートの傾斜(RampRate)を指定します。
sudo i2cget -y 1 0x45 0x66 c // Start 現在値の確認
sudo i2cset -y 1 0x45 0x66 NUM b // 範囲 0x00 - 0x14 小さい方が短い時間
sudo i2cget -y 1 0x45 0x67 c // RampRate 現在値の確認
sudo i2cset -y 1 0x45 0x67 NUM b // 範囲 0x00 - 0x07 小さい方がゆっくり
Start時間が長すぎたり、RampRateがゆっくりだと曲の先頭が切れるのでご注意ください。 RampRateはAuto Muteの傾斜にも使用されています。
PROモード切替え(マスター/スレーブ切替え)
sudo i2cget -y 1 0x45 0x0B c // 現在値の確認
sudo i2cset -y 1 0x45 0x0B 0x00 b // SLAVE MODE
sudo i2cset -y 1 0x45 0x0B 0x01 b // PRO MODE 1 (ASRC-ON)
sudo i2cset -y 1 0x45 0x0B 0x02 b // PRO MODE 2 (ASRC-OFF)
sudo i2cset -y 1 0x45 0x0B 0x10 b // ALL RESET
PROモード -> SLAVEモード に変更したときは一度電源をOFFにします。
SLAVEモード -> PROモード に変更したときはOSの再起動が必要です。
PRO 1 <-> PRO 2 は即時反映します。
ALL-RESETは、全てのパラメータを初期化します。次回電源投入時に初期化ルーチンが実行されます。
※保存領域のEEPROMは10万回の書換え保証です。外部プログラムで書き換えるときは繰り返して書き換えないようご注意下さい。
最近のコメント