Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

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  とコマンドを打つと

Sb32proi2c

上の 45 がSB32+PRO DoPのI2Cアドレスです。UU(4D)はPCM5122のアドレスですが、カーネルが使用していてユーザはアクセスできません。

Sb32problock 

ブロック図を見ると理解しやすいでしょう。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。

Sb32pro20

0x00の時はPCM5122互換モードなのでAlsamixerからの選択です。

 

NOSモード設定

デジタルフィルタをバイパスすることが可能です。サンプリング周波数に応じてバイパスの可否を設定できます。

sudo i2cget -y 1 0x45 0x61 c          // 現在値の確認

sudo i2cset -y 1 0x45 0x61 NUM b   //  NUMは下記の中から選択します。デフォルト値は0x03

Sb32pro21

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万回の書換え保証です。外部プログラムで書き換えるときは繰り返して書き換えないようご注意下さい。

 

 

サイト内検索(new)

2023年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30