この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x1207. FM_RSQ_BLEND_THRESHOLD 概要
FM_RSQ_BLEND_THRESHOLD
境界を越えた際のブレンド割り込み(blend interrupt)のブレンド閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードの時のみ設定または読み取りが可能です。
デフォルト値は1%です。
対象: すべて
デフォルト: 0x0081
単位: %
ステップ: 1
範囲: 0~100
境界を越えた際のブレンド割り込み(blend interrupt)のブレンド閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードの時のみ設定または読み取りが可能です。
デフォルト値は1%です。
対象: すべて
デフォルト: 0x0081
単位: %
ステップ: 1
範囲: 0~100
1.1 ブレンド率とは(Gemini)
1.1.1 ブレンド率を出すための「2つの基準点」
IC内部には、ブレンド率を決めるための「ここより良ければ100%ステレオ(上限)」「ここより悪ければ0%モノラル(下限)」という2つのプロパティ(基準点)が用意されています。
ここでは、ノイズの少なさを表す SNR(dB) を例に解説します。
ここでは、ノイズの少なさを表す SNR(dB) を例に解説します。
上限(100%ステレオにするライン):0x1804: FM_RSQ_STBLEND_SNR_HIGH_THRESHOLD(初期値:27 dB)
下限(0%モノラルにするライン) :0x1805: FM_RSQ_STBLEND_SNR_LOW_THRESHOLD(初期値:14 dB)
下限(0%モノラルにするライン) :0x1805: FM_RSQ_STBLEND_SNR_LOW_THRESHOLD(初期値:14 dB)
1.1.2 具体的な計算処理(パーセントの出し方)
現在のSNRがこの2つの基準点の「どの位置にあるか」を計算してパーセントを出します。
ブレンド率(%) = (現在のSNRー下限閾値) × 100 / (上限閾値 ー 下限閾値)
具体例(現在のSNRが 19.5 dB の場合)19.5 dB は、下限(14)と上限(25)のちょうど真ん中です。
計算: (19.5 - 14) ÷ (25 - 14) = 5.5 ÷ 11 = 0.5
結果: 50% (ハーフ・ステレオ)
具体例(現在のSNRが 25 dB 以上の倍)
結果: 100% (完全なステレオ)
具体例(現在のSNRが 14 dB 以下の場合)
結果: 0% (完全なモノラル)
具体例(現在のSNRが 19.5 dB の場合)19.5 dB は、下限(14)と上限(25)のちょうど真ん中です。
計算: (19.5 - 14) ÷ (25 - 14) = 5.5 ÷ 11 = 0.5
結果: 50% (ハーフ・ステレオ)
具体例(現在のSNRが 25 dB 以上の倍)
結果: 100% (完全なステレオ)
具体例(現在のSNRが 14 dB 以下の場合)
結果: 0% (完全なモノラル)
1.1.3 出された「率(%)」を使った音声の合成処理
こうして算出されたパーセント(例:50%)を使って、DSPは最終的な音声信号を以下の割合で足し合わせて出力(ミキシング)します。
左チャンネル出力(L) =(本来の左の音 × 50%)+(左右を混ぜたモノラルの音 × 50%)
右チャンネル出力(R) =(本来の右の音 × 50%)+(左右を混ぜたモノラルの音 × 50%)
右チャンネル出力(R) =(本来の右の音 × 50%)+(左右を混ぜたモノラルの音 × 50%)
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 | PILOT | BLEND | ||||||
| Bit | Name | Function |
|---|---|---|
| PILOT | パイロット・インジケータ。 FM_R- SQ_BLEND_THRESHOLDによる割り込みを発生させるには、このビットを1に設定する(パイロット信号が存在する)必要があります。 パイロットトーンがない場合、本デバイスは常にフル・モノラル・モードとなり、ブレンド状態には移行しません。 | |
| BLEND | FM RSQブレンド閾値。 これは境界を横切る際の閾値です。 ブレンド状態がこの閾値を上から下へ、あるいは下から上へと横切ると、割り込みが発生します。 単位は%で、1%刻み(0~100)で指定します。 デフォルト値は1%です。 |
2.2 プロパティ
本プロパティは、FM受信時におけるRSQ(受信信号品質)割り込みを発生させるための「ステレオ・ブレンドの下限しきい値」および「パイロット信号検出に伴う割り込み条件」を設定します。
現在のステレオ・ブレンド値(左右のセパレーション状態)がこのプロパティで設定した値を下回った(Below)際、 あるいはステレオパイロット信号の有無に変化があった際に条件が満たされ、ステータスレジスタの割り込みフラグがセットされます。
デフォルト値は 0x0001 となっており、最小限のブレンド低下およびパイロット変化を検知する初期設定となっています。
現在のステレオ・ブレンド値(左右のセパレーション状態)がこのプロパティで設定した値を下回った(Below)際、 あるいはステレオパイロット信号の有無に変化があった際に条件が満たされ、ステータスレジスタの割り込みフラグがセットされます。
デフォルト値は 0x0001 となっており、最小限のブレンド低下およびパイロット変化を検知する初期設定となっています。
2.2.1 PILOT (Pilot Indicator Threshold)
目的と概要:
ステレオパイロット信号(19kHz)の検出状態変化に伴う割り込みトリガ条件を制御します。
FM_RSQ_INT_SOURCE (0x1200) プロパティ内の STCIEN(Stereo Indicator Change Enable)ビットと連携し、ステレオ放送局からモノラル放送局(またはその逆)へ切り替わった瞬間に割り込みを発生させます。
AN332に明記されない目的と解説:
FM_RSQ_INT_SOURCE (0x1200) プロパティ内の STCIEN(Stereo Indicator Change Enable)ビットと連携し、ステレオ放送局からモノラル放送局(またはその逆)へ切り替わった瞬間に割り込みを発生させます。
無音・無変調局の高速識別:
違法電波や、キャリア(電波)だけが出ていて番組やパイロット信号が含まれていない無変調局をシーク中に瞬時に見分けるためのフラグとして機能します。
ディスプレイUIの超高速同期:
ホストマイコン側が常にステータスをポーリングすることなく、液晶画面上の「STEREO」ロゴの点灯・消灯を完全なリアルタイム(ハードウェア割り込み主導)で同期させ、システムの描画負荷を最小限に抑えるために極めて有効です。
2.2.2 BLEND (Stereo Blend Percent Threshold)
目的と概要:
割り込みをトリガするステレオ分離度(ブレンド率)の下限値を 0〜100% の範囲(1%ステップ)で設定します。
内部の自動ブレンド機能により、電界悪化でステレオからモノラル側へセパレーションが狭まり、設定値(%)を下回った(Below)瞬間に GPO2/INT ピン経由で割り込みを出力します。
AN332に明記されない目的と解説:
内部の自動ブレンド機能により、電界悪化でステレオからモノラル側へセパレーションが狭まり、設定値(%)を下回った(Below)瞬間に GPO2/INT ピン経由で割り込みを出力します。
ユーザープロファイルに応じた動的音質補正(DSP介入):
チップ内部の自動ブレンド(100%〜0%の無段階遷移)が特定の閾値(例: 50%以下)まで低下したことをホストが検知した際、
外部のオーディオDSPやホスト側ソフトウェアで低音強調(バスブースト)のブレンド具合を変化させたり、
擬似サラウンド(3D効果)をオフにしたりして、ステレオ感の減少に伴う音場バランスの崩れをリアルタイムに補正するために利用されます。
3 応答パラメータ
STATUS (Status Byte)
RESP1 (Response Byte 1 / High Byte)
RESP2 (Response Byte 2 / Low Byte)
[目的と概要]デバイスの現在の全体ステータスを返します。
最上位ビットの CTS (Clear to Send) は、デバイスが次のコマンドを受け付けられる状態(1)か、処理中(0)かを示します。
ERR ビット(Bit 6)が 1 の場合は、直前のコマンドやパラメータに不正があったことをホストに伝えます。
最上位ビットの CTS (Clear to Send) は、デバイスが次のコマンドを受け付けられる状態(1)か、処理中(0)かを示します。
ERR ビット(Bit 6)が 1 の場合は、直前のコマンドやパラメータに不正があったことをホストに伝えます。
RESP1 (Response Byte 1 / High Byte)
[目的と概要]GET_PROPERTY 実行時にのみ意味を持ち、設定されている16ビットのプロパティ値のうち上位8ビット(MSB)を返します。
FM_RSQ_RSSI_HI_THRESHOLD の有効範囲は 0〜127(7ビット)であるため、このバイトは常に 0x00 となります。
FM_RSQ_RSSI_HI_THRESHOLD の有効範囲は 0〜127(7ビット)であるため、このバイトは常に 0x00 となります。
RESP2 (Response Byte 2 / Low Byte)
[目的と概要]GET_PROPERTY 実行時にのみ意味を持ち、設定されているプロパティ値の下位8ビット(LSB)を返します。
ここに現在設定されている RSSIH の値(0x00〜0x7F)が格納されて返ってきます。
ここに現在設定されている RSSIH の値(0x00〜0x7F)が格納されて返ってきます。
4 その他(Google AI (Gemini) の見解)
4.1 コマンドの重要ステップと注意事項
ビットフィールドの合成に注意:
ソース有効化(0x1200)のセット運用:
本プロパティは、最上位ビット(Bit 7)の PILOT と、下位7ビット(Bit 6:0)の BLEND が混在しています。
値を設定する際は、必ずビット演算(例:(pilot << 7) | (blend & 0x7F))を行い、意図しないビットを上書き消去しないよう注意してください。
値を設定する際は、必ずビット演算(例:(pilot << 7) | (blend & 0x7F))を行い、意図しないビットを上書き消去しないよう注意してください。
ソース有効化(0x1200)のセット運用:
このしきい値判定を機能させるには、FM_RSQ_INT_SOURCE (0x1200) の BLENDIEN (Bit 4) や STCIEN (Bit 7) をあらかじめ 1 にセットしておくステップが不可欠です。
4.2 もう少し踏み込んだ応用展開
FMハイブリッド・ストリーミングへのシームレス切り替え:
遠距離弱電界局(DX局)の自動モノラル固定判断:
インターネットラジオ(サイマル配信)と協調するハイブリッドレシーバーを開発する場合、電界劣化によるステレオブレンドの低下
(例:40%以下)を本プロパティで検知した瞬間に、バッファリング済みのネット配信音声(完全なステレオ品質)へと、
音切れなくフェードイン・フェードアウトでシームレスに切り替えるといった高度なIVI(車載インフォテインメント)連携への応用が可能です。
遠距離弱電界局(DX局)の自動モノラル固定判断:
遠くの弱電界局を受信した際、自動ブレンドが0%〜20%付近を往復してしまいノイズが息をつく現象に対し、
本割り込みをトリガとしてホスト側から FM_BLEND_MONO(完全にモノラルに固定)を叩き込み、リスナーの聴感ストレスを即座に緩和するロジックが組めます。
4.3 デバッグ時のチェックリスト
0x1200 (FM_RSQ_INT_SOURCE) の BLENDIEN および STCIEN は期待する動作に合わせて有効化されているか?
SET_PROPERTY で書き込む値の Bit 7 (PILOT) の状態(0または1)が、システムの意図通りにマスク・解除されているか?
ステレオ放送からモノラル放送(またはノイズ状態)に変化させたとき、FM_RSQ_STATUS (0x23) の応答内にある BLENDI (Bit 4) や STC (Bit 7) のフラグが正しく 1 に立ち、GPO2/INT が反応するか?
割り込み処理ルーチン(ISR)内で FM_RSQ_STATUS (0x23) コマンドを発行し、デバイス側のラッチを正常にクリアできているか?
SET_PROPERTY で書き込む値の Bit 7 (PILOT) の状態(0または1)が、システムの意図通りにマスク・解除されているか?
ステレオ放送からモノラル放送(またはノイズ状態)に変化させたとき、FM_RSQ_STATUS (0x23) の応答内にある BLENDI (Bit 4) や STC (Bit 7) のフラグが正しく 1 に立ち、GPO2/INT が反応するか?
割り込み処理ルーチン(ISR)内で FM_RSQ_STATUS (0x23) コマンドを発行し、デバイス側のラッチを正常にクリアできているか?
4.4 まとめ
FM_RSQ_BLEND_THRESHOLD(0x1207)は、「ステレオ音場」というオーディオの最終的な出力品質の変化をハードウェアレベルで監視する、極めて音楽リスニングに特化したプロパティです。
RSSIやMULTIPATHといった高周波(RF)寄りの指標に加え、この「ブレンド率・ステレオ識別」のしきい値をスマートに運用することで、電波の良し悪しだけでなく、 「ユーザーがいま聴いている音の広がり感」に完璧に追従したインテリジェントなオーディオ制御やUI表現が可能になります。
RSSIやMULTIPATHといった高周波(RF)寄りの指標に加え、この「ブレンド率・ステレオ識別」のしきい値をスマートに運用することで、電波の良し悪しだけでなく、 「ユーザーがいま聴いている音の広がり感」に完璧に追従したインテリジェントなオーディオ制御やUI表現が可能になります。
