この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x1301. FM_SOFT_MUTE_SLOPE 概要
FM_SOFT_MUTE_SLOPE
ソフトミュートのSNR閾値を下回る際の、SNR 1 dBあたりの減衰量(dB)として、ソフトミュート時の減衰スロープを設定します。
ソフトミュート時の減衰量は、SMSLOPE × (SMTHR – SNR) と SMATTN のうち小さい方の値となります。
推奨される SMSLOPE の値は CEILING(SMATTN/SMTHR) です。
SMATTN および SMTHR は、FM_SOFT_MUTE_MAX_ATTENUATION および FM_SOFT_MUTE_SNR_THRESHOLD プロパティによって設定されます。
次のコマンドを送信しても安全な状態になると、CTS ビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み取りが可能です。
対応デバイスにおけるソフトミュートスローププロパティのデフォルト設定は 2 dB/dB です。
Si4704/05/3x-B20 デバイス(FMRX コンポーネント 2.0 搭載デバイス)ではソフトミュートスロープの設定変更はできず、値は 2 dB/dB に固定されています。
対応デバイス: Si4704/05/06/3x-D50 以降、Si4732
デフォルト: 0x0002
範囲: 0~63
ソフトミュートのSNR閾値を下回る際の、SNR 1 dBあたりの減衰量(dB)として、ソフトミュート時の減衰スロープを設定します。
ソフトミュート時の減衰量は、SMSLOPE × (SMTHR – SNR) と SMATTN のうち小さい方の値となります。
推奨される SMSLOPE の値は CEILING(SMATTN/SMTHR) です。
SMATTN および SMTHR は、FM_SOFT_MUTE_MAX_ATTENUATION および FM_SOFT_MUTE_SNR_THRESHOLD プロパティによって設定されます。
次のコマンドを送信しても安全な状態になると、CTS ビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み取りが可能です。
対応デバイスにおけるソフトミュートスローププロパティのデフォルト設定は 2 dB/dB です。
Si4704/05/3x-B20 デバイス(FMRX コンポーネント 2.0 搭載デバイス)ではソフトミュートスロープの設定変更はできず、値は 2 dB/dB に固定されています。
対応デバイス: Si4704/05/06/3x-D50 以降、Si4732
デフォルト: 0x0002
範囲: 0~63
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 | SMSLOPE | |||||||
| Bit | Name | Function |
|---|---|---|
| 7:0 | SMSLOPE |
2.2 プロパティ
本プロパティは、FM受信時の電界強度(RSSI)の低下に伴ってソフトミュートが開始された後、音量をどれだけ「急激に(または緩やかに)」絞っていくかという「減衰の傾き(スロープ)」を設定します。
後述の FM_SOFT_MUTE_MAX_ATTENUATION (0x1302) で設定する最大減衰量に到達するまでの変化の度合いを、1 dBあたりの減衰量(dB/dB)として決定します。
デフォルト値は 0x0002(2 dB/dB)です。
後述の FM_SOFT_MUTE_MAX_ATTENUATION (0x1302) で設定する最大減衰量に到達するまでの変化の度合いを、1 dBあたりの減衰量(dB/dB)として決定します。
デフォルト値は 0x0002(2 dB/dB)です。
2.2.1 SMSLOPE (Soft Mute Slope)
目的と概要:
ソフトミュートの減衰の傾きを 0〜63 (dB/dB) の範囲で設定します。
値を大きくするほど、ソフトミュート開始のしきい値を下回った際に音量が「急激に」絞られます(シャープな遮断)。
値を小さくするほど、電界の低下に合わせて音量が「緩やかに」絞られます(ソフトな減衰)。
AN332に明記されない目的と解説:
値を大きくするほど、ソフトミュート開始のしきい値を下回った際に音量が「急激に」絞られます(シャープな遮断)。
値を小さくするほど、電界の低下に合わせて音量が「緩やかに」絞られます(ソフトな減衰)。
固定受信における遠距離局(DX局)の「聴感上の粘り」のコントロール:
固定アンテナでの受信時、遠距離局やEスポ発生時の信号は、ノイズに埋もれながらも音声自体は判別できる絶妙な電界強度を維持することがあります。
このとき SMSLOPE が大きすぎる(急峻すぎる)と、電界がわずかに変動しただけで音声がブツブツと完全に途切れてしまいます。
あえてこの値を小さく(例: 1や2)設定しておくことで、信号が弱くなっても完全に消音せず、サー音(ノイズ)が混じりつつも「最後まで粘り強く音声を拾い続ける」という、 アマチュア無線や遠距離FMリスニング特有のチューニングが可能になります。
固定アンテナでの受信時、遠距離局やEスポ発生時の信号は、ノイズに埋もれながらも音声自体は判別できる絶妙な電界強度を維持することがあります。
このとき SMSLOPE が大きすぎる(急峻すぎる)と、電界がわずかに変動しただけで音声がブツブツと完全に途切れてしまいます。
あえてこの値を小さく(例: 1や2)設定しておくことで、信号が弱くなっても完全に消音せず、サー音(ノイズ)が混じりつつも「最後まで粘り強く音声を拾い続ける」という、 アマチュア無線や遠距離FMリスニング特有のチューニングが可能になります。
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モードでの実行必須:
単位は「dB/dB」の相対比:
ゼロ指定の禁止:
必ず POWER_UP (0x01) コマンドを発行して、デバイスがFMモードとして完全に起動している状態(CTS=1)で設定を行ってください。
単位は「dB/dB」の相対比:
このパラメータの単位は「受信RSSIが1 dB低下したときに、音量を何dB減衰させるか」という意味を持っています。
例えば、値を 4 にすると、電界が3 dB落ちただけで 3 × 4 = 12 dB も音量が下がることになり、非常に急激なミュート特性になります。
例えば、値を 4 にすると、電界が3 dB落ちただけで 3 × 4 = 12 dB も音量が下がることになり、非常に急激なミュート特性になります。
ゼロ指定の禁止:
0 を設定すると傾きがゼロ、つまりソフトミュート自体が実質的に無効化され、電界がどれだけ落ちても音量が自動的に絞られなくなります(ノイズがそのまま出力されます)。
4.2 もう少し踏み込んだ応用展開
「BGM用途」と「遠距離受信用途」の動的プロファイル切り替え:
地元の強力な局をクリアな高音質で聴く「BGMモード」では、値を大きめ(例: 4〜8)にして、電波が乱れたら一思いにスパッと無音にする(ノイズを耳に入れない)快適仕様にします。
Eスポ狙いや遠距離の弱電界局を狙う「DXモード」では、値を 1 などの最小値にする、あるいは 0 にしてソフトミュートをOFFにし、 ノイズの底からかすかな音声を人間の耳(またはPCの解析ソフト)で識別する仕様に切り替える、といったホスト側ソフトでのモード選択機能に応用できます。
Eスポ狙いや遠距離の弱電界局を狙う「DXモード」では、値を 1 などの最小値にする、あるいは 0 にしてソフトミュートをOFFにし、 ノイズの底からかすかな音声を人間の耳(またはPCの解析ソフト)で識別する仕様に切り替える、といったホスト側ソフトでのモード選択機能に応用できます。
4.3 デバッグ時のチェックリスト
SET_PROPERTY 発行直後に STATUS の CTS ビットをポーリングし、書き込み完了を保証しているか?
弱電界局を受信した際、音が激しくブツブツ途切れるような違和感(オン/オフを繰り返すような挙動)がないか?(その場合はスロープが急すぎるため、値を下げる必要があります)
FM_SOFT_MUTE_MAX_ATTENUATION (0x1302) の設定値と矛盾がないか?(最大減衰量が小さすぎると、いくらスロープを急にしても十分に音が小さくなりません)
弱電界局を受信した際、音が激しくブツブツ途切れるような違和感(オン/オフを繰り返すような挙動)がないか?(その場合はスロープが急すぎるため、値を下げる必要があります)
FM_SOFT_MUTE_MAX_ATTENUATION (0x1302) の設定値と矛盾がないか?(最大減衰量が小さすぎると、いくらスロープを急にしても十分に音が小さくなりません)
4.4 まとめ
FM_SOFT_MUTE_SLOPE(0x1301)は、受信機に「オーディオ機器としての快適性」を求めるか、それとも「無線機としての受信能力」を求めるかという、レシーバーのアイデンティティ(方向性)を決定づけるプロパティです。
固定設置型の受信機において、狙うターゲット局の電界強度特性に合わせてこのスロープを最適化することで、 ノイズをスマートにシャットアウトする「洗練されたラジオ」にも、ノイズに埋もれた微弱局を限界まで追いかける「高性能モニターレシーバー」にも仕立て上げることができます。
固定設置型の受信機において、狙うターゲット局の電界強度特性に合わせてこのスロープを最適化することで、 ノイズをスマートにシャットアウトする「洗練されたラジオ」にも、ノイズに埋もれた微弱局を限界まで追いかける「高性能モニターレシーバー」にも仕立て上げることができます。
