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.

AFE7900EVM: Unknown registers on AFE7900 chip

Part Number: AFE7900EVM
Other Parts Discussed in Thread: AFE7900

Hello,

I have been working with an AFE7900EVM board and a zynq FPGA. I have managed to get the combination working using the latte tool to configure the AFE7900EVM module, however I need to write some bringup code that can run on our FPGA board directly, so I have been trying to understand how latte is configuring the device so that we can replicate it.

I have completed the code to configure the LMK clock chip, however I have run into an issue with the AFE7900 chip.

The problem is that latte seems to be configuring registers that are not documented in the SBAU337 Register set documentation so I am not sure what is being done. An example of this is in the code wakeup device subroutine. The output from latte is as follows:

Entered: wakeupDevice of class afe78xxLibrary
Writing into 0x0015 value 0x80
Writing into 0x0191 value 0x00
Writing into 0x0231 value 0x00
Writing into 0x02d1 value 0x00
Writing into 0x0371 value 0x00
Writing into 0x042a value 0x00
Writing into 0x04e2 value 0x00
Writing into 0x059a value 0x00
Writing into 0x0652 value 0x00
Writing into 0x070a value 0x00
Writing into 0x07c2 value 0x00

The first line makes sense as it is switching to the TIMING_CONTROLLER page in the register set However after that it starts writing values to 0x191, 0x231, 0x2d1 etc all of which are outside of the listed registers for the TIMING_CONTROLLER page. So I am not sure what it is doing here.

A similar thing happens in the next section (overrideTdd):

Entered: overrideTdd of class TopLib
Writing into 0x00ec value 0x01
Writing into 0x00f4 value 0x01
Writing into 0x00e4 value 0x01
Writing into 0x00ed value 0x00
Writing into 0x00f5 value 0x00
Writing into 0x00e5 value 0x00
Writing into 0x0015 value 0x00
Writing into 0x0015 value 0x40
Writing into 0x0190 value 0x03
Writing into 0x0190 value 0x01
Writing into 0x0015 value 0x00

All of the registers being written to whilst still in the TIMING_CONTROLLER page are not listed in the documentation, so I cannot work out what this is doing.

Similar things seem to be happening on the PLL page later on. Could someone point me in the right direction here? Am I missing a key piece of documentation, or is there something else that I have missed?

Thanks

-Paul

  • Hi Paul,

    There are many registers that need to be programmed during bring-up that not documented in the register set document (TRM). For a device of this complexity reading through the config file line by line is not possible. This is why configuration files auto-generated by the Latte GUI are used to configure the AFE in a user's system. The TRM mentions some top-level registers and macros that might need to be used after device initialization (using GUI generated config file) is done.

    To generate the configuration file that contains the reads and writes needed to program the AFE you have to set 'logDumpInst.logFormat=0x1'. This will generate a config file in the following location, Documents\Texas Instruments\Latte\lib, after running the Latte script. Section 3 of the AFE79xx Latte User's Guide covers more on the log file generation. 

    Regards,

    David Chaparro

  • Thanks David,

    Are there any command line linux version of the latte bringup scripts available that would be suitable to run on an embedded OS?

    I have started to write my own, but it is a fair amount of work and I am sure others would have had to do this already.

    -Paul

  • Hi Paul,

    I do not know of any command line linux version of the latte bring up scripts. I can check with my team but I do not expect us to have anything available. 

    Regards,

    David Chaparro