この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x1206. FM_RSQ_MULTIPATH_LO_THRESHOLD 概要
FM_RSQ_MULTIPATH_LO_THRESHOLD
マルチパスレベルがこの閾値を下回った場合にRSQ割り込みを発生させる、低レベル側の閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードの時のみ設定または読み出しが可能です。デフォルト値は0です。
対応デバイス:Si4706-D50、Si4704/05/30/31/34/35-D50以降、Si4732
デフォルト値:0x0000
ステップ:1
範囲:0~127
マルチパスレベルがこの閾値を下回った場合にRSQ割り込みを発生させる、低レベル側の閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードの時のみ設定または読み出しが可能です。デフォルト値は0です。
対応デバイス:Si4706-D50、Si4704/05/30/31/34/35-D50以降、Si4732
デフォルト値:0x0000
ステップ:1
範囲:0~127
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 | 0 | MULTH | ||||||
| Bit | Name | Function |
|---|---|---|
| MULTH | FM RSQ マルチパス低閾値。 マルチパスがこの閾値を下回った場合にRSQ割り込みを発生させる閾値。 デフォルト値は0。 |
2.2 プロパティ
本プロパティは、FM受信時におけるRSQ(受信信号品質)割り込みを発生させるための「マルチパス(多重波伝搬歪み)の下限しきい値」を設定します。
現在のマルチパス歪みの割合が、このプロパティで設定した値を下回った(Below)際、条件が満たされ、ステータスレジスタの割り込みフラグがセットされます。
デフォルト値は 0x0000(0%)となっており、初期状態では実質的にマルチパス下限割り込みが発生しない(最低値)ようにマスクされています。
現在のマルチパス歪みの割合が、このプロパティで設定した値を下回った(Below)際、条件が満たされ、ステータスレジスタの割り込みフラグがセットされます。
デフォルト値は 0x0000(0%)となっており、初期状態では実質的にマルチパス下限割り込みが発生しない(最低値)ようにマスクされています。
2.2.1 MULTL (Multipath Low Threshold)
目的と概要:
割り込みをトリガするマルチパス歪みの下限値を 0〜100% の範囲(1%ステップ、設定・許容値自体は最大127%)で設定します。
FM_RSQ_INT_SOURCE (0x1200) プロパティ内の MULTLOEN ビットを有効にすることで、このしきい値を下回った際に GPO2/INT ピン経由でホストマイコンへリアルタイムに割り込み信号(RSQ_INT)を出力できます。
AN332に明記されない目的と解説:
FM_RSQ_INT_SOURCE (0x1200) プロパティ内の MULTLOEN ビットを有効にすることで、このしきい値を下回った際に GPO2/INT ピン経由でホストマイコンへリアルタイムに割り込み信号(RSQ_INT)を出力できます。
オーディオ最適化状態(ステレオ復帰)への安全な遷移:
上限しきい値(0x1205)によって強制モノラル化などのノイズ対策を行った後、マルチパスが十分に収まった(電波環境がクリーンになった)ことを確実に見極めてステレオ再生へ安全に復帰させるためのトリガとして機能します。
動的ヒステリシスによる制御ループの安定化:
上限・下限のしきい値差(マージン)を設けてソフトウェア制御することで、マルチパス値が境界線上で小刻みに上下した際に、
ステレオとモノラルが高速に切り替わってしまい聴感上の違和感(チャタリング音)が生じる現象を完全に排除するために利用されます。
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 コマンドの重要ステップと注意事項
初期値(0x00)からの変更必須:
ソース有効化ビットの確認:
割り込みクリアの順序:
デフォルトが 0% のため、値を書き換えない限り割り込みは絶対に発生しません。
上限しきい値(0x1205)に設定した値よりもさらに低い値(例: 上限を30%としたなら、下限は15%〜20%など)に必ず設定してください。
上限しきい値(0x1205)に設定した値よりもさらに低い値(例: 上限を30%としたなら、下限は15%〜20%など)に必ず設定してください。
ソース有効化ビットの確認:
設定を反映させるには、必ず FM_RSQ_INT_SOURCE (0x1200) の MULTLOEN (Bit 2) を 1 にセットするステップを並行して行ってください。
割り込みクリアの順序:
割り込みが発生した後は、FM_RSQ_STATUS (0x23) コマンドを発行してステータスを読み出すことで、デバイス内部の割り込みフラグをクリアしてください。
クリアしないと、ピンの状態が戻らず次の品質回復を検知できません。
クリアしないと、ピンの状態が戻らず次の品質回復を検知できません。
4.2 もう少し踏み込んだ応用展開
オーディオ・プロセッシングの段階的復帰:
ウィンドウ・コンパレータによるスマート・スリープ制御:
マルチパスがこの下限値を下回ったことを検知した際、一瞬でステレオに戻すのではなく、
数秒かけて滑らかにセパレーション(分離度)を広げていくスルーレート制御をホスト側で実装すると、高級ラジオに匹敵する極めて自然な聴き心地を実現できます。
ウィンドウ・コンパレータによるスマート・スリープ制御:
0x1205 (HI) とこの 0x1206 (LO) を同時に有効化することで、マルチパス歪みが「許容範囲内」に収まっているかを監視するウィンドウを構成できます。
電波が安定している間はホストマイコンを深いスリープモード(低消費電力状態)にし、歪みが悪化、または極端に改善したときだけ割り込みでホストを起床させる、超低消費電力なバッテリー駆動システムを構築可能です。
電波が安定している間はホストマイコンを深いスリープモード(低消費電力状態)にし、歪みが悪化、または極端に改善したときだけ割り込みでホストを起床させる、超低消費電力なバッテリー駆動システムを構築可能です。
4.3 デバッグ時のチェックリスト
0x1200 (FM_RSQ_INT_SOURCE) の MULTLOEN は適切に有効化されているか?
設定した MULTL の値が、上限値(MULTH)よりも確実に低い値になっているか?(同じ、または逆転していると不規則な割り込みの原因になります)
マルチパスが発生している状態(意図的にアンテナに触れるなど)から、手を離して受信状態をクリアにした瞬間に GPO2/INT ピンが変化するか?
FM_RSQ_STATUS (0x23) を発行した際、応答の MULTLO フラグ(Bit 2)が正しく 1 になっているか?
設定した MULTL の値が、上限値(MULTH)よりも確実に低い値になっているか?(同じ、または逆転していると不規則な割り込みの原因になります)
マルチパスが発生している状態(意図的にアンテナに触れるなど)から、手を離して受信状態をクリアにした瞬間に GPO2/INT ピンが変化するか?
FM_RSQ_STATUS (0x23) を発行した際、応答の MULTLO フラグ(Bit 2)が正しく 1 になっているか?
4.4 まとめ
FM_RSQ_MULTIPATH_LO_THRESHOLD(0x1206)は、電波の品質が「ノイズまみれの状態から安全圏へ復帰したこと」を正確に捉えるための重要プロパティです。
上限しきい値(0x1205)による「ディフェンシブなノイズ抑制」と、本プロパティによる「アクティブな音質復旧」をペアで運用することで、 移動体受信や乱反射の激しいロケーションでも、バタつき(チャタリング)のない洗練された動的オーディオ制御が可能になります。
上限しきい値(0x1205)による「ディフェンシブなノイズ抑制」と、本プロパティによる「アクティブな音質復旧」をペアで運用することで、 移動体受信や乱反射の激しいロケーションでも、バタつき(チャタリング)のない洗練された動的オーディオ制御が可能になります。
