この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 0x3400. AM_SEEK_BAND_BOTTOM 概要
AM_SEEK_BAND_BOTTOM
AM帯域の下限周波数(kHz単位)を設定します。
この値は、シーク実行時にAM帯域の下限に達したかどうかを判定するために使用されます。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときのみ設定または読み出しが可能です。
デフォルト値は520 kHz (0x0208)です。
対応デバイス:すべて
デフォルト値:0x0208
単位:kHz
ステップ:1 kHz
有効範囲:149~23000 kHz
推奨範囲:
■ 米国AM :520~1710 kHz
■ アジアAM :522~1710 kHz
■ SW(短波):2300~23000 kHz
■ LW(長波):153~279 kHz
AM帯域の下限周波数(kHz単位)を設定します。
この値は、シーク実行時にAM帯域の下限に達したかどうかを判定するために使用されます。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、パワーアップモードのときのみ設定または読み出しが可能です。
デフォルト値は520 kHz (0x0208)です。
対応デバイス:すべて
デフォルト値:0x0208
単位:kHz
ステップ:1 kHz
有効範囲:149~23000 kHz
推奨範囲:
■ 米国AM :520~1710 kHz
■ アジアAM :522~1710 kHz
■ SW(短波):2300~23000 kHz
■ LW(長波):153~279 kHz
2 プロパティ
2.1 プロパティリスト
| Bit | 上位バイト PROPH | 下位バイト PROPL | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Name | AMSKFREQL | |||||||||||||||
| Bit | Name | Function |
|---|---|---|
| 15:0 | AMSKFREQL | AMシーク帯域下限 シーク実行時のAM帯域下限を指定します。 シークは、この下限で停止するか、あるいはシーク開始時に発行されたAM_SEEK_STARTコマンドのパラメータに基づいて周波数範囲の先頭へ戻る(ラップする)動作を行います。 AM帯域下限のデフォルト値は520 kHzです。 |
2.2 プロパティ
このプロパティは、AM(および短波SW、長波LW)のオートシーク(自動選局)機能を実行する際の「バンドの最下限周波数(ボトム周波数)」を設定するものです。
Si4735のシークコマンド(AM_SEEK)は、設定された上限(AM_SEEK_BAND_TOP)とこの下限(AM_SEEK_BAND_BOTTOM)の間をループしながら有効な放送局を探索します。
デフォルト値: 0x020D(十進数で525)
初期状態の単位: 525 kHz(日本のAMラジオ放送帯の最下限に近い値に設定されています)
Si4735のシークコマンド(AM_SEEK)は、設定された上限(AM_SEEK_BAND_TOP)とこの下限(AM_SEEK_BAND_BOTTOM)の間をループしながら有効な放送局を探索します。
デフォルト値: 0x020D(十進数で525)
初期状態の単位: 525 kHz(日本のAMラジオ放送帯の最下限に近い値に設定されています)
2.2.1 AMSKFREQL (AM Seek Band Bottom Frequency)
目的と概要:
16ビット(Bit 15:0)の領域を使用して、オートシークがスキャンを行う下限周波数を1 kHz単位でダイレクトに設定します。設定可能な範囲は 149 kHz ~ 23000 kHz です。
AN332に明記されない目的と解説:
AN332 の一般的な解説では「AM帯(525〜1710kHz)の下限」として説明されがちですが、
内部DSPの挙動としては、現在選択されているチューニングモード(LW/MW/SW)の枠組みそのものを定義するレジスタとして機能します。
特にSSB(シングルサイドバンド)パッチや短波(SW)受信時において、このボトム周波数をターゲットにするメーターバンド (例:49mバンドの5900kHzなど)の最下限にピンポイントで丸ごと書き換えることで、 内部のシークアルゴリズムが無駄な空き帯域をスキャンする時間を劇的に削減し、 限られたDSPリソースを特定のバンド内探索に100%集中させる目的で使用できます。
特にSSB(シングルサイドバンド)パッチや短波(SW)受信時において、このボトム周波数をターゲットにするメーターバンド (例:49mバンドの5900kHzなど)の最下限にピンポイントで丸ごと書き換えることで、 内部のシークアルゴリズムが無駄な空き帯域をスキャンする時間を劇的に削減し、 限られたDSPリソースを特定のバンド内探索に100%集中させる目的で使用できます。
3 応答パラメータ
プロパティ設定コマンド(SET_PROPERTY)を実行した際、および取得コマンド(GET_PROPERTY)を実行した際の応答(Response)パラメータです。
STATUS (Status Byte)
RESP1 ~ RESP4 (Response Bytes ※GET_PROPERTY時)
STATUS (Status Byte)
コマンド処理後にICが返す1バイトのステータス情報です。最上位ビットの CTS (Clear to Send) が 1 になることで、
レジスタへの書き込み処理が内部DSPに無事受理され、次のコマンドを受け付けられる状態になったことをホストマイコン側に通知します。
RESP1 ~ RESP4 (Response Bytes ※GET_PROPERTY時)
GET_PROPERTY コマンドで 0x3400 を指定した際、現在チップ内部に記憶されている下限周波数の
値(2バイト分:AMSKFREQL の高位・低位バイト)が RESP2 と RESP3 に格納されて返されます。
4 その他(Google AI (Gemini) の見解)
4.1 コマンドの重要ステップと注意事項
TOPプロパティ(0x3401)との大小関係の維持:
周波数ステップとの整合性:
必ず AM_SEEK_BAND_BOTTOM (0x3400) の値が、対になる AM_SEEK_BAND_TOP (0x3401) の値よりも小さく(低く)なるように設定してください。
逆転した値を書き込むと、シークコマンドを実行した際にDSPがハングアップするか、意図しない帯域を無限ループする原因になります。
逆転した値を書き込むと、シークコマンドを実行した際にDSPがハングアップするか、意図しない帯域を無限ループする原因になります。
周波数ステップとの整合性:
下限周波数は、プロパティ 0x3402 AM_SEEK_FREQUENCY_SPACING(9kHzまたは10kHzなど)で設定する選局ステップの「倍数」
または綺麗に割り切れる基準値に合わせて設定するのがベストです。
端数が出ると、シーク開始直後の最初の1ステップ目の計算で予期せぬ周波数シフトが発生することがあります。
端数が出ると、シーク開始直後の最初の1ステップ目の計算で予期せぬ周波数シフトが発生することがあります。
4.2 もう少し踏み込んだ応用展開
バーチャル・サブバンド」の動的生成:
LW(長波)受信時のセーフティガード:
広大な短波帯(1.7MHz~23MHz)をシークする際、全域をスキャンすると膨大な時間がかかります。
そこで、ユーザーが「国際放送49mバンド」を選んだ瞬間に、マイコン側からこのプロパティを 5900 (kHz) に、 TOPを 6200 (kHz) に動的書き換えすることで、まるで独立した「49m専用バンド」が存在するかのような高速なシーク・スキャン環境をシームレスに提供できます。
そこで、ユーザーが「国際放送49mバンド」を選んだ瞬間に、マイコン側からこのプロパティを 5900 (kHz) に、 TOPを 6200 (kHz) に動的書き換えすることで、まるで独立した「49m専用バンド」が存在するかのような高速なシーク・スキャン環境をシームレスに提供できます。
LW(長波)受信時のセーフティガード:
149kHz付近の長波帯は国や地域によってノイズ環境が大きく異なります。
海外向けの長波・中波兼用機を設計する場合、仕向け地(日本/欧州/北米)のリージョン設定に応じて、 このボトム周波数を 153 (kHz) や 522 (kHz) へとマイコンの起動時に動的にシフトさせるファームウェア設計が非常にスマートです。
海外向けの長波・中波兼用機を設計する場合、仕向け地(日本/欧州/北米)のリージョン設定に応じて、 このボトム周波数を 153 (kHz) や 522 (kHz) へとマイコンの起動時に動的にシフトさせるファームウェア設計が非常にスマートです。
4.3 デバッグ時のチェックリスト
設定する周波数データ(例:522 kHz = 0x020A)が、正しく高位バイト(02h)、低位バイト(0Ah)に分解されてI2C/SPIバス上に流れているか。
短波(SW)帯を設定する際、値が最大許容範囲の 23000 (kHz = 0x59D8) を超えて設定されていないか。
シークを実行した際、設定したボトム周波数に到達した時点で、正しく上限(TOP)側に反転ループ(またはシーク終了)しているか。
短波(SW)帯を設定する際、値が最大許容範囲の 23000 (kHz = 0x59D8) を超えて設定されていないか。
シークを実行した際、設定したボトム周波数に到達した時点で、正しく上限(TOP)側に反転ループ(またはシーク終了)しているか。
4.4 まとめ
AM_SEEK_BAND_BOTTOM は、単なるスキャンの開始地点ではなく、「受信機にどのようなバンドプランを持たせるか」を決定付けるソフトウェア・パーテーションの境界線です。
hobbylab.jpが手がける高機能なラジオモジュールにおいて、中波から短波までを縦横無尽かつ快適にオートスキャンさせるための土台となるプロパティと言えます。
hobbylab.jpが手がける高機能なラジオモジュールにおいて、中波から短波までを縦横無尽かつ快適にオートスキャンさせるための土台となるプロパティと言えます。
