この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x3200. AM_RSQ_INT_SOURCE 概要
AM_RSQ_INT_SOURCE
受信信号品質メトリックに関連する割り込みを設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み取りが可能です。
利用可能なモード:すべて
デフォルト値:0x0000
受信信号品質メトリックに関連する割り込みを設定します。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときにのみ設定または読み取りが可能です。
利用可能なモード:すべて
デフォルト値:0x0000
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 | 0 | SNRHIEN | SNRLIEN | RSSIHIEN | RSSILIEN |
| Bit | Name | Function |
|---|---|---|
| 3 | SNRHIEN | 割り込みソース有効化:SNR High。 AM_RSQ_SNR_HI_THRESHOLDで閾値が設定される「SNR High」を、割り込みソースとして有効にします。 |
| 2 | SNRLIEN | 割り込みソース有効化:SNR Low。 AM_RSQ_SNR_LO_THRESHOLDで閾値が設定される「SNR Low」を、割り込みソースとして有効にします。 |
| 1 | RSSIHIEN | 割り込みソース有効化:RSSI High。 AM_RSQ_RSSI_HI_THRESHOLDで閾値が設定される「RSSI High」を、割り込みソースとして有効にします。 |
| 0 | RSSILIEN | 割り込みソース有効化:RSSI Low。 AM_RSQ_RSSI_LO_THRESHOLDで閾値が設定される「RSSI Low」を、割り込みソースとして有効にします。 |
2.2 プロパティ
AM_RSQ_INT_SOURCE は、AM/SW/LWの受信信号品質(RSQ: Received Signal Quality)メトリクスに関する割り込み(Interrupt)条件を設定・有効化するためのプロパティです。
本ICがバックグラウンドで監視している「SNR(信号対雑音比)」や「RSSI(受信信号強度)」が、あらかじめ設定した上限値(High Threshold)や下限値(Low Threshold)を跨いだ際に、 IRQピンを通じてホストMCUへ通知(割り込み要求)を出すかどうかをビットごとに制御します。
デフォルト値は 0x0000(すべての割り込みが無効)です。
本ICがバックグラウンドで監視している「SNR(信号対雑音比)」や「RSSI(受信信号強度)」が、あらかじめ設定した上限値(High Threshold)や下限値(Low Threshold)を跨いだ際に、 IRQピンを通じてホストMCUへ通知(割り込み要求)を出すかどうかをビットごとに制御します。
デフォルト値は 0x0000(すべての割り込みが無効)です。
2.2.1 SNRHIEN (SNR High Interrupt Enable)
目的と概要:
SNRが高しきい値(AM_RSQ_SNR_HI_THRESHOLD)を上回った際に、RSQ割り込み(RSQINT)を発生させるための許可ビット。
AN332に明記されない目的と解説:
主に「シーク(自動選局)動作時」や「フェージング(電波状態の急激な変化)からの復帰」をハードウェア単体で高速検知するために使用します。
ホストMCUが絶えずI2Cでステータスをポーリング(確認)し続けなくても、電波が「聴取に十分な品質まで良くなった瞬間」をピンの電圧変化だけでスマートにつかみ取ることができます。
ホストMCUが絶えずI2Cでステータスをポーリング(確認)し続けなくても、電波が「聴取に十分な品質まで良くなった瞬間」をピンの電圧変化だけでスマートにつかみ取ることができます。
2.2.2 SNRLIEN (SNR Low Interrupt Enable)
目的と概要:
SNRが低しきい値(AM_RSQ_SNR_LO_THRESHOLD)を下回った際に、RSQ割り込み(RSQINT)を発生させるための許可ビット。
AN332に明記されない目的と解説:
主に「電波障害やトンネル突入などによる急激な音質劣化の事前検知」に有効です。
この割り込みをトリガーにして、MCUから音量を絞る(ミュート)、あるいは別の周波数へ退避する(代替周波数シーク)といった 「オーディオのボツボツ音(ポップノイズ)を未然に防ぐ高度なミュート制御」を、人間の耳に感知される前のミリ秒単位で割り込み処理として実行させることができます。
この割り込みをトリガーにして、MCUから音量を絞る(ミュート)、あるいは別の周波数へ退避する(代替周波数シーク)といった 「オーディオのボツボツ音(ポップノイズ)を未然に防ぐ高度なミュート制御」を、人間の耳に感知される前のミリ秒単位で割り込み処理として実行させることができます。
2.2.3 RSSIHIEN (RSSI High Interrupt Enable)
目的と概要:
RSSIが高しきい値(AM_RSQ_RSSI_HI_THRESHOLD)を上回った際に、RSQ割り込み(RSQINT)を発生させるための許可ビット。
AN332に明記されない目的と解説:
強電界地域に入ったことを検知する目的で使用されます。
Si4735内部には超高性能な自動ゲイン制御(AGC)が搭載されていますが、外部に自作のブースター(LNA: 低雑音増幅器)や、 減衰器(アッテネータ)を設けている自作ラジオ回路の場合、この割り込みをトリガーにして「外部回路側のゲイン(増幅率)を物理的に切り替える」といった、 IC単体では完結しないダイナミックレンジの拡張(強電界でのサチュレーション/歪み対策)を実装する際に役立ちます。
Si4735内部には超高性能な自動ゲイン制御(AGC)が搭載されていますが、外部に自作のブースター(LNA: 低雑音増幅器)や、 減衰器(アッテネータ)を設けている自作ラジオ回路の場合、この割り込みをトリガーにして「外部回路側のゲイン(増幅率)を物理的に切り替える」といった、 IC単体では完結しないダイナミックレンジの拡張(強電界でのサチュレーション/歪み対策)を実装する際に役立ちます。
2.2.4 RSSILIEN (RSSI Low Interrupt Enable)
目的と概要:
RSSIが低しきい値(AM_RSQ_RSSI_LO_THRESHOLD)を下回った際に、RSQ割り込み(RSQINT)を発生させるための許可ビット。
AN332に明記されない目的と解説:
「完全に放送エリア外(圏外)に出たこと」の判定を最速で行うために使用します。
SNRはノイズ成分によって激しく上下しますが、RSSIは純粋な入力電波強度を示すため、弱電界における「完全なフェードアウト(無感地帯)」を最も正確に捕捉できます。
液晶画面のアンテナピクト(受信バー)を消灯させたり、省電力モードへ移行させたりするトリガーとして最適です。
SNRはノイズ成分によって激しく上下しますが、RSSIは純粋な入力電波強度を示すため、弱電界における「完全なフェードアウト(無感地帯)」を最も正確に捕捉できます。
液晶画面のアンテナピクト(受信バー)を消灯させたり、省電力モードへ移行させたりするトリガーとして最適です。
3 応答パラメータ
※なお、本プロパティ設定によってトリガーされた実際の割り込み要因(どの閾値を超えたか)は、このプロパティの応答ではなく、
AM_RSQ_STATUS コマンド(Command 0x23)を発行した際のレスポンスバイト(RESP1:SNRHINT, SNRLINT, RSSIHINT, RSSILINT 等の各フラグ)で取得します。
STATUS (Status Byte)
STATUS (Status Byte)
CTS (Clear to Send):
ERR (Error):
1 になると、チップが前のコマンドの処理を完了し、次のコマンドを受け入れられる状態であることを示します。
ERR (Error):
1 の場合、直前に送ったコマンドやプロパティの引数が不正(範囲外など)であったことを示します。
4 その他(Google AI (Gemini) の見解)
4.1 コマンドの重要ステップと注意事項
必ずPowerupモード中に操作すること
しきい値プロパティ(Thresholds)との紐付け順序
本プロパティ(0x3200)は、POWER_UP コマンドが正常に完了し、かつAM受信モードに遷移している状態でしかアクセス(Read/Write)できません。
それ以外の状態で書き込もうとすると無視されるか、STATUSのERRビットが立ちます。
それ以外の状態で書き込もうとすると無視されるか、STATUSのERRビットが立ちます。
しきい値プロパティ(Thresholds)との紐付け順序
AM_RSQ_INT_SOURCE で各ビットを有効化(1に)する前、または同時に、対応するしきい値(0x3201〜0x3204)に適切なデシベル値(dB、dBμV)を書き込んでおく必要があります。
しきい値がデフォルト(例: SNR高しきい値が127dBなど極端な値)のままだと、割り込みを許可しても永久に発生しません。
しきい値がデフォルト(例: SNR高しきい値が127dBなど極端な値)のままだと、割り込みを許可しても永久に発生しません。
4.2 もう少し踏み込んだ応用展開
超低消費電力・高レスポンスな「スリープ運用」への応用
一般的なDSPラジオの実装では、MCUから定期的にシークや受信状態をポーリングするため、MCUが常にフル稼働してI2Cバスにノイズが乗りやすくなります。
このプロパティを駆使して「RSSIが規定以下になったらMCUをディープスリープさせ、 電波強度が戻ったらSi4735のIRQピン変化でMCUを外部割り込みウェイクアップさせる」という構成にすることで、 ポータブル運用時のバッテリー寿命を劇的に伸ばすスマートな自作ラジオが構築可能です。
このプロパティを駆使して「RSSIが規定以下になったらMCUをディープスリープさせ、 電波強度が戻ったらSi4735のIRQピン変化でMCUを外部割り込みウェイクアップさせる」という構成にすることで、 ポータブル運用時のバッテリー寿命を劇的に伸ばすスマートな自作ラジオが構築可能です。
4.3 デバッグ時のチェックリスト
CTS(Clear to Send)を毎回確認しているか?
ホストMCU側のピン設定(PULL-UP等)は正しいか?
割り込みフラグのクリア処理を行っているか?
プロパティ設定を送信する前に、必ずステータスバイトの CTS が 1 になっている(処理が詰まっていない)ことを確認してください。
ホストMCU側のピン設定(PULL-UP等)は正しいか?
Si4735のGPO1/IRQピンは、内部でオープンドレイン駆動に設定される場合があります。
MCU側で内蔵プルアップを有効にするか、基板上に物理的なプルアップ抵抗(10kΩ等)が実装されているか回路図を再確認してください。
MCU側で内蔵プルアップを有効にするか、基板上に物理的なプルアップ抵抗(10kΩ等)が実装されているか回路図を再確認してください。
割り込みフラグのクリア処理を行っているか?
割り込みが発生したあと、AM_RSQ_STATUS コマンドを発行して内部の割り込みフラグをクリア(読み出しによる自動クリア)しないと、
IRQピンがアクティブ(Low)のまま固定され、2回目以降の割り込みが発生しなくなります。
4.4 まとめ
0x3200 (AM_RSQ_INT_SOURCE) は、Si4735が持つ「ハードウェア・シグナル・モニター」の能力を100%引き出すための鍵となるプロパティです。
単に周波数を合わせて音を出すだけのラジオから一歩進み、「電波環境の悪化を先読みしてスムーズに自動選局やミュートを行う、 インテリジェントな高級受信機」をアマチュア電子工作で実装する際には、避けては通れない非常に面白いパラメーターと言えます。
単に周波数を合わせて音を出すだけのラジオから一歩進み、「電波環境の悪化を先読みしてスムーズに自動選局やミュートを行う、 インテリジェントな高級受信機」をアマチュア電子工作で実装する際には、避けては通れない非常に面白いパラメーターと言えます。
