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

I2C multi-master with USBi and microcontroller

SigmaDSP & SigmaStudio wygonski May 14, 2015 00:00 3 replies Original on forum ↗
Subscribe
wygonski Question
May 14, 2015 00:00

We are debugging ADAU1701 algorithms on our custom target hardware using SigmaStudio and USBi. Our target hardware also has a microcontroller as I2C master connected to ADAU1701. The microcontroller implements DSP Readback functions from the DSP as part of a control loop, and we would like to tune the DSP parameters in real-time with SigmaStudio with the microcontroller in the loop.

Can the USBi as an I2C master interact with the DSP along with the microcontorller?

I know that I2C protocol supports multi-master--I am asking whether the USBi implements this. I looked at AN-1006, "Using the EVAL-ADUSB2EBZ app note but it was silent on this topic as far as I could tell.

Thanks,

John

Audio Signal Processors

SigmaDSP Audio Processors

adau1701

joe42 Reply
May 14, 2015 00:00

I haven't found a clean way to do this; the two masters usually end up fighting each other.

The best solution I've used is to "pause" interaction with the microcontroller while we fiddle with SigmaStudio, then re-enable when we're done. It's not elegant but it works.

DaveThib Reply
May 15, 2015 00:00

Hello John,

I agree with Joseph's method of working around this issue. The USBi does not support multiple masters. If this needs to be done often then you could design in an I2C repeater so you can disable one of the masters. This can get a bit tricky so the brute force method of pausing the uC and connecting SigmaStudio is probably the best way to handle this.

Dave T

wygonski Reply
May 15, 2015 00:00

Thanks for the helpful answers.

Could there be some other way to transfer DSP Readback data to the microcontroller? We have control over the uC code implementation, so perhaps a SigmaDSP output pin could be used to bit-bang the data? Or is there another SigmaDSP variant that supports additional standard I/O like SPI or a second I2C port? We have implemented a method of converting the desired result to anlaog in the SigmaDSP and then sampling this analog signal in the uC, but it leaves a bit to be desired.

John