Loading dsp data using esp32 holds i2c lines low
On ESP32 I program the ADAU1452 DSP over a shared I2C bus during startup (bulk writes of the DSP image). During this DSP load phase I have observed, on a logic analyzer that both I2C lines (SCL and SDA) are held low for random time intervals during different write transactions where one of them is ~350 ms. While this happens the bus is effectively stalled and one of our i2c device gets disrupted.
I need guidance on understanding why the dsp is holding the bus low for hundreds of milliseconds. I have observed that the bigger timeout i-e~350ms happens when writing program data to address 0xC0000. While there are other writes that also have these delays in getting the ack back they are relatively small intervals usually < 50ms.
I have attached below the image highlighting the delay.
Can anyone help on how to resolve this or why this happens?
Regards.
Abdullah
Audio Signal Processors
adau1452
software
SigmaDSP Audio Processors
Hello Abdullah,
We are trying to simulate it; we will get back to you.
Thanks for your patience.
Regards,
Harish
Hi Harish
Were you able to reproduce the above behavior ?
Looking forward to your reply.
Regards
Abdullah
Hello Abdullah,
I programmed the Sigma-DSP from an STM32 microcontroller over I2C, and I did not observe any line pull down issues on my side Please refer to the probe image below
If possible, please share your sigma studio project. I will try to boot it on my device and check what happens
Regards
Aravindh
Hi Aravindh,
Would it be possible to do a private ticket? because then i could share our DSP project with you.
Regards
Abdullah
Hello Abdullah,
Just send Aravindh a private message but make sure to also send him a friend request. Otherwise, he will not be able to respond.
There is a chance you might get an error message saying he cannot receive your message. Then just send him a friend request and then after he accepts you will be able to send private messages.
I have set my account to accept a message from anyone but the default for the forum is only to accept messages from friends.
This is why people send me a message and then I cannot respond because of their settings. So send a friend request.
Thanks,
Dave T
If you used the analog example, I might have noticed something. In the delay block, pointers to data 2 and data 1 are used; it should correctly be data 1 and data 0. Who knows what's in your memory cell?
Please log in to reply.

