この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x1302. FM_SOFT_MUTE_MAX_ATTENUATION 概要
FM_SOFT_MUTE_MAX_ATTENUATION
ソフトミュート時の最大減衰量(dB)を設定します。
0に設定すると、ソフトミュートは無効になります。
次のコマンドを送信可能な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモード時のみ設定または読み取りが可能です。
デフォルト値は16 dBです。
対応機種:すべて
デフォルト値:0x0010
単位:dB
ステップ:1
範囲:0~31
ソフトミュート時の最大減衰量(dB)を設定します。
0に設定すると、ソフトミュートは無効になります。
次のコマンドを送信可能な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモード時のみ設定または読み取りが可能です。
デフォルト値は16 dBです。
対応機種:すべて
デフォルト値:0x0010
単位:dB
ステップ:1
範囲:0~31
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 | 0 | 0 | SMATTN | 0 | 0 | 0 | 0 |
| Bit | Name | Function |
|---|---|---|
| SMATTN | FMソフトミュート時の最大減衰量。 ソフトミュート時の最大減衰量を設定します。0に設定すると、ソフトミュート機能は無効になります。 設定単位はdBで、1 dB刻み(0~31)で指定します。 デフォルト値は16 dBです。 |
2.2 プロパティ
本プロパティは、FM受信時に電界強度(RSSI)が著しく低下した、あるいは完全に無信号(ノイズ床のみ)になった際、自動で絞る音量の最大値(限界減衰量)を設定します。
電波が途切れたときの「ザー」「サー」という不快なFM特有のノイズを、最大で何デシベル(dB)まで減衰させて抑え込むかを指定します。
デフォルト値は 0x0010(16 dB)です。
電波が途切れたときの「ザー」「サー」という不快なFM特有のノイズを、最大で何デシベル(dB)まで減衰させて抑え込むかを指定します。
デフォルト値は 0x0010(16 dB)です。
2.2.1 SMATTN (Soft Mute Maximum Attenuation)
目的と概要:
ソフトミュート発動時の最大減衰量を 0〜32 dB の範囲(1 dBステップ)で設定します。
値を大きくするほど無信号時(局間)が静か(ほぼ無音)になり、値を小さく(または0に)するほど、電波がどれだけ弱くなっても音量が下がらなくなります。
AN332に明記されない目的と解説:
値を大きくするほど無信号時(局間)が静か(ほぼ無音)になり、値を小さく(または0に)するほど、電波がどれだけ弱くなっても音量が下がらなくなります。
固定受信における「完全なミュート」と「過変調による音割れ感」のトレードオフ回避: AN332では「ノイズを小さくする」という単純な役割のみ語られますが、
最大値である 32 dB に設定すると、電波が少し弱くなっただけで音声が完全に「絶音(無音化)」します。
しかし、固定受信で遠距離局(DX局)のフェージングを追いかける場合、音声が急激に消えるよりも、多少ノイズが混じっても音量が維持されていた方が脳内補正で聴き取りやすいという特性があります。
そのため、固定受信機で微弱局を狙う際は、あえてデフォルト(16 dB)やそれ以下(例: 6〜10 dB)に抑えることで、オーディオが不自然にブツブツ途切れる現象(ポンピング現象)を回避するプロ向けの隠れたチューニング項目として機能します。
しかし、固定受信で遠距離局(DX局)のフェージングを追いかける場合、音声が急激に消えるよりも、多少ノイズが混じっても音量が維持されていた方が脳内補正で聴き取りやすいという特性があります。
そのため、固定受信機で微弱局を狙う際は、あえてデフォルト(16 dB)やそれ以下(例: 6〜10 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モードでの実行必須:
設定値の上限制限:
「ゼロ」設定時の挙動:
必ず POWER_UP (0x01) コマンドを発行し、デバイスが完全にFMモードで起動を終えた(CTS=1)後に設定を行ってください。
設定値の上限制限:
設定可能な最大値は 32 (0x20) までです。
これを超える値(例: 64など)を書き込むと、デバイス側で無視されるかパラメータエラー(ERRビットの発生)の原因となります。
これを超える値(例: 64など)を書き込むと、デバイス側で無視されるかパラメータエラー(ERRビットの発生)の原因となります。
「ゼロ」設定時の挙動:
0 を設定すると、ソフトミュートによる減衰量が「0 dB」となるため、電波がどれだけ弱くなろうが、局間の激しいノイズであろうが、常に100%の音量でそのままスルー出力されます。
4.2 もう少し踏み込んだ応用展開
「スケルチ機能」の代用とハイブリッド運用:
Eスポ・DX受信用の「全開放(0 dB)ショートカット」:
高級無線機に搭載されている「スケルチ(一定以下の信号を完全に遮断する機能)」の簡易版として本プロパティを活用できます。
通常リスニング時は耳に優しい最大値(32 dB)にしておき、ホスト側で「信号が一定時間以上途絶えた」と判断した場合は、 オーディオアンプのシャットダウンピン(MUTE)を直接叩くといった外部回路と連携させることで、ポップノイズのない完璧な静寂システムを構築できます。
通常リスニング時は耳に優しい最大値(32 dB)にしておき、ホスト側で「信号が一定時間以上途絶えた」と判断した場合は、 オーディオアンプのシャットダウンピン(MUTE)を直接叩くといった外部回路と連携させることで、ポップノイズのない完璧な静寂システムを構築できます。
Eスポ・DX受信用の「全開放(0 dB)ショートカット」:
ユーザーが操作するUI(ボタン長押しなど)で、一発でこのプロパティを 0(または極小値)に書き換える「DXモニターモード」を実装すると、
固定受信機として「ノイズの底に隠れた微弱電波を意図的に耳で探る」というマニアックで実用的な機能を提供できます。
4.3 デバッグ時のチェックリスト
SET_PROPERTY 発行直後に STATUS の CTS ビットをポーリングし、書き込み完了を待ってからオーディオの挙動を確認しているか?
アンテナを抜いて完全に無信号にしたとき、期待通りにノイズ音量が下がっているか?(下がらない場合は、本プロパティが0になっているか、または FM_SOFT_MUTE_SLOPE (0x1301) が0になってソフトミュート自体が動いていない可能性があります)
音量が下がった際、音声が完全に消える領域の「不自然さ(息つき感)」が耳障りでないか?(固定設置の場合は、デフォルトの16 dBから徐々に数値を下げて、最も心地よい減衰量を探るのがベストです)
アンテナを抜いて完全に無信号にしたとき、期待通りにノイズ音量が下がっているか?(下がらない場合は、本プロパティが0になっているか、または FM_SOFT_MUTE_SLOPE (0x1301) が0になってソフトミュート自体が動いていない可能性があります)
音量が下がった際、音声が完全に消える領域の「不自然さ(息つき感)」が耳障りでないか?(固定設置の場合は、デフォルトの16 dBから徐々に数値を下げて、最も心地よい減衰量を探るのがベストです)
4.4 まとめ
FM_SOFT_MUTE_MAX_ATTENUATION(0x1302)は、ラジオとしての「聴きやすさ(静寂性)」と「受信の粘り強さ(感度)」のパワーバランスを最終決定する調整弁です。
固定設置型の受信機において、本プロパティの減衰量をあえて少なめ(10 dB前後)に調整することで、フェージングによる音声のプツプツとした途切れを抑え、安定したアナログライクな受信フィールを演出できます。
hobbylab.jpのページで、これまでに解説した「速度(0x1300)」「傾き(0x1301)」、そして今回の「最大減衰量(0x1302)」の3部作が揃ったことで、ソフトミュートの本質的なアルゴリズムが完璧に網羅されました。
固定設置型の受信機において、本プロパティの減衰量をあえて少なめ(10 dB前後)に調整することで、フェージングによる音声のプツプツとした途切れを抑え、安定したアナログライクな受信フィールを演出できます。
hobbylab.jpのページで、これまでに解説した「速度(0x1300)」「傾き(0x1301)」、そして今回の「最大減衰量(0x1302)」の3部作が揃ったことで、ソフトミュートの本質的なアルゴリズムが完璧に網羅されました。
