この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 概要
FM_SEEK_TUNE_SNR_THRESHOLD
有効なFMシーク/チューンとみなすためのSNR閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み取りが可能です。
デフォルト値は3 dBです。
対応デバイス:すべて
デフォルト値:0x0003
単位:dB
ステップ:1
範囲:0~127
有効なFMシーク/チューンとみなすためのSNR閾値を設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み取りが可能です。
デフォルト値は3 dBです。
対応デバイス:すべて
デフォルト値:0x0003
単位: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 | SKSNR | ||||||
| Bit | Name | Function |
|---|---|---|
| 6:0 | SKSNR | FMシーク/チューン時のSNR閾値。 シークまたはチューニング中に有効なチャンネルが検出されたかどうかを判定するためのSNR閾値。 単位はdBで、1 dB刻み(0~127)で指定します。 デフォルト値は3 dBです。 |
2.2 プロパティ
本プロパティは、FMモードでのオートシーク(FM_SEEK_START)実行時、チップが「有効な放送局が受信できた」とみなしてシークを自動停止させるための「最低限必要なSNR(信号対雑音比)」のしきい値を設定します。
現在の周波数における受信音声のSNRが、本プロパティで設定した値を以上(Equal or Above)であれば、シークエンジンは局を発見したと判断してその周波数でホールドします。
デフォルト値は 0x0003(3 dB)という非常に低い値に設定されており、極力多くの局を拾い上げる仕様となっています。
現在の周波数における受信音声のSNRが、本プロパティで設定した値を以上(Equal or Above)であれば、シークエンジンは局を発見したと判断してその周波数でホールドします。
デフォルト値は 0x0003(3 dB)という非常に低い値に設定されており、極力多くの局を拾い上げる仕様となっています。
2.2.1 SKSNR (FM Seek/Tune SNR Threshold)
目的と概要:
有効な局として判定するSNRのしきい値を 0〜127 dB の範囲(1 dBステップ)で設定します。
隣接するRSSIしきい値(0x1404)などと組み合わされ、単に「電波が強い(RSSI高)」だけでなく「音声がノイズに埋もれていない(SNR高)」という、より聴感特性に即した選局合格ラインを形成します。
AN332に明記されない目的と解説:
隣接するRSSIしきい値(0x1404)などと組み合わされ、単に「電波が強い(RSSI高)」だけでなく「音声がノイズに埋もれていない(SNR高)」という、より聴感特性に即した選局合格ラインを形成します。
固定受信・Eスポ観測時の「ノイズの山」による誤停止の回避:
Skyworks公式のAN332プログラミングガイドでは「有効な局を判定する」という基礎解説ですが、 固定アンテナ受信における最大の実務目的は「パソコンや周囲の家電が発生させる高周波ノイズ(都市雑音)によるシークの誤停止を回避すること」です。
固定環境でシークをかけると、放送局がない周波数であっても外来ノイズのせいで電界(RSSI)が跳ね上がることがあります。
しかし、ノイズであればSNRは極めて低いため、本プロパティをデフォルト(3 dB)から少し引き上げ(例: 8〜12 dBなど)ておくことで、 局のない「ノイズの塊」を自動的にスルーし、中身が聴き取れる正規の放送局だけをスマートに狙い撃ちで停止させることができます。
Skyworks公式のAN332プログラミングガイドでは「有効な局を判定する」という基礎解説ですが、 固定アンテナ受信における最大の実務目的は「パソコンや周囲の家電が発生させる高周波ノイズ(都市雑音)によるシークの誤停止を回避すること」です。
固定環境でシークをかけると、放送局がない周波数であっても外来ノイズのせいで電界(RSSI)が跳ね上がることがあります。
しかし、ノイズであればSNRは極めて低いため、本プロパティをデフォルト(3 dB)から少し引き上げ(例: 8〜12 dBなど)ておくことで、 局のない「ノイズの塊」を自動的にスルーし、中身が聴き取れる正規の放送局だけをスマートに狙い撃ちで停止させることができます。
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モードでの実行必須:
マルチプロパティの「AND条件」であることの認識:
必ず POWER_UP (0x01) コマンドでFMモードとして完全に起動を終えた(CTS=1を確認した)後に書き込みを行ってください。
マルチプロパティの「AND条件」であることの認識:
Si4735のシーク判定エンジンは、本プロパティ(SNR)および 0x1404 (RSSI) の両方がしきい値をクリアしたときに初めて停止します。
本パラメータだけを過剰にいじっても、RSSIしきい値とのバランスが崩れていると、全くシークが止まらなくなるか、逆にどこでも止まってしまうハング状態に見えるため、必ず並行して設計する必要があります。
本パラメータだけを過剰にいじっても、RSSIしきい値とのバランスが崩れていると、全くシークが止まらなくなるか、逆にどこでも止まってしまうハング状態に見えるため、必ず並行して設計する必要があります。
4.2 もう少し踏み込んだ応用展開
固定受信での「ローカル局快適BGMスキャン」と「Eスポかすか探索」の動的合格ライン制御:
「快適BGMシーク」:
本プロパティを 15〜20 dB に設定。地元の強力でステレオクリアに聴こえる極上局だけを瞬時に見つけて停止する、ラグジュアリーな操作感を提供します。
「Eスポ・DX探索シーク」:
本プロパティをあえて 0 またはデフォルトの 3 に設定。音声がノイズで割れていようが、電離層で歪んでいようが、
「キャリアの背後に何らかの音声信号らしき山(低SNR)」を検知した瞬間にすかさずホールドし、ユーザーが手動で追い込めるようにする、マニア垂涎の「超高感度ガチ無線機仕様」へUIから動的変更させられます。
4.3 デバッグ時のチェックリスト
シークを実行した際、どの周波数でも全く止まらずに上限/下限を往復し続けていないか?(その場合、現在の受信環境に対して SKSNR の値が高すぎる可能性があります。値をデフォルトの3に戻すか、下げてみてください)
放送がない「ただのザーというノイズ地帯」でシークが何度も誤停止していないか?(その場合は、固定環境周囲の電子機器ノイズを局と誤認しているため、値を 8〜12 程度に引き上げる必要があります)
SET_PROPERTY 発行直後に STATUS の CTS ビットをポーリングし、レジスタ反映を確認してから FM_SEEK_START を叩いているか?
放送がない「ただのザーというノイズ地帯」でシークが何度も誤停止していないか?(その場合は、固定環境周囲の電子機器ノイズを局と誤認しているため、値を 8〜12 程度に引き上げる必要があります)
SET_PROPERTY 発行直後に STATUS の CTS ビットをポーリングし、レジスタ反映を確認してから FM_SEEK_START を叩いているか?
4.4 まとめ
FM_SEEK_TUNE_SNR_THRESHOLD(0x1403)は、Si4735の自動選局に「耳の肥えた知性(品質フィルター)」を与えるための重要プロパティです。
hobbylab.jpのページで解説される際、固定設置レシーバーという特性において、 このSNRしきい値を「周囲の家電ノイズを無視しつつ、ターゲットとなる局を的確にロックするための『感度の切れ味』を調整するボリューマー」として定義づけると、 読者にとって非常に解釈しやすく、実用性の高い最高の技術コンテンツになります。
hobbylab.jpのページで解説される際、固定設置レシーバーという特性において、 このSNRしきい値を「周囲の家電ノイズを無視しつつ、ターゲットとなる局を的確にロックするための『感度の切れ味』を調整するボリューマー」として定義づけると、 読者にとって非常に解釈しやすく、実用性の高い最高の技術コンテンツになります。
