ΣSigmaStudio Ask AI Русский Log in

ADAU144X Read Program Data with I2C

SigmaDSP & SigmaStudio vas_monitor Oct 24, 2014 00:00 8 replies Original on forum ↗
Subscribe
vas_monitor Question
Oct 24, 2014 00:00

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

lallison Reply
Oct 26, 2014 00:00

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

ADIApproved Reply
Dec 3, 2014 00:00

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.

JohnTo Reply
Dec 4, 2014 00:00

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

JohnTo Reply
Dec 5, 2014 00:00

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

20a040e1076d4b24f89dbac0997e6f3f.png
20a040e1076d4b24f89dbac0997e6f3f.png
20a040e1076d4b24f89dbac0997e6f3f.png-764x239.png
20a040e1076d4b24f89dbac0997e6f3f.png-764x239.png
4f8098503646223d50db65c8af6c370f.png
4f8098503646223d50db65c8af6c370f.png
4f8098503646223d50db65c8af6c370f.png-755x134.png
4f8098503646223d50db65c8af6c370f.png-755x134.png
243f4f06be2c0112a5f73982ec2b2480.png
243f4f06be2c0112a5f73982ec2b2480.png
243f4f06be2c0112a5f73982ec2b2480.png-767x94.png
243f4f06be2c0112a5f73982ec2b2480.png-767x94.png
f5546a6fed78c4cd1ef869a44ae2f0bc.png
f5546a6fed78c4cd1ef869a44ae2f0bc.png
f5546a6fed78c4cd1ef869a44ae2f0bc.png-764x85.png
f5546a6fed78c4cd1ef869a44ae2f0bc.png-764x85.png
210bb3d68e243a673922fb15fb73eb20.png
210bb3d68e243a673922fb15fb73eb20.png
210bb3d68e243a673922fb15fb73eb20.png-764x85.png
210bb3d68e243a673922fb15fb73eb20.png-764x85.png
vas_monitor Reply
Dec 18, 2014 00:00

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.

vas_monitor Reply
Dec 18, 2014 00:00

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

JohnTo Reply
Jan 5, 2015 00:00

Hi Vasilis,

Were you able to resolve the reading of program memory (starting at address 0x2000) using the ADAU144x eval board?

-JT

EZAdministrator Reply
Aug 2, 2018 00:00

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