AN-1441: AD9361 の LVDS インターフェースでの擬似ランダム・バイナリ・シーケンスを用いたキャリブレーション
はじめに
AD9361 は、3G/4G アプリケーション向けに設計された高性能、高集積の RF Agile Transceiver™(RF アジャイル・トランシーバー)です。AD9361 はプログラマビリティおよび広帯域性能を備えており、特に低消費電力で 200 kHz 未満から 56 MHz までのチャンネル帯域幅をサポートするため、広範囲のトランシーバー・アプリケーションに最適です。AD9361 は、スモール・セル・アプリケーション向けの新規設計で使用することを推奨します。このアプリケーションでは、キャリアを連続して配置しなければならないマルチキャリア・アプリケーションをサポートするために、広い帯域幅が必要です。
広い帯域幅をサポートするためには、トランスミッタ(Tx)出力の直線性、局部発振器(LO)の漏れ、および低電圧差動伝送(LVDS)インターフェースなどの要素を検討する必要があります。このアプリケーション・ノートでは、56 MHz の帯域幅をサポートするのに必要な LVDS インターフェースを中心に説明します。図 1 は、AD9361 と特定用途向け集積回路(ASIC)およびフィールド・プログラマブル・ゲート・アレイ(FPGA)との間を LVDS インターフェースで接続したものです。このインターフェースの詳細は、AD9361 のデータシートを参照してください。このアプリケーション・ノートでは、プロセスの違いや温度変化を克服し、このインターフェースの信頼性を向上させるために、擬似ランダム・バイナリ・シーケンス(PRBS)を用いたキャリブレーション方法に焦点を当てて説明します。
図 1. LVDS モードでの AD9361 のデータ経路
問題点の説明
このアプリケーション・ノートの目的上、RX_Dx (x = 0 ~ 5)、TX_Dx (x = 0 ~ 5)、DATA_CLK、RX_FRAME、TX_FRAME、および FB_CLK のすべての記号は、信号だけを意味することに注意してください。RX_Dx 信号は、RX_Dx_P ピンおよびRX_Dx_N ピン上の差動信号です。TX_Dx 信号は、TX_Dx_P ピンおよび TX_Dx_N ピン上の差動信号です。DATA_CLK 信号は、DATA_CLK_P ピンおよび DATA_CLK_N ピン上の差動信号です。RX_FRAME 信号は、RX_FRAME_P ピンおよび RX_FRAME_Nピン上の差動信号です。TX_FRAME 信号は、TX_FRAME_P ピンおよび TX_FRAME_N ピン上の差動信号です。また、FB_CLK信号は、FB_CLK_P ピンおよび FB_CLK_N ピン上の差動信号です。
LVDS タイミング・パラメータ
56 MHz の帯域幅をサポートするには、AD9361 の I/Q データ・レートを最大値の 61.44 MSPS に設定する必要があります。2T2R の 動作には 、 DATA_CLK 信号 を I/Q レー トの 4 倍(245.76 MHz)で動作させる必要があります。このレートでのLVDS データ・バスのタイミング制約を、表 1 に示します。
Parameter | Min | Typ | Max | Unit | Description |
tCP | 4.069 | ns | DATA_CLK のサイクル・タイム(クロック周期) | ||
tMP | 45% of tCP | 55% of tCP | DATA_CLK 信号および FB_CLK 信号のハイおよび/またはローの最小パルス幅(デューティ・サイクル歪み、周期ジッタ、サイクル間ジッタ、および半周期ジッタの影響を含む) | ||
tSTX | 1 | ns | AD9361 入力における FB_CLK 信号の立下がりエッジまでの TX_D5 ~TX_D0 信号および TX_FRAME 信号のセットアップ時間 | ||
tHTX | 0 | ns | AD9361 入力における FB_CLK 信号の立下がりエッジからの TX_D5 ~TX_D0 信号および TX_FRAME 信号のホールド時間 | ||
tDDRX | 0.25 | 1.25 | ns | DATA_CLK 信号から RX_D5 ~ RX_D0 出力信号までの遅延 | |
tDDDV | 0.25 | 1.25 | ns | DATA_CLK 信号から RX_FRAME 信号までの遅延 |
ベースバンド・プロセッサと接続した場合の影響
表 1 によると、クロック・レートを 245.76 MHz で動作させたとき、DATA_CLK のサイクル・タイムは 4.069 ns になり、最小パルス幅はデューティ・サイクルの 45 % (約 1.83 ns)になります。このパルス幅と比べて、DATA_CLK 信号から RX_D5 ~ RX_D0信号までの遅延、または RX_FRAME 信号までの遅延(tDDRX および tDDDV)は最大 1.25 ns になります。
AD9361 のタイミング・ダイアグラムを図 2 に示します。
図 2 .データ・ポートでのタイミング・パラメータ図—LVDS バスの設定(x は P ピンおよび N ピンを示す)
ベースバンド・プロセッサのタイミング・ダイアグラムを図 3に示します。
図 3. ベースバンド・プロセッサのタイミング・ダイアグラム
図 3 において、tTDD は AD9361 内の tDDRX(1.25 ns)、データがプリント回路基板(PCB)を通して伝搬する経路遅延差、および、ベースバンド・プロセッサ・デバイス内の tDDRX と同様の遅延差を含む全体の遅延差です。この値は最悪の場合、1.25 ns よりも大きくなります。例えば、この値を 1.5 ns と仮定すると、データのセットアップ(tST)およびホールド(tHT)のために残された時間はわずか 0.33 ns しかなく、困難な状況になります(図 3 を参照)。タイミングがベンチ上で 1 つの温度で満たされたとしても、プロセスの違いや温度の変化を克服して信頼性を維持することが、困難なためです。
このインターフェースを 245.76 MHz で実行可能にするには、AD9361 とベースバンド・プロセッサ間の遅延差(tTDD)を補正するためにキャリブレーションを推奨します。
PRBS キャリブレーションの詳細
遅延変動試験の結果
図 4 は、300 個のデバイスにおける DATA_CLK から RX_D0 ~RX_D5 の 6 つのペア、および RX_FRAME までの遅延変動を示しています。これらのデジタル信号では、遅延値が互いに大きく異なっています。最大遅延が 1.2 ns に近いのに対し、最小遅延はわずか 0.3 ns しかなく、この差は 0.9 ns になる可能性があります。
図 4. DATA_CLK 信号から RX_DATA 信号およびRX_FRAME 信号までの遅延分布
ベースバンド・プロセッサ内の遅延補償
図 4 は別の現象も示しています。例えば、最大遅延がほとんどRX_D4 で発生していて、1.2 ns に近いのに対し、RX_D1 では最大遅延が約 0.7 ns しかありません。RX_D4 と RX_D1 の差が0.5 ns であるため、RX_D1 で 0.5 ns の遅延を補償することが望ましく、補償すれば、RX_D4 は RX_D1 に遅延を揃えることができます。この方法は、RX_D5 ~ RX_D0 の中の他のペアおよび RX_FRAME、ならびに TX_D5 ~ TX_D0 にも適用できます。
例えば、ベースバンド・プロセッサ内で、図 4 に従ってこれらの補償を RX_D5 ~ RX_D0 にそれぞれ別々に高精度で適用できれば(これは RX_D5 および RX_D4 に対して −500 ps の遅延補償を行い、RX_D3、RX_D2 および RX_D0 に対して −200 ps の遅延補償を行うことになる)、図 5 に示すような結果が得られます。遅延が 0.2 ns と 0.7 ns の間にさらに集中して、性能が大幅に改善されています。
図 5. 補正後の遅延分布
キャリブレーションはデバイスごとに調整可能なため、1 個のAD9361 デバイスの RX_D5 ~ RX_D0 のペアと DATA_CLK との遅延差を精査することがより重要となります。図 6 の青のバーは、補償されていない 300 個のデバイスにおける、この種の遅延差の分布を示しています。ほとんどのデバイスの遅延差は0.5 ns に集中しており、0.7 ns が最大です。前のパラグラフで説明した同じ補償を適用すると、図 6 の緑のバーで示すように、この分布はより遅延差が小さいほうへ移動します。最大遅延差は 0.3 ns になり、0.4 ns 改善されています。
図 6. 1 個のデバイスについての遅延差分布
AD9361 の遅延補償
ベースバンド・プロセッサでは、RX_D5 ~ RX_D0 を経由した遅延差を補正できないことや、遅延を全く補償できないことがあります。この問題は、AD9361 内で補償を行うことで解決できます。すなわち、Rx 用のレジスタ 0x006 および Tx 用のレジスタ 0x007 を使用して、RX_D5 ~ RX_D0 信号と DATA_CLK 信号との間(または、TX_D5 ~ TX_D0 信号と FB_CLK 信号との間)の相対的な遅延を、最下位ビット(LSB)精度あたり約0.3 ns で調整します。この遅延補償では、すべてのデータ・ペアが同じ値だけ遅延することに注意してください。AD9361 は、データ・ペアの遅延を個別に調整することはできません。しかし、この種の補償によってもキャリブレーションは実行可能です。図 7 は、AD9361 のレジスタ 0x006 内で 300 ps の遅延が補正された場合の結果を示しています。図 7 の結果は、遅延差が主に 0.1 ns ~ 0.4 ns の範囲に分布し、最大遅延が 0.4 ns に低減していることを示しています。これにより、ベースバンド・プロセッサ内で、tST + tHT のタイミング(図 3 参照)にさらに余裕を持たせることが可能で(約 1.4 ns)、プロセスの違いや温度変化を克服して信頼性を確保できます。
図 7. AD9361 内で遅延を補正した場合の遅延差分布
PRBS キャリブレーション
AD9361 に内蔵された PRBS ジェネレータは、どのくらいの遅延補償が必要かを決定する方法を備えています。この PRBS は、AD9361 のインターフェースに挿入してベースバンド・プロセッサに伝送することができます。ベースバンド・プロセッサがこの既知のシーケンスを受信すると、PRBS チェッカーを実行してビット誤り率(BER)を計算します。受信した PRBS に誤りが発生していなければ、インターフェースは正常に動作しています。一方、誤りが発生していれば、BER が所望の閾値を下回るまで、AD9361 内またはベースバンド・プロセッサ内の遅延補償ブロックを調整します。
AD9361 は、以下に示すような 16 次の多項式を用いた 16 段、14 タップの PRBS ジェネレータを内蔵しています。
PRBS の生成および多項式の詳細については、AD9361 のレジスタ・マップ(レジスタ 0x3F4)を参照してください。
図 8 に示す上記のキャリブレーション・シーケンスに従うと、表 2 に示すようなマトリックスを作成することができます。表 2において、P は PRBS 試験に合格したことを示し、F は不合格であることを示します。この例では、レジスタ 0x006 の値は 0x96、0xA7、0xB8、0xC9、または 0xDA です。
図 8. キャリブレーション・シーケンス
Register 0x006[7:4] BitValues | Register 0x006[3:0] Bit Values | |||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | |
0 | P | F | F | F | F | F | F | F | F | F | P | P | P | F | F | F |
1 | P | F | F | F | F | F | F | F | F | F | F | F | F | F | P | P |
2 | P | P | F | F | F | F | F | F | F | F | F | F | F | F | F | P |
3 | P | P | P | F | F | F | F | F | F | F | F | F | F | F | F | F |
4 | P | P | P | P | F | F | F | F | F | F | F | F | F | F | F | F |
5 | F | P | P | P | P | F | F | F | F | F | F | F | F | F | F | F |
6 | F | P | P | P | P | P | F | F | F | F | F | F | F | F | F | F |
7 | F | F | P | P | P | P | P | F | F | F | F | F | F | F | F | F |
8 | F | F | F | F | P | P | P | P | F | F | F | F | F | F | F | F |
9 | F | F | F | F | P | P | P2 | P | P | F | F | F | F | F | F | F |
a | F | F | F | F | F | P | P | P2 | P | P | F | F | F | F | F | F |
b | F | F | F | F | F | F | P | P | P2 | P | P | F | F | F | F | F |
c | F | F | F | F | F | F | F | P | P | P2 | P | P | F | F | F | F |
d | F | F | F | F | F | F | F | F | P | P | P2 | P | P | F | F | F |
e | F | F | F | F | F | F | F | F | F | P | P | P | P | P | F | F |
f | F | F | F | F | F | F | F | F | F | F | P | P | P | P | P | F |
1 P は PRBS 試験に合格したことを示し、F は PRBS 試験に不合格であることを示します。 2 最適な遅延設定値。これらの値は、両方向に 2 LSB (約 0.6 ns)以上の保護余裕を持ち、一般にプロセスの違いや温度変化の範囲に対して十分な余裕があります。 |
レジスタ 0x006 上のレシーバー(Rx)遅延に適切な設定値を選択した後、同一の方法およびシーケンスを使用して、Tx LVDS経路上でキャリブレーション・ルーチンを実行することができます。このとき、Tx LVDS 経路でキャリブレーションを行うと、擬似ランダム・バイナリ・シーケンスがベースバンド・プロセッサ内で生成され、AD9361 の Tx インターフェースに伝送することができます。AD9361 の内部回路は TX_D5 ~ TX_D0 をRX_D5 ~ RX_D0 経路にループさせ、その後、このデータをベースバンド・プロセッサに送り戻すことができます。ベースバンド・プロセッサでは、PRBS チェッカーが元のシーケンスと比較し、レジスタ 0x007 内で遅延を調整する方法を決定して、表 2 に示したのと同様のマトリックスを作成します。
まとめ
本アプリケーション・ノートでは、245.76 MHz のデータ・クロック(最大帯域幅 56 MHz)をサポートするために、LVDS 経路遅延に対する PRBS キャリブレーションを採り入れています。その結果、キャリブレーションを Rx データで実行すると、データ・ペアの遅延変動が 0.3 ns(ベースバンド・プロセッサ内での補償)または 0.4 ns (AD9361 内での補償)まで大幅に改善されています。
どちらの補償によっても、高速 LVDS インターフェースは余裕を持って動作し、温度変化やプロセスの違いを克服できます。この方法は、Tx データの遅延キャリブレーションにも有効です。
このアプリケーション・ノートに示したのは AD9361 での一例ですが、これにより、キャリブレーション・シーケンスが実行可能であることが立証され、量産システムで実行されています。