ADAU144X Read Program Data with I2C
Hello, I'm using a ADAU1446 DSP. I can program it using I2C and a PIC32 mcu, it works correctly. When I'm trying to read back the data, it fails for the program data. I can read all registers from the DSP but not the program data, it returns 0x00. Anyone has an idea about it?
Audio Signal Processors
adau1446
SigmaDSP Audio Processors
Hi Vasilis,
Thank you for your inquiry. You have asked your question in the Help space for learning how to use EngineerZone. For product support please ask questions in the applicable Product community. A list of communities with links is available on the home screen of EngineerZone.
I am moving your question to the Processors and DSP community for assistance.
Regards,
Lisa
Hi,
I have moved this discussion from the Processors and DSP community to the SigmaDSP Processors and SigmaStudio Development Tool community. Please continue the discussion here.
Regards,
Craig.
Hello Vasilis,
I will look into your issue tomorrow and try to capture some I2C reads using the SigmaStudio/USBi when I do some testing on the ADAU144x eval board.
Question: Do the I2C reads behave differently for program memory when you stall the core (Disable the Core Run bit 0 in the Core Run Register Address 0xE228)?
-JT
Hi Vasilis,
The fact you can read I2C registers and parameter registers is certainly promising. Are you readying from the correct on-chip address within the range of starting at 0x2000 to 0x3000?
I took a look at the the EVAL-ADAU144x evaluation board in I2C host mode and didn't seem to have any problems reading the downloaded program memory contents using the SigmaStudio's Sequence Window. If you drag and drop the program write block used in the download of the application (Link-Compile-Download) over to the Sequence window, change the mode to read, you should be able to capture the data back in the Capture Window output (see below):
Let's compare the datasheet timing (Figures 17 and 18) to what SigmaStudio's USBi generates for reading program memory. In this case it is a burst transfer:
First the host generates the chip start address with the R/_W bit set to zero, then the subaddress of 0x2000 to set up the internal memory access to program memory. The slave holds off for 1.76 msec. When the slave is ready, the USBi master initiates a block read sequence (R/_W bit set high).
-JT
Hi John,
thanks for the reply. I haven't tried to read back with the Core Run bit disabled. I'll try it the following days.
Hi John,
I'm using the ADAU1446 with a PIC32 and I'm doing the following "Write->Read->Compare" in order to verify that everything is written properly. All registers are verifed correctly, except when I read from register 0x2000. (I attempt to read around 3,000 bytes starting from address 0x2000). The registers (starting at 0x2000) are written properly but I cannot read them back. I'll try to use the EVAL-ADAU144x the following days. Thanks
Hi Vasilis,
Were you able to resolve the reading of program memory (starting at address 0x2000) using the ADAU144x eval board?
-JT
This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.
Thank you,
EZ Admin
Please log in to reply.









