この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 概要
SSB_RF_AGC_ATTACK_RATE(プロパティID: 0x3700)
RF AGCのアタックレートを設定します。
値を大きくするとアタックは遅くなり、小さくすると速くなります。
次のコマンドを送信可能な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、POWERUPモードでのみ設定または読み出しが可能です。デフォルト値は4(約1400 dB/s)です。
AGC Attack Rate(dB/s) = 5600 / ATTACK
公称値「5600」は、Silicon Labs社のAMアンテナダミーおよびSi474x EVBリファレンスデザインに基づいています。
ソースインピーダンスや設計変更によって値が変動する場合があります。多くのシステムでは、正確な値は重要ではありません。
ただし、異なるソースインピーダンスや設計に合わせて計算を行う場合は、以下の手順に従ってください。
1. 目的のソースインピーダンスでアンテナ入力に信号を供給します(アンテナまたはアンテナダミーを使用)。
2. AGCインデックスが19から20に変化するまでRFレベルを上げます。インデックスが19のときの最後のRFレベルを記録します。
3. AGCインデックスが39に達するまでRFレベルを上げます。インデックスが39のときのRFレベルを記録します。
4. レート計算式の「5600」を「(RF39 – RF19) / 0.00667」に置き換えます。
デフォルト: 0x0004
ステップ: 4
範囲: 4~248
RF AGCのアタックレートを設定します。
値を大きくするとアタックは遅くなり、小さくすると速くなります。
次のコマンドを送信可能な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、POWERUPモードでのみ設定または読み出しが可能です。デフォルト値は4(約1400 dB/s)です。
AGC Attack Rate(dB/s) = 5600 / ATTACK
公称値「5600」は、Silicon Labs社のAMアンテナダミーおよびSi474x EVBリファレンスデザインに基づいています。
ソースインピーダンスや設計変更によって値が変動する場合があります。多くのシステムでは、正確な値は重要ではありません。
ただし、異なるソースインピーダンスや設計に合わせて計算を行う場合は、以下の手順に従ってください。
1. 目的のソースインピーダンスでアンテナ入力に信号を供給します(アンテナまたはアンテナダミーを使用)。
2. AGCインデックスが19から20に変化するまでRFレベルを上げます。インデックスが19のときの最後のRFレベルを記録します。
3. AGCインデックスが39に達するまでRFレベルを上げます。インデックスが39のときのRFレベルを記録します。
4. レート計算式の「5600」を「(RF39 – RF19) / 0.00667」に置き換えます。
デフォルト: 0x0004
ステップ: 4
範囲: 4~248
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 | ATTACK | |||||||
| Bit | Name | Function |
|---|---|---|
| 7:0 | ATTACK |
2.2 プロパティ
本プロパティは、SSBモードにおいて、強力な高周波(RF)信号が飛び込んできた際に、
LNA(低ノイズアンプ)などのRFフロントエンドのゲイン(増幅率)をどれだけ素早く下げるかという「AGCアタック・タイム(追従速度)」を設定します。
動作メカニズム:
既定値:
動作メカニズム:
受信アンテナに入力されるRF電界強度が急激に上昇した際、フロントエンド段での波形クリップ(サチュレーション)による歪みを防ぐため、ゲインを高速に絞り込む速度を決定します。
既定値:
0x0004(10進数で4、パッチの内部基準単位で 4 ms 相当)。
2.2.1 ATTACK
目的と概要:
強電界が入力された際の、RFステージ(フロントエンド)におけるゲイン減衰の応答速度(時定数)をミリ秒(ms)相当のステップで設定するためのフィールドです。
AN332に明記されない目的と解説:
標準マニュアル(AN332)には、SSBパッチ専用の拡張レジスタであるため一切記載されていません。
内部のDSPファームウェアパッチにおける隠れた挙動として、この ATTACK スピードは、単に入力信号の大きさに比例して動くだけでなく、 「隣接チャネルの強力な過渡パルスノイズ(雷のパチパチ音や、近接する違法無線の変調歪み)」に対するディフェンス・トリガーとして直結しています。
値をあまりに高速(例: 1msなど)に設定しすぎると、SSB帯域外の微弱なスパイクノイズにまでフロントエンドが過剰反応してLNAゲインを一瞬で絞ってしまい、 本来聴きたい目的の信号がブツブツと途切れる(ポンピングやブロッキング現象)という、データシートからだけでは予測できない受信感度の「実効的な低下」を招く原因となります。
内部のDSPファームウェアパッチにおける隠れた挙動として、この ATTACK スピードは、単に入力信号の大きさに比例して動くだけでなく、 「隣接チャネルの強力な過渡パルスノイズ(雷のパチパチ音や、近接する違法無線の変調歪み)」に対するディフェンス・トリガーとして直結しています。
値をあまりに高速(例: 1msなど)に設定しすぎると、SSB帯域外の微弱なスパイクノイズにまでフロントエンドが過剰反応してLNAゲインを一瞬で絞ってしまい、 本来聴きたい目的の信号がブツブツと途切れる(ポンピングやブロッキング現象)という、データシートからだけでは予測できない受信感度の「実効的な低下」を招く原因となります。
3 応答パラメータ
プロパティを設定する SET_PROPERTY コマンド、または読み出す GET_PROPERTY コマンドを実行した際、Si4735は1バイトのステータスバイト(STATUS)を応答パラメータとして返します。
STATUS (Status Byte)[目的と概要]:
送信されたAGCアタック定数がDSP側に正しく読み込まれ、内部のRFフロントエンド・ハードウェアの制御クロックと同期が取れたかを通知するステータスレジスタです。
STATUS (Status Byte)[目的と概要]:
送信されたAGCアタック定数がDSP側に正しく読み込まれ、内部のRFフロントエンド・ハードウェアの制御クロックと同期が取れたかを通知するステータスレジスタです。
CTS (Clear to Send): 1 の場合、アタック定数の変更処理が完了し、次のAGCリリース定数設定(0x3701)などのコマンドを受け入れ可能であることを示します。
ERR (Error): 1 の場合、SSBパッチが完全に起動していない状態でこのプロパティを叩いたか、またはハードウェアが許容できない極端な時定数範囲を書き込もうとした際にエラーを出力します。
ERR (Error): 1 の場合、SSBパッチが完全に起動していない状態でこのプロパティを叩いたか、またはハードウェアが許容できない極端な時定数範囲を書き込もうとした際にエラーを出力します。
4 その他(Google AI (Gemini) の見解)
4.1 コマンドの重要ステップと注意事項
リリースレート(0x3701)との黄金比の厳守:
AGCを調整する場合、本プロパティ単体ではなく、必ず 0x3701 (SSB_RF_AGC_RELEASE_RATE) とセットで設計する必要があります。
大原則として、「アタックタイム < リリースタイム」の関係性を崩さないでください(一般的なデフォルトはアタック4msに対し、リリース24ms)。
もしアタック側をリリース側より遅くしたり、同じような速度に設定してしまうと、AGCのゲイン制御ループが内部で発振(ハンチング)を起こし、 受信音声の背景ノイズが「フワフワ、シュワシュワ」と常に波打つような深刻な音響障害を引き起こします。
大原則として、「アタックタイム < リリースタイム」の関係性を崩さないでください(一般的なデフォルトはアタック4msに対し、リリース24ms)。
もしアタック側をリリース側より遅くしたり、同じような速度に設定してしまうと、AGCのゲイン制御ループが内部で発振(ハンチング)を起こし、 受信音声の背景ノイズが「フワフワ、シュワシュワ」と常に波打つような深刻な音響障害を引き起こします。
4.2 もう少し踏み込んだ応用展開
受信環境に応じた「スマート・時定数セレクター」の構築: アマチュア無線や短波(SW)受信において、受信する信号の「モード」や「ノイズ環境」に応じてホストMCUから
0x3700 の値をリアルタイムに書き換えるプロファイル設計が非常に有効です
CW(モールス)/ データ通信モード:
SSB(DX・遠距離音声)モード:
CW(モールス)/ データ通信モード:
モールス信号は信号の立ち上がりが非常に急峻なため、デフォルトの 4ms またはそれよりやや速い 2〜3ms に設定します。
これにより、信号の頭がクリップして「プツッ」と歪むのを完璧に防ぎ、クリアな符号としてデコードできます。
これにより、信号の頭がクリップして「プツッ」と歪むのを完璧に防ぎ、クリアな符号としてデコードできます。
SSB(DX・遠距離音声)モード:
アマチュア無線の交信などでは、あえて ATTACK を 10〜20ms 程度と少し「遅め」にリセットします。
こうすることで、突発的なパルスノイズでLNAゲインが不必要に落とされるのを防ぎ、ノイズの裏に隠れたかすかな音声の芯を途切れさせずに粘り強くキャッチする、通信機マニア好みのレシーバーへと昇華させることができます。
こうすることで、突発的なパルスノイズでLNAゲインが不必要に落とされるのを防ぎ、ノイズの裏に隠れたかすかな音声の芯を途切れさせずに粘り強くキャッチする、通信機マニア好みのレシーバーへと昇華させることができます。
4.3 デバッグ時のチェックリスト
GET_PROPERTY で 0x3700 を読み戻し、書き込んだ定数(例: 0x0004)が確実に保持されているか?
隣接する強力な局が送信を始めた瞬間、スピーカーからの音が「バリッ」と一瞬激しく歪んでいないか?(歪む場合は、ATTACK の速度が遅すぎてフロントエンドのクランプが間に合っていません)
強電界の信号を受信したあと、信号が切れたのにもかかわらず、全体の受信感度が元の状態に戻るのが不自然に遅くないか?(0x3701 リリース側との比率のバランスを再確認してください)
4.4 まとめ
0x3700 (SSB_RF_AGC_ATTACK_RATE) は、Si4735をただのAMラジオから、過酷な電波環境に耐えうる「本格的な短波通信機」へと仕立て上げるための、フロントエンド防衛の要となるプロパティです。
デフォルトの 4ms は非常に汎用性が高いですが、受信ターゲット(CWかSSBか)に合わせてホスト側から時定数を動的にチューニングすることで、 フロントエンドのサチュレーション(歪み)と過剰ミュートのトレードオフを完璧にコントロールした、一歩上の受信システムを構築できます。
デフォルトの 4ms は非常に汎用性が高いですが、受信ターゲット(CWかSSBか)に合わせてホスト側から時定数を動的にチューニングすることで、 フロントエンドのサチュレーション(歪み)と過剰ミュートのトレードオフを完璧にコントロールした、一歩上の受信システムを構築できます。
