この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x3201. AM_RSQ_SNR_HI_THRESHOLD 概要
AM_RSQ_SNR_HI_THRESHOLD
SNRがこの閾値を超えた場合にRSQ割り込みを発生させる、高い方の閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み出しが可能です。
デフォルト値は127 dBです。
対応モード:すべて
デフォルト値:0x007F
単位:dB
ステップ:1
範囲:0~127
SNRがこの閾値を超えた場合にRSQ割り込みを発生させる、高い方の閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み出しが可能です。
デフォルト値は127 dBです。
対応モード:すべて
デフォルト値:0x007F
単位:dB
ステップ: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 | SNRH | ||||||
| Bit | Name | Function |
|---|---|---|
| 6:0 | SNRH | AM RSQ SNR上限閾値。 SNRがこの閾値を超えた場合にRSQ割り込みを発生させる閾値。 単位はdBで、1 dB刻み(0~127)で指定します。デフォルト値は0 dBです。 |
2.2 プロパティ
AM_RSQ_SNR_HI_THRESHOLD は、AM/SW/LW受信時における受信信号品質(RSQ)の「SNR(信号対雑音比)」の高しきい値(上限値)を設定するプロパティです。
本ICが測定しているリアルタイムのSNR値が、このプロパティで設定したしきい値を上回った(電波状態が良くなった)瞬間に、内部の割り込みフラグ(SNRHINT)をトリガーします。
デフォルト値は 127(127 dB)であり、これはAMの受信環境としては絶対に到達しない値(実質的な機能無効化)になっています。
本ICが測定しているリアルタイムのSNR値が、このプロパティで設定したしきい値を上回った(電波状態が良くなった)瞬間に、内部の割り込みフラグ(SNRHINT)をトリガーします。
デフォルト値は 127(127 dB)であり、これはAMの受信環境としては絶対に到達しない値(実質的な機能無効化)になっています。
2.2.1 SNRH (AM SNR High Threshold)
目的と概要:
割り込みを発生させたいSNR(信号対雑音比)の境界値を 0 〜 127(単位: dB、1dBステップ)の範囲で設定します。
AN332に明記されない目的と解説:
AM放送において、聴取に耐えうる「クリアな音質(サービスエリア内)」と判断できる境界線をハードウェアに認識させるのが真の目的です。
例えば 15 〜 25(dB)あたりを設定することで、ノイズまみれの微弱局を排除し、実用レベルの強さを持つ局だけをピンポイントで判別させることができます。
デフォルトの 127 のままでは絶対に割り込みが発生しないため、機能を利用する際は必ず現実的な値に書き換える必要があります。
例えば 15 〜 25(dB)あたりを設定することで、ノイズまみれの微弱局を排除し、実用レベルの強さを持つ局だけをピンポイントで判別させることができます。
デフォルトの 127 のままでは絶対に割り込みが発生しないため、機能を利用する際は必ず現実的な値に書き換える必要があります。
3 応答パラメータ
STATUS (Status Byte)
CTS (Clear to Send):
ERR (Error):
1 になると、チップが前のコマンドの処理を完了し、次のコマンドを受け入れられる状態であることを示します。
ERR (Error):
1 の場合、直前に送ったコマンドやプロパティの引数が不正(範囲外など)であったことを示します。
4 その他(Google AI (Gemini) の見解)
4.1 コマンドの重要ステップと注意事項
AM_RSQ_INT_SOURCE(0x3200)との併用が必須
適切な設定値のハンドリング
本プロパティで SNRH を例えば 20(dB)に設定しただけでは、IRQ ピンによる物理的な割り込みは発生しません。
必ず事前に、または同時に AM_RSQ_INT_SOURCE の SNRHIEN ビット(Bit 3)を 1 に設定して割り込みを有効化してください。
必ず事前に、または同時に AM_RSQ_INT_SOURCE の SNRHIEN ビット(Bit 3)を 1 に設定して割り込みを有効化してください。
適切な設定値のハンドリング
AM/短波(SW)はFMに比べてノイズフロアが高く、SNRが激しく変動します。
しきい値をあまり高く設定しすぎると(例: 40dB以上)、強力なローカル局でも割り込み条件を満たさなくなるため、 実験を繰り返して最適な「ローカル局判定基準値」を見極める必要があります。
しきい値をあまり高く設定しすぎると(例: 40dB以上)、強力なローカル局でも割り込み条件を満たさなくなるため、 実験を繰り返して最適な「ローカル局判定基準値」を見極める必要があります。
4.2 もう少し踏み込んだ応用展開
「ヒステリシス付き」のインテリジェントな選局アルゴリズムの構築
低しきい値プロパティである AM_RSQ_SNR_LO_THRESHOLD(0x3202)と組み合わせて使用します。
例えば、本プロパティ(高しきい値)を 20dB、低しきい値を 10dB に設定します。
電波が良くなって 20dB を超えたら「良好局」として認識し、フェージングなどで一時的に電波が揺れても 10dB を下回るまではその局を維持する、 といった「チャタリング(バタつき)のない安定した自動選局・ミュート制御システム」をホストMCU側でスマートに実装できます。
例えば、本プロパティ(高しきい値)を 20dB、低しきい値を 10dB に設定します。
電波が良くなって 20dB を超えたら「良好局」として認識し、フェージングなどで一時的に電波が揺れても 10dB を下回るまではその局を維持する、 といった「チャタリング(バタつき)のない安定した自動選局・ミュート制御システム」をホストMCU側でスマートに実装できます。
4.3 デバッグ時のチェックリスト
デフォルト値(127)のままテストしていないか?
フラグクリア処理は正しく行われているか?
初期状態の 127 は機能オフを意味します。
テスト時は 15 や 20 などの実用的な値を書き込んでからテストしてください。
フラグクリア処理は正しく行われているか?
実際にSNRが高しきい値を超えて割り込みが発生したあと、ホストMCU側で AM_RSQ_STATUS コマンド(0x23) を発行して内部の SNRHINT フラグをクリアしないと、
IRQ ピンが Low のまま戻らなくなり、次回の電波変動を検知できなくなります。
4.4 まとめ
0x3201 (AM_RSQ_SNR_HI_THRESHOLD) は、ラジオが「今、十分にノイズの少ない綺麗な電波を捕まえているか」をハードウェアレベルで監視させるための重要な境界線です。
特にコンディションが刻一刻と変化する短波(SW)のリスニングにおいて、このプロパティと割り込み機能を使いこなすことで、 ノイズに埋もれた瞬間の即時対応や、快適な電波状態の局だけを自動でスキャンする、自作ラジオとは思えないワンランク上の「高級受信機」の動作を実現できます。
特にコンディションが刻一刻と変化する短波(SW)のリスニングにおいて、このプロパティと割り込み機能を使いこなすことで、 ノイズに埋もれた瞬間の即時対応や、快適な電波状態の局だけを自動でスキャンする、自作ラジオとは思えないワンランク上の「高級受信機」の動作を実現できます。
