この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x1203. FM_RSQ_RSSI_HI_THRESHOLD 概要
FM_RSQ_RSSI_HI_THRESHOLD
RSSIがこの閾値を超えた場合にRSQ割り込みを発生させる、高い方の閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み出しが可能です。
デフォルト値は127 dBμVです。
対応モード:すべて
デフォルト値:0x007F
単位:dBμV
ステップ:1
範囲:0~127
RSSIがこの閾値を超えた場合にRSQ割り込みを発生させる、高い方の閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み出しが可能です。
デフォルト値は127 dBμVです。
対応モード:すべて
デフォルト値:0x007F
単位:dBμV
ステップ: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 | RSSIH | ||||||
| Bit | Name | Function |
|---|---|---|
| 7:0 | RSSIH | FM RSQ RSSI上限閾値。 RSSIがこの閾値を超えた場合にRSQ割り込みを発生させる閾値。 単位はdBμV、1 dBステップ(0~127)で指定します。 デフォルト値は127 dBμVです。 |
2.2 プロパティ
本プロパティは、FM受信時におけるRSQ(受信信号品質)割り込みを発生させるための「RSSI(受信信号強度)の上限しきい値」を設定します。
現在の受信RSSI値がこのプロパティで設定した値を上回った(Above)際、条件が満たされ、ステータスレジスタの割り込みフラグがセットされます。
デフォルト値は 0x007F(127 dBμV)となっており、初期状態では実質的に割り込みが発生しない(最高値)ようにマスクされています。
現在の受信RSSI値がこのプロパティで設定した値を上回った(Above)際、条件が満たされ、ステータスレジスタの割り込みフラグがセットされます。
デフォルト値は 0x007F(127 dBμV)となっており、初期状態では実質的に割り込みが発生しない(最高値)ようにマスクされています。
2.2.1 RSSIH (RSSI High Threshold)
目的と概要:
割り込みをトリガするRSSIの上限値を 0〜127 dBμV の範囲(1 dBμVステップ)で設定します。
FM_RSQ_INT_SOURCE (0x1200) プロパティ内の RSSIHIEN ビットを有効にすることで、このしきい値を超えた際に GPO2/INT ピン経由でホストマイコンへリアルタイムに割り込み信号(RSQ_INT)を出力できます。
AN332に明記されない目的と解説:
FM_RSQ_INT_SOURCE (0x1200) プロパティ内の RSSIHIEN ビットを有効にすることで、このしきい値を超えた際に GPO2/INT ピン経由でホストマイコンへリアルタイムに割り込み信号(RSQ_INT)を出力できます。
強電界(過大入力)エリアの検出と保護:
送信アンテナの至近距離に入った際、LNA(低雑音増幅器)の飽和や相互変調歪みを防ぐため、内部AGC(自動利得制御)の挙動をホスト側で監視・先回り制御するトリガとして機能します。
動的アッテネータのインテリジェント制御:
本割り込みを検知した瞬間、ホスト側から FM_AGC_OVERRIDE (0x28) コマンドを発行してゲインを強制的に下げるなど、AN332 のリファレンス回路以上に過酷な電界環境下での混変調対策を自前で実装するために利用されます。
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 コマンドの重要ステップと注意事項
Powerupモードでの実行制限:
CTSビットのポーリング:
ソース有効化とのセット運用:
本プロパティの設定・参照は、必ず POWER_UP (0x01) コマンドを実行してデバイスがFM受信モードとして完全に起動している状態で行う必要があります。
CTSビットのポーリング:
SET_PROPERTY を発行した直後は、必ず応答の CTS ビットが 1 になるまでウェイトを入れるかポーリングを行い、内部レジスタへの書き込み完了を保証してください。これを怠ると、次発のコマンドが無視される原因になります。
ソース有効化とのセット運用:
本プロパティ単体を設定しただけでは割り込みは発生しません。
必ず FM_RSQ_INT_SOURCE (0x1200) の RSSIHIEN (Bit 1) を 1 にセットするステップを組み合わせてください。
必ず FM_RSQ_INT_SOURCE (0x1200) の RSSIHIEN (Bit 1) を 1 にセットするステップを組み合わせてください。
4.2 もう少し踏み込んだ応用展開
ヒステリシスによるチャタリング防止:
シーク・スキャン時の高速スキップ判定:
強電界エリアの境界線上でRSSIが微小に変動すると、割り込みが連続発生(チャタリング)してホストの処理を圧迫します。
RSSIH で上限を検知したら、即座に下限しきい値である FM_RSQ_RSSI_LO_THRESHOLD (0x1204) の値を書き換えるなど、ソフトウェア側で動的なヒステリシス制御を構築すると非常に堅牢なシステムになります。
RSSIH で上限を検知したら、即座に下限しきい値である FM_RSQ_RSSI_LO_THRESHOLD (0x1204) の値を書き換えるなど、ソフトウェア側で動的なヒステリシス制御を構築すると非常に堅牢なシステムになります。
シーク・スキャン時の高速スキップ判定:
オートシーク(FM_SEEK_START)時ではなく、独自の手動高速スキャンアルゴリズムをホスト側で実装する場合、電界が強すぎる違法電波や近隣チャンネルからの被り(イメージ混信)を瞬時に見極めてスキップするフラグとして応用可能です。
4.3 デバッグ時のチェックリスト
0x1200 (FM_RSQ_INT_SOURCE) の RSSIHIEN は適切に有効化されているか?
0x0001 (GPO_IEN) プロパティの RSQIEN (Bit 3) が 1 になっており、GPO2への割り込み出力自体が許可されているか?
しきい値を一時的に極端に低い値(例: 10 dBμVなど)に設定した際、期待通りに GPO2/INT ピンが Low に落ちる(アクティブローの場合)か?
割り込み発生後、ホスト側で FM_RSQ_STATUS (0x23) コマンドを発行して割り込みフラグをクリア(Statusの読出しによる自動クリア)しているか?(クリアしないと次の割り込みが発生しません)
0x0001 (GPO_IEN) プロパティの RSQIEN (Bit 3) が 1 になっており、GPO2への割り込み出力自体が許可されているか?
しきい値を一時的に極端に低い値(例: 10 dBμVなど)に設定した際、期待通りに GPO2/INT ピンが Low に落ちる(アクティブローの場合)か?
割り込み発生後、ホスト側で FM_RSQ_STATUS (0x23) コマンドを発行して割り込みフラグをクリア(Statusの読出しによる自動クリア)しているか?(クリアしないと次の割り込みが発生しません)
4.4 まとめ
FM_RSQ_RSSI_HI_THRESHOLD(0x1203)は、単なる受信強度の監視用しきい値にとどまらず、過酷な電界環境から受信品質を守る動的AGC・アッテネータ制御のトリガとして非常に価値のあるプロパティです。
割り込み発生時のフラグクリア処理と、ヒステリシス設計を確実に行うことで、車載ラジオや移動体レシーバーのような電界強度が激しく変動する環境下でも、歪みのない安定したFMオーディオ出力を維持することが可能になります。
割り込み発生時のフラグクリア処理と、ヒステリシス設計を確実に行うことで、車載ラジオや移動体レシーバーのような電界強度が激しく変動する環境下でも、歪みのない安定したFMオーディオ出力を維持することが可能になります。
