この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x0102. DIGITAL_OUTPUT_FORMAT 概要
Digital Audio Output Format(デジタルオーディオ出力フォーマット設定プロパティ)
デジタルオーディオ出力フォーマットを設定します。設定項目には、DCLKエッジ、データフォーマット、強制モノラル、サンプル精度などがあります。
対応デバイス: Si4704-D60以降、Si4705/06、Si4731/32/35、Si4730/34-D60以降
デフォルト値: 0x0000
注: DIGITAL_OUTPUT_FORMATは、FM受信コンポーネントのバージョン2.0以降でサポートされています。
デジタルオーディオ出力フォーマットを設定します。設定項目には、DCLKエッジ、データフォーマット、強制モノラル、サンプル精度などがあります。
対応デバイス: Si4704-D60以降、Si4705/06、Si4731/32/35、Si4730/34-D60以降
デフォルト値: 0x0000
注: DIGITAL_OUTPUT_FORMATは、FM受信コンポーネントのバージョン2.0以降でサポートされています。
2 プロパティ
2.1 プロパティリスト
| Bit | 上位バイト PROPH | 下位バイト PROPL | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Name | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | OFALL | OMODE | OMONO | OSIZE | ||||
| Bit | Name | Function |
|---|---|---|
| 7 | OFALL | デジタル出力 DCLK エッジ 0 = DCLKの立ち上がりエッジを使用 1 = DCLKの立ち下がりエッジを使用 |
| 6:3 | OMODE | デジタル出力モード 0000 = I2S 0110 = 左詰め(Left-justified) 1000 = DFSパルス後の2番目のDCLKでMSB 1100 = DFSパルス後の最初のDCLKでMSB |
| 2 | OMONO | デジタル出力モノラルモード 0 = モノラル/ステレオ・ブレンドを使用(ブレンド閾値に基づく) 1 = モノラルに固定 |
| 1:0 | OSIZE | デジタル出力オーディオサンプルの精度 0 = 16ビット 1 = 20ビット 2 = 24ビット 3 = 8ビット |
2.2 プロパティ
本プロパティは、Si4735からデジタルオーディオ信号を出力する際のシリアルインターフェース仕様(クロックエッジ、データ配置、モノラル/ステレオ、サンプリング精度)を詳細に設定するものです。
デフォルト値は 0x0000 です。
本ICは通常のアナログ音声出力(ROUT/LOUTピン)に加えて、DSPが処理した高品質なデジタル音声を直接外部のDACやDSP、Bluetoothモジュール等へ I2S(Inter-IC Sound)等のデジタル規格 で受け渡すことができます。
このデジタル出力を有効化・最適化するための核となるプロパティです。
デフォルト値は 0x0000 です。
本ICは通常のアナログ音声出力(ROUT/LOUTピン)に加えて、DSPが処理した高品質なデジタル音声を直接外部のDACやDSP、Bluetoothモジュール等へ I2S(Inter-IC Sound)等のデジタル規格 で受け渡すことができます。
このデジタル出力を有効化・最適化するための核となるプロパティです。
2.2.1 OFALL (Output Falling Allocation / Digital Output DCLK Edge)
目的と概要:
デジタルオーディオのビット同期クロック(DCLK)の、どちらのエッジでデータをサンプリング(または出力変化)させるかを指定します。
0 で立ち上がりエッジ(Rising edge)、1 で立ち下がりエッジ(Falling edge)を使用します。
AN332に明記されない目的と解説:(Google AI (Gemini) の見解)
0 で立ち上がりエッジ(Rising edge)、1 で立ち下がりエッジ(Falling edge)を使用します。
世の中に存在する主要なデジタルオーディオIC(Texas Instruments社、Cirrus Logic社など)のあらゆるバス仕様に対応するための「業界標準互換モード切替スイッチ」です。
内部のDSPコアが出力するシリアルシフトレジスタのタイミングを物理的に可変させ、受信側ICのI2Sコントローラと完全な同期を確立するために不可欠なビットです。
内部のDSPコアが出力するシリアルシフトレジスタのタイミングを物理的に可変させ、受信側ICのI2Sコントローラと完全な同期を確立するために不可欠なビットです。
2.2.2 OMONO (Digital Output Mono Mode)
目的と概要:
デジタルオーディオのデータフォーマット(通信規格)を決定します(4ビット構成)。
0000 = 標準I2Sモード、0110 = 左詰め(Left-justified)モード、1000 = MSB at second DCLK after DFS pulse、1100 = MSB at first DCLK after DFS pulse。
AN332に明記されない目的と解説:
0000 = 標準I2Sモード、0110 = 左詰め(Left-justified)モード、1000 = MSB at second DCLK after DFS pulse、1100 = MSB at first DCLK after DFS pulse。
世の中に存在する主要なデジタルオーディオIC(Texas Instruments社、Cirrus Logic社など)のあらゆるバス仕様に対応するための「業界標準互換モード切替スイッチ」です。
内部のDSPコアが出力するシリアルシフトレジスタのタイミングを物理的に可変させ、受信側ICのI2Sコントローラと完全な同期を確立するために不可欠なビットです。
内部のDSPコアが出力するシリアルシフトレジスタのタイミングを物理的に可変させ、受信側ICのI2Sコントローラと完全な同期を確立するために不可欠なビットです。
2.2.3 OMONO (Digital Output Mono Mode)
目的と概要:
デジタルオーディオ出力をモノラル音声に強制するかどうかを設定します。
0 で通常のステレオ/モノラル自動ブレンド(電波状態に応じて可変)、1 で出力を強制的にモノラルにします。
AN332に明記されない目的と解説:
0 で通常のステレオ/モノラル自動ブレンド(電波状態に応じて可変)、1 で出力を強制的にモノラルにします。
外部に接続するオーディオコーデックやアンプが1チャンネル(モノラル仕様のスピーカーユニット等)である場合、またはAM/SSB受信時など元からモノラルソースである場合に、
左右のチャンネルへ同一データを完全に複製して送る、あるいは片側を無駄に処理させないための「システム全体の負荷低減・マッチング」を目的に実装されています。
2.2.4 OSIZE (Digital Output Audio Sample Precision Size)
目的と概要:
音声1サンプルのビット精度(分解能)を指定します(2ビット構成)。
0 = 16ビット、1 = 20ビット、2 = 24ビット、3 = 8ビット。
AN332に明記されない目的と解説:
0 = 16ビット、1 = 20ビット、2 = 24ビット、3 = 8ビット。
Si4735の内部DSPは非常に高いダイナミックレンジでオーディオ処理を行っています。
ハイエンドな外部オーディオDAC(24ビット対応など)と接続する際には 2 を選択することで、DSPの計算精度を損なうことなく超高音質で出力できます。
逆に、安価なBluetoothモジュールやマイコンのI2S入力が16ビットしか対応していない場合は 0 に制限し、データのクリッピング(桁溢れ)やビットずれを防止する「解像度整合用」のビットです。
ハイエンドな外部オーディオDAC(24ビット対応など)と接続する際には 2 を選択することで、DSPの計算精度を損なうことなく超高音質で出力できます。
逆に、安価なBluetoothモジュールやマイコンのI2S入力が16ビットしか対応していない場合は 0 に制限し、データのクリッピング(桁溢れ)やビットずれを防止する「解像度整合用」のビットです。
3 応答パラメータ
本項目はプロパティ(Property)の書き込み・読み出しであるため、コマンド(SET_PROPERTY, GET_PROPERTY)に対する共通のSTATUS返却値(1バイト)が応答パラメータに相当します。
STATUS (Status Byte)
STATUS (Status Byte)
CTS (Clear to Send):
ERR (Error):
1 になると、チップが前のコマンドの処理を完了し、次のコマンドを受け入れられる状態であることを示します。
ERR (Error):
1 の場合、直前に送ったコマンドやプロパティの引数が不正(範囲外など)であったことを示します。
4 その他(Google AI (Gemini) の見解)
4.1 コマンドの重要ステップと注意事項
初期化順序の「鉄則」を守る:
サンプルレート変更時の罠に注意:
デジタルオーディオを有効にするには、まず最初の POWER_UP コマンドを実行する際、引数(ARG1)の OPMODE でデジタル出力を明記して起動する必要があります。
その後、本プロパティ(0x0102)でフォーマットを決定し、最後に 0x0104: DIGITAL_OUTPUT_SAMPLE_RATE を設定するという、厳格なステップを踏む必要があります。
その後、本プロパティ(0x0102)でフォーマットを決定し、最後に 0x0104: DIGITAL_OUTPUT_SAMPLE_RATE を設定するという、厳格なステップを踏む必要があります。
サンプルレート変更時の罠に注意:
動作中にサンプリング周波数(32kHz〜48kHzなど)を変更したり、DCLK/DFSを無効にする場合は、事前に DIGITAL_OUTPUT_SAMPLE_RATE プロパティを一度 0 に設定しなければならないというAN332の注意書きがあります。
これを怠ると、ICが未知のフリーズ状態に陥り、ハードウェアリセットしか受け付けなくなるため極めて注意が必要です。
これを怠ると、ICが未知のフリーズ状態に陥り、ハードウェアリセットしか受け付けなくなるため極めて注意が必要です。
4.2 もう少し踏み込んだ応用展開
ESP32やRaspberry Pi Pico等の安価なマイコンとの直結:
DSPによるエフェクト・録音・ネットワーク配信:
最近のマイコンは高性能なI2S周辺回路(DMA転送機能付き)を内蔵しています。
Si4735側の OMODE を 0000(標準I2S)、OSIZE を 0(16ビット)に設定すれば、マイコンのI2Sポートでダイレクトにラジオのデジタル音声を生データ(PCM)としてキャプチャ可能です。
Si4735側の OMODE を 0000(標準I2S)、OSIZE を 0(16ビット)に設定すれば、マイコンのI2Sポートでダイレクトにラジオのデジタル音声を生データ(PCM)としてキャプチャ可能です。
DSPによるエフェクト・録音・ネットワーク配信:
マイコン側に取り込んだPCM音声に対して、イコライザー(EQ)をかけたり、SDカードにリニアPCM/WAV形式で無劣化録音したり、
Wi-Fi経由でインターネットラジオとしてストリーミング配信するといった、アナログ出力では不可能だった「オーディオデータの高度な二次利用」が簡単に実現できます。
Wi-Fi経由でインターネットラジオとしてストリーミング配信するといった、アナログ出力では不可能だった「オーディオデータの高度な二次利用」が簡単に実現できます。
4.3 デバッグ時のチェックリスト
POWER_UP の起動オプションは正しいか?:
DCLK / DFS ピンの「入力」駆動を忘れていないか?: 極めて重要。
オシロスコープで3線(DCLK, DFS, DOUT)の波形が出ているか?:
音が出ない場合のビットズレチェック:
デジタル出力モードを指定してICを立ち上げているか。
DCLK / DFS ピンの「入力」駆動を忘れていないか?: 極めて重要。
Si4735のデジタルオーディオピン(DCLK, DFS)は原則として「外部からクロックを入力してもらう(スレーブ動作)」仕様です。
ホスト(マイコンやDAC)側から適切なマスタークロック、フレーム同期信号が供給されていないと、デジタルデータ(DOUT)は1ビットも出力されません。
ホスト(マイコンやDAC)側から適切なマスタークロック、フレーム同期信号が供給されていないと、デジタルデータ(DOUT)は1ビットも出力されません。
オシロスコープで3線(DCLK, DFS, DOUT)の波形が出ているか?:
DCLK(数MHzの高速クロック)と DFS(サンプリングレート:32k〜48kHzのパルス)が正しくピンに入力されているか。
音が出ない場合のビットズレチェック:
OMODE(I2Sか、左詰めか)が相手チップと1ビット分ズレていないか。
ズレていると「ザー」という激しいホワイトノイズや、音が著しく歪む原因になります。
ズレていると「ザー」という激しいホワイトノイズや、音が著しく歪む原因になります。
4.4 まとめ
プロパティ 0x0102: DIGITAL_OUTPUT_FORMAT は、Si4735を単なるアナログのコンポーネントとしてではなく、最新のデジタルオーディオネットワークに完全適合させるための架け橋となる重要な設定です。
外部からクロック(DCLK/DFS)を正しく供給し、このプロパティで完璧なフォーマットの一致を行うことで、ノイズフリーで劣化のない、最高峰の受信音質を引き出すことが可能になります。
外部からクロック(DCLK/DFS)を正しく供給し、このプロパティで完璧なフォーマットの一致を行うことで、ノイズフリーで劣化のない、最高峰の受信音質を引き出すことが可能になります。
