非線形APD応答の補償
要約
光レーザモジュールでは、APD (アバランシェフォトダイオード)の非線形応答の補償が必要です。このアプリケーションノートでは、この動作を補償するための、マキシムの光コントローラの設計方法について説明します。このアプリケーションノートでは、DS1875のSFPコントローラを実例のデバイスとして利用しています。
APDの特性
光モジュールは、高感度アプリケーション用のAPD (アバランシェフォトダイオード)ベースの光レシーバを使用しています。
APDから受信するフィードバックは非線形(平均受信電力)になります。この非線形性がレーザモジュールの良好な制御の実現を困難にしています。標準的なAPD非線形性の特性を図1に示します。
図1. 非線形応答を示す標準的なAPDの性能
適正な動作を得るには、この非線形動作を補償する必要があります。この補償によって、SFPコントローラモジュールへの線形フィードバックが可能になり、システムの安定性を向上させることができます。補償応答は図2のように示すことができます。
図2. これは予想される標準応答を示した平均曲線です。生産中の応答における小さな変動は補償することができません。
RSSIを使用した非線形性の補正
DS1875などのマキシムの光コントローラは、APDの非線形動作を補償することができます。
DS1875の入力チャネルの1つ(MON3)には、受信電力の非線形を補正するために2つの範囲(コースとファイン)があり、それぞれ独立したスケールとオフセットを備えています。この補正は、非線形APDのダイオード応答の区分線形近似によって行われます。
2つの独立した範囲を提供することに加えて、DS1875はファイン範囲でのADC結果を右シフト処理することができます。入力信号に全入力範囲が含まれていない場合でも、右シフト処理によって解像度を向上させることができます。
ヒステリシスの重要性
DS1875は、所定のクロスオーバーポイントの入力信号の大きさに応じて、自動的に2つの範囲を切り替えます。ヒステリシスはクロスオーバーポイントで提供され、コース範囲からファイン範囲に移るときに変化します。これによって、デバイスが範囲間で切り替わって不安定にならないようにします。
ファイン範囲に応じた右シフト処理の設定によって、クロスオーバーポイントは異なります。表1は、さまざまな右シフト処理の設定に応じてクロスオーバーポイントがどのように変化するかを詳細に示しています。DECの列からヒステリシスの列への値の変化に留意してください。
表1. 右シフト処理によるクロスオーバーポイントの設定
Right Shift | HEX | DEC | Hysteresis |
0 | FFF8 | 65528 | 61440 |
1 | 7FFC | 32764 | 30720 |
2 | 3FFE | 16382 | 15360 |
3 | 1FFF | 8191 | 7680 |
4 | FFF | 4095 | 3840 |
5 | 7FF | 2047 | 1920 |
6 | 3FF | 1023 | 960 |
7 | 1FF | 511 | 480 |
DS1875の較正
DS1875のMON3入力の2つの範囲は、較正される必要があるため、必要なAPD応答を正確に近似します。以下のプロセスを使用して、2種類の範囲についてスケールとオフセットの値を特定します。
- ファイン範囲とコース範囲の有効な応答が線形になるように各範囲が設定されていることを確認します。工場出荷時の設定値は、3のファイン範囲用の右シフトによって応答が線形になるように設定されています。
- 強制的に2つの入力(「a」 dBと「b」 dB)をMON3Pに対して加えます。工場較正を使用してMON3のディジタル値を測定します。2つの入力は、コース範囲が「a」 dBを、ファイン範囲が「b」 dBを使用するようにあらかじめ設定されています。任意の2つのポイントを、1つはファイン範囲にもう1つはコース範囲に設定することができます。特定された誤差によっては、これらの測定値を再評価して最適な区分線形近似を得る必要があります。
- 手順2で得られた値は、APDの非線形応答を補償するための所望の値とは異なります。ファインおよびコースのスケール値とオフセット値は、所望の値に正しく一致するようにすべて較正する必要があります。
- 2つの測定値を「x」の値とします。2つのポイントの所望の出力を「y」の値とします。
- ADCのファイン範囲のスケールとオフセットを計算します。この計算には2つのポイントを使用します。1つ目のポイントは、最初の計算(手順2)で測定したb dB入力に対応するx値とy値(x1, y1)になります。2つ目のポイントは、(0, 0)ポイントの(x2, y2)になります。0, 0ポイントは、2つのデータポイントだけでスケールとオフセットのトリミングを可能にする仮定のものです。(0, 0)が所望の応答に適していない場合は、別のデータポイントを使用するようにしてください。
計算は、次式で行います。
y = m_fine × x + c_fine
ここで、m_fineはスケールで、c_fineはオフセットです。ポイント(x2, y2)を使用すると、以下が得られます。
c_fine = 0
ポイント(x1, y1)を使用すると、以下が得られます。m_fine = y1/x1
- 所望の応答に最も近い必要な右シフトを求めます。所望の出力(ポイントb dBのyの値)と表1のDECの値とを比較します。所望の応答に最も近いDECの値をxの値として使用する必要があります。対応する所望の(y)の値は、上記のm_fineとc_fineの値を使用して計算する必要があります。このポイントは、(x2, y2)になります。
- データポイントとしての(x2, y2)のクロス値とb dBのポイント(x3, y3)の値を使用し、次式を用いてADCのコース範囲のスケールとオフセットを計算します。
y = m_coarse × x + c_coarse
- DS1875内の対応するレジスタにオフセット(c_fineとc_coarse)をロードします。これらのオフセット値が負になる場合は、2の補数値がレジスタに設定されることに留意してください。
- 2つの入力(a dBおよびb dB)に対する所望の値を読み取るには、ここでファインとコースのスケール値を個別にトリミングする必要があります。
- 修正した応答(スケールとオフセットの新しい値を使用)と所望の応答に基づいて、誤差曲線を生成することができます(図3)。誤差曲線は、2つのポイント(aとb)の位置に応じて変更することができます。1つ目のローブはファイン範囲の誤差を示し、2つ目のローブはコース範囲の誤差を示しています。ポイントを変更することで、エンドユーザの要求に合わせて誤差の大きさを操作することができます。
結果
ファインとコースの新しい値を使用して、デバイスが所望の応答を近似するかどうかを確認することができます。図3は、図2の応答の結果を示しています。
図3. この誤差曲線は、修正した応答(スケールとオフセットの新しい値を使用)と所望の応答を示しています。
所望の応答と計算した応答との誤差を図4に示します。
図4. 所望の応答を計算した後の誤差