Eタイル・トランシーバーPHYユーザーガイド

ID 683723
日付 12/09/2021
Public
ドキュメント目次

D. ミッションモードからチャネル保護モードへのリコンフィグレーションの詳細手順

チャネルを保護モードにリコンフィグレーションする場合は、次のシーケンスを使用してください。
  1. ミッションモードにPAM4を使用している場合は、Preserve Unused Transceiver Channelsをオンにします。
  2. tx_reset または rx_reset をアサートします。
  3. tx_ready または rx_ready がデアサートするのを待ちます。
  4. PMA属性コード0x0001を使用してPMAをディスエーブルします。
    1. 0x8A[7] = 0x1を書き込み、PMA属性ステータスフラグ (前の属性の0x8A[7]) がクリアされるようにします。これは、レジスター0x84 ~ 0x87に書き込み、新しいPMA属性をロードする前に行います。
    2. 0x84[7:0] = 0x00を書き込みます。
    3. 0x85[7:0] = 0x00を書き込みます。
    4. 0x86[7:0] = 0x01を書き込みます。
    5. 0x87[7:0] = 0x00を書き込みます。
    6. 0x90[0] = 1'b1を書き込みます。
    7. 0x8A[7] を読み出します。これは1である必要があります。
    8. 0x8B[0] を読み出します。0に変わるまで行います。
    9. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
    10. tx_pma_ready または rx_pma_ready がデアサートするのを待ちます。
  5. PMA内の内部コントローラーをリセットします。
    1. 0x200[7:0] = 0x00を書き込みます。
    2. 0x201[7:0] = 0x00を書き込みます。
    3. 0x202[7:0] = 0x00を書き込みます。
    4. 0x203[7:0] = 0x81を書き込みます。
    5. 0x80になるまで0x207を読み出します。これは、動作が正常に完了したことを示します。
  6. TXおよびRXエンコーディングをNRZモードに設定し、TXおよびRX幅を32ビットに設定します。
    1. 0x84[7:0] = 0x55を書き込みます。
    2. 0x85[7:0] = 0x00を書き込みます。
    3. 0x86[7:0] = 0x14を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0に変わるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  7. TXボーレートを設定します。
    1. 目的のTXリファレンス・クロック乗数を計算して、2500/refclock_freq_in_MHz に最も近い有効な値にします。例えば、リファレンス・クロック周波数が156.25MHzの場合、算出されるリファレンス・クロック乗数は16になります。これは、有効な乗数です。同じ値をTXおよびRXリファレンス・クロックの乗数に対して使用します。
    2. 0x84[7:0] = 0x10を書き込みます (この例では、10進数の16に対するものです)。
    3. 0x85[7:0] = 0x10を書き込みます。
    4. 0x86[7:0] = 0x05を書き込みます。
    5. 0x87[7:0] = 0x00を書き込みます。
    6. 0x90[0] = 1'b1を書き込みます。
    7. 0x8A[7] を読み出します。これは1である必要があります。
    8. 0x8B[0] を読み出します。0に変わるまで行います。
    9. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  8. RXボーレートを設定します。
    1. 目的のTXリファレンス・クロック乗数を計算して、2500/refclock_freq_in_MHz に最も近い有効な値にします。例えば、リファレンス・クロック周波数が156.25MHzの場合、算出されるリファレンス・クロック乗数は16になります。これは、有効な乗数です。同じ値をTXおよびRXリファレンス・クロックの乗数に対して使用します。
    2. 0x84[7:0] = 0x10を書き込みます (この例では、10進数の16に対するものです)。
    3. 0x85[7:0] = 0x10を書き込みます。
    4. 0x86[7:0] = 0x06を書き込みます。
    5. 0x87[7:0] = 0x00を書き込みます。
    6. 0x90[0] = 1'b1を書き込みます。
    7. 0x8A[7] を読み出します。これは1である必要があります。
    8. 0x8B[0] を読み出します。0に変わるまで行います。
    9. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  9. PRBSコントロールをPRBS7に設定します。
    1. 0x84[7:0] = 0x20を書き込みます。
    2. 0x85[7:0] = 0x01を書き込みます。
    3. 0x86[7:0] = 0x02を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0に変わるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  10. PMAを内部シリアル・ループバックに設定します。
    1. 0x84[7:0] = 0x01を書き込みます。
    2. 0x85[7:0] = 0x01を書き込みます。
    3. 0x86[7:0] = 0x08を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0に変わるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
  11. チャネル保護モードに入る前に、ミッションモードのチャネルに対するミッションモードの設定項目を保存します。このとき使用する値は、アドレス0x05、0x07、および0x38からのものです。
  12. トランシーバー・インターフェイスDCCをセットアップします。read-modify-writeを使用して、ビット1:0のみを変更します。
    1. 0x38[1:0] = 2'b01を書き込みます。
  13. RXクロックを設定します。read-modify-writeを使用して、ビット7と1のみを設定します。
    1. 0x07[7] = 1'b0を書き込みます。
    2. 0x07[1] = 1'b0を書き込みます。
  14. TXクロックを設定します。read-modify-writeを使用して、ビット7:2のみを設定します。
    1. 0x05[7:2] = 6'b000010を書き込みます。
  15. PMA属性コード0x0001でPMAのTXおよびRXをイネーブルします。これにより、このチャネルのTXドライバーがディスエーブルされます。
    1. 0x84[7:0] = 0x03を書き込みます。
    2. 0x85[7:0] = 0x00を書き込みます。
    3. 0x86[7:0] = 0x01を書き込みます。
    4. 0x87[7:0] = 0x00を書き込みます。
    5. 0x90[0] = 1'b1を書き込みます。
    6. 0x8A[7] を読み出します。これは1である必要があります。
    7. 0x8B[0] を読み出します。0に変わるまで行います。
    8. 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
    9. tx_pma_ready または rx_pma_ready がアサートするのを待ちます。
  16. 初期アダプテーションを実行します。