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.

AFE7700EVM: How to read the register space

Part Number: AFE7700EVM
Other Parts Discussed in Thread: AFE7700,

Hi Team,

I am using "device.readReg(register address) command to read the register. Is there some GUI where we can read all the register spaces mentioned in "sbau329_AFE77xx_TRM", can you please provide info regardng this?

Also I see that few register maps has common register addresses. How to differentiate the registers between different register map?

Example: 0x2Ch in PLL register map denotes "F[7:0]" and in JESD_SUBCHIP Register Map 0x2Ch is something else. Providing the screenshots from "sbau329_AFE77xx_TRM" for the reference.

Please help me with these queries

Thanks,

Jaswanth

  • Hi Jaswanth,

    There's no way to read-back all registers. If you're trying to export the register writes needed to configure the AFE7700, the EVM control software generates a register programming sequence file when a configuration script is run. This file should be used to configure AFE without using the EVM software. This is explained in SBAU333b_AFE77xx_user_guide.pdf, section 7.3:

    Different register pages can have register with same address. Based on which page is enabled, a particular register write goes to that page.

    Page enable register addresses are from 10h to 18h in Global register map.

    Regards,

    Vijay

  • Hi Vijay,

    Thank you for the reply.

    Could you please provide an example of how to read a register value (You can take the example I mentioned above)?

    Also, I have the following questions:

    1. There are a few parameters such as setupParams.selectedDut, AFE1, device1, and logDumpInst1 used in the basicBringup.py script. Can you point us to where can we find what are the configurations used here?

              

    2.  I have executed the latte scripts in the order of setup.py, devInit.py, and Bringup_repeaterMode.py. I saw a few failures in the log. How do I know that the repeater mode is working from this? (Providing the screenshot of the log for your reference)

    3. After I have executed the devInit.py, an "Interactive GUI" opened, is there any documentation about the info displayed in that GUI?

    Thanks,

    Jaswanth

  • Hi Vijay,

    Waiting for your response to the queries posted in the above comment, please provide the info whenever possible

    Thanks,

    Jaswanth

  • Hi Jaswanth,

    To read register 2Ch from JESD_SUBCHIP register map, first the JESD_SUBCHIP page should be selected. Then the 2Ch register can be read. Page should be unselected if next SPI write could be to a different page. You can execute below register commands in AFE7700EVM software to do this:

    device.writeReg(0x15,0x08)	# Select JESD_SUBCHIP page
    log(device.readReg(0x2C))	#Read register 2Ch from JESD_SUBCHIP page
    device.writeReg(0x15,0x00)	# Unselect JESD_SUBCHIP page

    For PLL register also page selection should be done the same way. However to access PLL registers, an additional function has to be executed to get PLL page access to SPI. Below commands can be executed in AFE7700EVM software for this:

    AFE.TOP.requestPllSpiAccess(1) # Take PLL page access through SPI
    device.writeReg(0x14,0x08)	# Select PLL0 page
    log(device.readReg(0x2C))	#Read register 2Ch from PLL0 page
    device.writeReg(0x14,0x00)	# Unselect PLL0 page
    AFE.TOP.requestPllSpiAccess(0) # Relinquish PLL page access through SPI

    Note that although individual registers can be accessed this way, it is not needed to do this. For AFE configuration register sequence, the text file saved by EVM software should be used. For any commands that should be run after initial configuration, C functions are given in C_funtions.zip file in application notes of secure folder. 

    There are a few parameters such as setupParams.selectedDut, AFE1, device1, and logDumpInst1 used in the basicBringup.py script. Can you point us to where can we find what are the configurations used here?

    You can ignore this. The code in this 'if' statement doesn't run.

      I have executed the latte scripts in the order of setup.py, devInit.py, and Bringup_repeaterMode.py. I saw a few failures in the log. How do I know that the repeater mode is working from this? (Providing the screenshot of the log for your reference)

    From the first error in log, "SPI not working", I see that EVM SPI is not functional. This can happen if hardware reset is not done before running the AFE configuration. You can press AFE RESET button (SW1) on EVM to hard rest AFE.

    After I have executed the devInit.py, an "Interactive GUI" opened, is there any documentation about the info displayed in that GUI?

    We don't support the interactive GUI for AFE7700. Please upgrade to latest version by following the instructions from Latte_Upgrade_Instructions.docx on secure folder (www.ti.com/mysecuresoftware). The interactive GUI is removed in latest version. 

  • Hi Vijay,

    Thanks a lot for the help!

    • I have a few queries for the repeater mode test.

                I have updated the libs to v2.2 and was able to see the status at the end of brinup_repeatermode.py execution as below for both DAC JESD-RX 0                    and DAC JESD-RX 1 link Status:

                CS State TX0: 0b00001010 . It is expected to be 0b00001010
                FS State TX0: 0b00000101 . It is expected to be 0b00000101

                In the script you shared, "sysParams.jesdProtocol" was configured as 0 which is for JESD204B. But I wanted to try the repeater mode in                  JESD204C. So I changed the  "sysParams.jesdProtocol" to 2 and executed the script in the simillar manner I did before asn I saw the status              at the end as 

                CS State TX0: 0b00001010 . It is expected to be 0b00001010

                BUF State TX0: 0b00001111 . It is expected to be 0b00001111

                is this expected? please confirm

    • What is the data being transmitted and received in the repeater mode?
    • What does CS state, FS state, BUF state mean (I was able to find the description for the fields of this register, but not the meaning of the register)

    Thanks,

    Jaswanth

  •           In the script you shared, "sysParams.jesdProtocol" was configured as 0 which is for JESD204B. But I wanted to try the repeater mode in                  JESD204C. So I changed the  "sysParams.jesdProtocol" to 2 and executed the script in the simillar manner I did before asn I saw the status              at the end as 

                CS State TX0: 0b00001010 . It is expected to be 0b00001010

                BUF State TX0: 0b00001111 . It is expected to be 0b00001111

                is this expected? please confirm

    Yes. As the state read from AFE is same the expected values shown in log, this is expected. 

    What is the data being transmitted and received in the repeater mode?

    The JESD204C interface output data from ADC channels is looped back as JESD204C input data of DAC.

    What does CS state, FS state, BUF state mean (I was able to find the description for the fields of this register, but not the meaning of the register)

    CS state is current extended multiblock alignment state; FS state is current Initial frame alignment state and BUF state is current elastic buffer (RBD) state. For stable link, these value should be read as expected value shown in log.

  • The JESD204C interface output data from ADC channels is looped back as JESD204C input data of DAC

    Okay, but what is the data ADC is transmitting? (is it any internal PRBS generator that sending the data?)

    Also can you please confitm if the lane rate is 9830.4 Mbps for JESD204B and 8110.08 for JESD204C?

    Note that although individual registers can be accessed this way, it is not needed to do this. For AFE configuration register sequence, the text file saved by EVM software should be used

    What will be name of this file and where will it be available?

    For any commands that should be run after initial configuration, C functions are given in C_funtions.zip file in application notes of secure folder. 

    To use the C functions in the python script, should be generate a shared library file (.so extension) or is there any other we can call these? (if there is a way we can use these functions without creating a ".so" file please provide an example)

  • Hi

    Just a friendly reminder, can you please reply for my query

    Thanks,

    Jaswanth

  • What will be name of this file and where will it be available?

    As given in '7.3 Save Register Commands' in EVM user's guide, Register commands to configure AFE77xx is saved in text format every time a bring-up is run. The file is saved in: ...\Documents\Texas Instruments\Latte\lib\configCustom2.txt

    To use the C functions in the python script, should be generate a shared library file (.so extension) or is there any other we can call these? (if there is a way we can use these functions without creating a ".so" file please provide an example)

    Unfortunately, the C functions cannot be run from Latte Python scripts. These are meant to be run on host processor controlling the AFE in user platform. 

    Regards,

    Vijay

  • Could you please answer the rest of the queries mentioned in my previous comment as well