I'm trying to get an ADAU1452 running in a very simple setup using SigmaStudio 4.4.
It's basically the following:
I2S (48kHZ, 32bit) -> SDATA_IN0
SPDIF -> SPDIF_RX
The DSP is fed with a static 24.576MHz clock and I configured ASRC0 to pull data from the SPDIF receiver. Everything compiles and seems to flash fine. When reading the ASRC_RATIO register I can see it being 0x1000 when send 48kHZ to SPDIF and 0x0eb3 when sending 44100kHz, which looks ok to me. Also the SPDIF_LOCK_DET register correctly switches between 0 and 1 if I plug/unplug the SPDIF input.
Now I've drawn a schematic with a AsrcIn block and a SDATA 0-15 in block. I connected DSP readback elements to channel 0 of both and am sending sine value from a tone generator to both the SPDIF as well as the I2S/SDATA_IN0. But no the DSP readback does always return 0, never anything else.
I'd suspect that I've missed to enable something I just can't figure out what it is. Please see the following SigmaStudio project for reference: https://we.tl/t-VepxeqdtQD. I'd be glad to get some thoughts on this :)
Just in case someone else sees a similar behavior: I had the I2C running at a low speed of 50kHz. While there were no I2C errors, the ADAU1452 somehow seems to have some issues with that. After changing I2C bus speed to 400kHz everything works as expected.
That is interesting. I do not think there is a minimum time within reason. (there will be a timeout for a NAK at some point).
Usually I run the port at ~ 100kHz with no problems. The 400kHz is the max.
So what are you doing? Is this to control the object running in the DSP or to load in the program? There must be something else going on...