AN:2005: ADF4371 と ADF4372 の VCO 自動キャリブレーションをバイパスする方法
はじめに
ADF4371とADF4372は、電圧制御発振器(VCO)内蔵の広帯域シンセサイザで、自動キャリブレーションを使用し、コア選択、帯域選択、およびバイアス・レベルのキャリブレーション値を適切に選択してデバイスをロックします。しかし、自動キャリブレーション機能を無効にすると、ロック時間を短縮できます。
自動キャリブレーションのバイパスは、レジスタ0x0034のビット[7:5](VCO_FSM_TEST_MODES)を使用して、VCOコア、帯域、バイアスを既知の値に強制設定することにより行われます。自動キャリブレーションをバイパスするには、自動キャリブレーションを有効にしてデバイスを目的の周波数にロックさせ、この自動キャリブレーション機能によって選択されたVCOのコア、帯域、バイアスをリードバックして保存します。次に、目的の周波数ごとにこれらの値の表を作成します。動作時には、自動キャリブレーションを無効にして目的周波数のVCO値を手動でロードし、デバイスに適切な周波数帯域を強制的に選択させて、自動キャリブレーション機能にかかる追加時間を不要とします。
分析、制御、評価用(ACE)ソフトウェア・プラグインを使用してEV-ADF4371SD2ZおよびEV-ADF4372SD2Zを設定すると、VCO値を容易にリードバックして一時的に保存し、これらの値を手動でデバイスに書き込むことができます。
自動キャリブレーションのバイパス手順
実施前にデバイスをロックし、VCOコア、帯域、バイアスの各パラメータをリードバックして、ルックアップ・テーブルを作成します。それぞれのチップは同一ではないため、チップごとに新しいテーブルを作成します。動作時には、自動キャリブレーション機能を無効にすることによって、VCOパラメータを手動でデバイスに書き込みます。
VCOキャリブレーション・データの リードバック
VCOキャリブレーション・データをリードバックするには、必要なレジスタにロードし、自動キャリブレーションを使用して通常どおりにデバイスをロックして、各周波数のVCOパラメータを読み出します。確実に自動キャリブレーションがリードバックの前に完了していることが重要です。自動キャリブレーションの完了前に値をリードバックすると、誤った値が読み出されます。
ACEソフトウェアでは、リードバックに使用されるビットに以下のようにラベルが付けられます。
- レジスタ0x0033、ビット[7:5]、VCO_FSM_READBACK
- レジスタ0x006E、ビット[7:0]、VCO_DATA_READBACK[7:0]
- レジスタ0x006F、ビット[7:0]、VCO_DATA_READBACK[15:8]
VCO_FSM_READBACKビットは、どのデータをVCO_DATA_ READBACKビットに送信するかを設定します。
VCOパラメータを読み出すには、以下の手順を実行します。
- 自動キャリブレーション機能を使用して、希望の周波数にロックするようにデバイスを設定します。デバイスがロックされるのを待機する必要があります。
- VCO_FSM_READBACKビットを0x01に設定して、帯域とコアのリードバックを許可します。
- レジスタ0x006Fのビット[3:0]を読み出して、現在のVCOコアをリードバックします。データとコアの対応関係については表1を参照してください。
- レジスタ0x006Eのビット[7:0]を読み出して、VCO帯域をリードバックします。
- VCO_FSM_READBACKビットを0x03に設定して、バイアスのリードバックを許可します。
- レジスタ0x006Eのビット[3:0]を読み出して、VCOバイアスをリードバックします。
必要な周波数ごとに手順1から手順6を繰り返して、これらの値の表を作成します。
VCOキャリブレーションの手動データ書込み
必要な各周波数のVCOパラメータを使用して、自動キャリブレーションを使用せずにデバイスを目標の周波数帯域に強制設定します。
VCOパラメータへの書込みに使用するビットは、ACEソフトウェアでは以下のとおりです。
- レジスタ0x0034、ビット[7:5]、VCO_FSM_TEST_MODES
- レジスタ0x0037、ビット[7:0]、SI_BAND_SEL
- レジスタ0x0038、ビット[7:4]、SI_VCO_SEL
- レジスタ0x0038、ビット[3:0]、SI_VCO_BIAS_CODE
デバイスにVCOパラメータを書き込むには、以下の手順を実行します。
- パワーアップ時に、ADF4371とADF4372のデータシートの説明に従ってシリアル・ポート・インターフェースを設定し、デバイスを初期化します。EN_AUTOCALを「b0」に設定して自動キャリブレーションを無効にし、レジスタ0x0034のビット[7:5](VCO_FSM_TEST_MODES)を「b1」に設定してVCOコア、帯域、バイアスを上書きします。
- 目標の周波数に応じて、レジスタ0x0010以外のレジスタを設定します。この手順は周波数によって異なります。整数、小数、モジュラスの各ワード、ブリード電流、およびトラッキング・フィルタ係数を設定し、インテジャー・モード、補助モジュラス、出力分周器、ダブラ、およびクワッドラプラを有効または無効にすることが必要な場合があります。
- 表2に示すSI_VCO_SELデータを使用してコアを設定します。
- SI_BAND_SELビットを使用して帯域を設定します。データは、リードバックから収集したのと同じフォーマットでこれらのビットに書き込むことができます。
- SI_VCO_BIAS_CODEビットを使用してバイアスを設定します。この場合も、データをリードバックから収集したのと同じフォーマットでこれらのビットに書き込むことができます。
- レジスタ0x0010に書き込みます。このレジスタに書き込むと、デバイスは新しい周波数にロックします。
収集するVCOキャリブレーション・データの周波数ごとに、手順2から手順6を繰り返します。
Core | Register 0x006F Data |
Core D | ‘b0001 |
Core C | ‘b0010 |
Core B | ‘b0100 |
Core A | ‘b1000 |
Core | SI_VCO_SEL Data |
Core D | 0x01 |
Core C | 0x02 |
Core B | 0x04 |
Core A | 0x08 |
ACEを使用した自動キャリブレーションのバイパス
[VCO CAL Bypass]タブのアクセスおよび 使用方法
- EV-ADF4371SD2ZまたはEV-ADF4372SD2Zを接続し、それぞれのユーザ・ガイドの説明に従ってACEソフトウェアを開きます。ACEのメイン・コントロール・ウィンドウを図1に示します。
- ACEのメイン・コントロール・ウィンドウで、[Other Controls]をクリックして[VCO Cal Bypass]ペインを開きます(図2を参照)。[VCO Cal Bypass]ペインには、低速の周波数掃引を実行し、キャリブレーション・データを収集してデバイスに書き込むためのコントロールがあります。
- 以下の手順を実行すると、周波数掃引時にキャリブレーション・データが自動的に収集されます。
- 必要な周波数にデバイスを設定します。
- [Sweep]で、[Auto Readback Cal Data]チェックボックスをオフにします。
- [VCO Start Frequency]、[VCO Stop Frequency]、[Frequency Spacing]、[Additional Delay]の各ボックスに入力して、キャリブレーション・データに必要な掃引パラメータを設定します。
- [Start/Stop Sweep]をクリックすると、ソフトウェアは自動的に掃引を実行し、キャリブレーション・データを測定します。
キャリブレーション・データを手動で読み出すには、以下の手順を実行します。
- デバイスがロックされているときに、現在のキャリブレーション・データを読み出します。[Read Current Freq VCO Data]をクリックすると、VCOコア、帯域、バイアスを読み出し、データを[VCO Cal Bypass]ペインに表示します。
このプロセスを他の周波数や設定に対して繰り返す場合もあります。周波数を手動で変更するには、[Manually Set VCO Frequency]テキスト・ボックスを使用します。
- 必要なデータが収集され、[VCO Cal Bypass]ペインに表示されたら、[Write Single]または[Start/Stop Write All VCO Data]のいずれかをクリックしてデバイスに書き込みます。これらのコマンド/ボタンはどちらも、自動キャリブレーション機能を自動的に無効にし、対応する周波数ごとにコア、帯域、バイアスの各パラメータをデバイスに手動で書き込みます。
[Write Single]および[Start/Stop Write All VCO Data]コマンドは、以下の手順を実行します。- [Write Single]をクリックするたびに、テーブル内の1行を実行します。現在の行は、右下の[Write Single Counter]の隣に表示されます。
- [Start/Stop Write All VCO Data]は、自動的に各行を実行しデータを書き込みます。このボタンをもう一度クリックするまで、書込み処理が繰り返されます。
温度のリードバック手順
チップ温度はシステム温度に関する情報を提供できます。チップ温度は温度補償にも使用できます。
ADF4371とADF4372はA/Dコンバータ(ADC)を内蔵しており、チップ温度を読み出すことができます。ADCクロック(ADC_CLK)は、位相周波数検出器クロック(fPFD)から次式によって生成されます。
ここで、
ADC_CLK_DIVはレジスタ0x0035に格納されている値。
ここで、
REFINはリファレンス周波数入力。
DはREFINダブラ・ビット。
Rはリファレンス分周係数。
Tはリファレンス2分周ビット(0または1)。
変換を完了するには有効なリファレンス信号が必要です。ADC_CLKを100kHzに設定し、次式でADC_CLK_DIVを計算します。
ADC_CLK_DIVが255より大きい場合は、255に設定します。
温度のリードバックに使用するビットは、ACEソフトウェアでは以下のとおりです。
- Register 0x0032、ビット2、ADC_ENABLE
- Register 0x0032、ビット3、ADC_CONVERSION
- レジスタ0x0033、ビット[7:5]、VCO_FSM_READBACK
- レジスタ0x006E、ビット[7:0]、VCO_DATA_READBACK[7:0]
- レジスタ0x0073、ビット2、ADC_CLK_DISABLE
温度をリードバックするには、以下の手順を実行します。
- ADC_ENABLEビットが有効になっていることを確認します。
- レジスタ0x0032のビット3をb1に設定することにより、ADC_CONVERSIONビットを有効にします
- 16 ADC_CLKサイクルを待機します。
- VCO_FSM_READBACKビットを0x05に設定します(既に設定されている場合は、この手順を省略します)。
- VCO_DATA_READBACK[7:0]ビットを読み出して、チップ温度(RAW_TEMP)に対応する未処理のADC出力をリードバックします。
- レジスタ0x0032のビット3をb0に設定して、ADC_CONVERSIONビットを無効にします。
- レジスタ0x0032のビット2をb0に設定して、ADC_ENABLEビットを無効にします。これにより、ADCクロックによって発生するスプリアスが防止されます。同様に、ADC_CLK_DISABLEビットでADCクロックを無効にすることもできます。
手順1と手順2を個別に実行します。ただし、手順6と手順7は同時に実行できます。
次式を使って、実際のチップ温度を摂氏(ºC)で計算します。
チップ温度 = −83.5ºC + RAW_TEMP