SBAA543 July   2022 AFE7900 , AFE7920 , AFE7950

 

  1.   Abstract
  2.   Trademarks
  3. 1Introduction
  4. 2JESD204C
    1. 2.1 Basic Review of JESD204C Protocol
    2. 2.2 Finding Optimal RBD for JESD204C
  5. 3JESD204B
    1. 3.1 Basic Review of JESD204B Protocol
    2. 3.2 Finding Optimal RBD for JESD204B
  6. 4Setting RBD in AFE79xx
    1. 4.1 Register Map
    2. 4.2 Setting RBD in Configuration Sequence
    3. 4.3 Finding Optimal RBD using CAPI
      1. 4.3.1 Use Case with 1 JESD Links
      2. 4.3.2 Use Case with 2 JESD Links
      3. 4.3.3 Use Case with 3 JESD Links
      4. 4.3.4 Use Case with 4 JESD Links
  7. 5Fixing Potential Alarms Related to RBD
    1. 5.1 RBD Alarm
    2. 5.2 SoEMB Close to LEMC Edge
    3. 5.3 Start of ILA Close to LMFC Edge
  8. 6References

Use Case with 2 JESD Links

When there are two links, top JESD uses one link and bottom JESD uses another link. For the first link, the registers in page 0x16[2] are used and second link uses page 0x16[3].

  1. For the first link, based on the lane0_f_counter_all_lane_ready in the first page, link0_rbd_m1 is set in the first page.
  2. Similarly, for the second link, based on the lane0_f_counter_all_lane_ready in the second page, link0_rbd_m1 is set in the second page.

Example:

  1. Link 1Read Page 0x16[2] : lane0_f_counter_all_lane_ready = 16 for link 1
    getAllLaneReady(afeInst,0,&laneAllReady)
    laneAllReady = 16 for link 1
    Link 2 Read Page 0x16[3] : lane0_f_counter_all_lane_ready = 36 for link 2
    getAllLaneReady(afeInst,2,&laneAllReady)
    laneAllReady = 36 for link 2
  2. Obtain valid range of RBD.
    Link 1getGoodRbdRange(afeInst,0,&rbdMin,&rbdMax)
    rbdMin = 17
    rbdMax = 35 (Based on skew = 3, rbdMax = min(allLaneReady) + BufferDepth-10 = 16 - 3 + 32 - 10)
    Link 2getGoodRbdRange(afeInst,2,&rbdMin,&rbdMax)
    rbdMin = 37
    rbdMax = 55 (Based on skew = 3, rbdMax = min(allLaneReady) + BufferDepth - 10 = 36 - 3 + 32 - 10)
  3. In this example, optimal value is chosen as rbdMin + 3 = 20 for link1 and 40 for link 2. In cases with multiple AFEs on a PCB, valid ranges can be looked at for all AFEs and optimal RBD can be chosen.
  4. The optimal RBD is set and adcDacSync is run.
    Link 1
    setManualRbd(afeInst,0,20)
    Link 2
    setManualRbd(afeInst,2,40)
    adcDacSync(afeInst,1)
  5. Read back link0_sysref_cnt_on_release_opportunity from the first page for link 1 and second page for link 2.
    Link 1getSysrefCntOnReleaseOpp(afeInst,0,&readVal)
    If readVal=1, optimal RBD is chosen as (20+1)%64 = 21
    Link 2getSysrefCntOnReleaseOpp(afeInst,2,&readVal)
    If readVal=1, optimal RBD is chosen as (40+1)%64 = 41
  6. In the config, value of 21 is set for the link0_rbd_m1 in the first page and value for 41 is set for the link0_rbd_m1 in the second page.

    In Latte, sysParams.jesdRxRbd is set to [21,21,41,41]