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

programming I2C peripherals on the same board as a SigmaDSP ?

SigmaDSP & SigmaStudio Brewster Jul 28, 2021 00:00 2 replies Original on forum ↗
Subscribe
Brewster Question
Jul 28, 2021 00:00

I have a board with an ADAU1452 and some ADCs and DACs that are all connected by I2C to an external controller.

During development I would like to control the ADC and DACs from SigmaStudio - though not from the 1452 as these peripherals are on the host side of the 1452.

I thought there was a generic I2C peripheral 'chip' I could add to the Hardware configuration page of SS, wire it to the USBi with the chip's i2C address, and then point it at an .xml file for the i2C sequence. I can do this in an A2B schematic, but I can't find the equivalent to use with a SigmaDSP.

Thanks for any pointers/suggestions.

Brewster

Audio Signal Processors

adau1452

i2c

peripherals

SigmaDSP Audio Processors

SigmaDSP

Show More

DaveThib Reply
Jul 29, 2021 00:00

Hello Brewster,

You are correct in that we do not have a generic part we can drag into the project. We have a lot of the building blocks like the Control UI that could be used with it but we do not have that all together. We only have our own ADCs and DACs in the library. Now, that said. I did think about this and I may have a way to do this. This is not really tested and I do not have the cables here with me to test this.

You can drop in one of our DACs and ADCs into the configuration. You then can click on the USBi entry for that part and change the chip address.

So this will connect SigmaStudio with the part. Then go to the register controls and click on any button to get one message in the Capture window. Then copy that message over to the sequencer. Then you can edit the sequence to send whatever you like to the part. It will be IC3 or IC4 etc. You can setup different modes for different parts or command sequences. Then these can be saved out to XML files.

The only problem I see with this is that when you click Link/Compile/Download, SigmaStudio will send all the register settings for those parts which would be a mess because the registers will not be correct.

With I2C you just cannot disconnect them when you compile then reconnect them. Actually, that might work... you would get the comms error but then it would clear up after you reconnect and send your sequences over.

Like I said, I am not able to try this right now but feel free to experiment. This is not something I have ever tested.

Dave T

pastedimage1627587994302v1.png
pastedimage1627587994302v1.png
Brewster Reply
Jul 29, 2021 00:00

Hi Dave,

That's probably a bit more awkward than what I'm currently doing, which is having a second schematic where the hardware page has the A2B device on it, then in the schematic I can do this (this is not an A2B system, I just did this to program the ADCs)

I saved the sequence to an .xml file for each device. Though I get some error from the A2B block (besides it not being found) the generic peripheral blocks work. Though they run in the wrong order for program on startup. I think there's a trick to reorder them but I can't remember/haven't found it, but I can manually load the sequences.

Works well enough for bench use and eventually a micro will deal with this.

Thanks for thinking about what might be possible.

Brewster

pastedimage1627615600863v2.png
pastedimage1627615600863v2.png