This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AFE7920: afe7920 jesd link up issue

Part Number: AFE7920

Tool/software:

We are using the Latte release with API version 2.5. Our system is based on a custom board integrating the AFE7920 and Xilinx JESD204B IP, with the JESD interface configured in 8B/10B mode. While the JESD link can eventually achieve link-up, we observe that performing the AFE initialization only once often results in the JESD link failing to come up. The link is typically established only after performing an AFE reset followed by a full reinitialization. However, this process introduces significant latency due to the long AFE initialization time.
No errors or warnings are observed during the AFE initialization process.
Is there a method to reliably bring up the JESD link without requiring multiple AFE resets and initializations?

and How can I read the temperature sensor of the AFE7920?

  • Hello,

    1. After running your initialization bring-up, please try using the command "AFE.adcDacSync(1)". If this does not work, please share (copy/paste) the information from the Log section in Latte after completing the initialization with the links established.

    2. You can use the code below to read out the temperature. Please note that the absolute temperature value has some offset, but the relative temperature values are correct. This means that, if the temperature sensor reads out 80, this does not mean that the temperature of the device is 80 °C, but it is some temperature x °C. If the temperature sensor then reads out 90, the device temperature is (x+10) °C.

    device.writeReg(0x18, 0x40) # open the page
    Temp_0 = device.readReg(0x259) # read temp 0
    Temp_1 = device.readReg(0x258) # read temp 1
    device.writeReg(0x18, 0x0) # close the page
    
    # Temp_0/1 are MSB/LSB. 
    temperature=Temp_1 + Temp_0*2**8
    if temperature > 32768:
    	temperature = temperature-65536
    	
    info(temperature) # read out temperature

    Thanks! 

    Mirana

  • hello, mirana

    After reset the JESD IP and setting it to 8B/10B mode, I called the setGoodRbd function. With this approach, the link comes up reliably without needing to initialize the AFE multiple times. Could this method cause any issues? If the situation I described occurs, what is the recommended approach from TI?

  • Hi Jaesun,

    That method should not cause any issues.  However, you can also change the RBD value set in your configuration file to avoid manually setting a good RBD every time you initialize. I recommend using the command CAFE.getGoodRbdRange() to find the ideal RBD range for your system. I've included the C API parameters below for reference. Once you know the range, you can set the RBD in your configuration file to the middle value using the parameter sysParams.jesdRxRbd. The RBD value range is 0-64. 

    Please note that RBD range is "circular", meaning that your minimum value could appear "high" and your maximum value could appear "low".  For example, the ideal RBD range could be 60-4, where the minimum value is 60 and maximum value is 4. In that case, you would choose 0 as the RBD value set in your configuration.

    I've also included a TI application note for your reference describing RBD more in depth. Please let me know if you have any questions!

    Determining Optimal Receive Buffer Delay in JESD204B and JESD204C Receivers

    Thanks! 

    Mirana