Post Go back to editing

Programming two ADAU1452 with two USBi, using the same computer

Hi folks,

I'm trying to program two instances of the same loudspeaker with one instance of Sigma studio and USBi, but I have hit a brick wall. The procedure explained here wont work, because speakers A and B are separate, and must be tested at varying distances to each other.

My setup:

Laptop USB port 1 -> USBi -> speaker A (ADAU 1466)

Laptop USB port 2 -> USBi -> speaker B (ADAU 1466)

Ideally, I would like to:

1. be able to program both speaker A and B with the same sigma studio file in one go (the solution explained here 

2. and, be able to program both speaker A and B with different programs, but from the same instance of Sigma studio.

Is there a way I can configure the USBi block in HW config to achieve this? Or any other way?


Added explanation of why wont work.
[edited by: ARanch at 8:35 AM (GMT -4) on 24 Jun 2021]
  • Unfortunately, only one USBi at a time is supported due to limitations of the USB transceiver IC. Sorry.

  • Hello ARanch,

    I would like to chime in here with my thoughts on this. As noted earlier, you cannot use two USBi's on one computer to talk to two eval boards. However, you can use one USBi and communicate to two eval boards. Then in the SigmaStudio project you can pull in two instances of the SigmaDSP and have both in one project. SigmaStudio will program both at thesame time, Well, in sequence after you click on link/compile/download. 

    This is detailed in a rather old App note AN-1006. Also, in the EVAL-ADAU1452RevB user guide I showed how to modify the USBi and the eval board to talk to the codec from SigmaStudio. The process for talking to two DSPs is pretty much the same concept. 

    What you will have to do is to build some custom ribbon cables to bring out the Slave Select of the second eval board to connect to the second SPI latch of the USBi. It is pin one of the 14 pin header on the USBi. Keep in mind that the USBi is stuffed with a 10-pin ribbon into the middle pins of a 14-pin footprint. Look at page 5 of AN-1006.

    Dave T

    AN-1006: Using the EVAL-ADUSB2EBZ | Analog Devices

  • Hey Dave,

    Thanks for pointing this out!

  • Hi Dave,

    I have a similar issue, but my hardware is two ADAU1701s, each with an EEPROM. I *really* don't want to have to pull my chassis open to move my USB interface around between debug headers, but  I have just discovered that all ADAU1701s look for EEPROM at the same address, so changing the address of the 1701s doesn't help me at all as I can only write the same program to both EEPROMs.

    This is the USB interface board I am using:

    The USB chip on it is the Cypress CY7C68013A - datasheet is here:

    Do you know if the transceiver chip on this board has the same limitation as the ADI USBI, limiting it to one board per computer?

    Thank you,


  • Hello Audrey,

    I do not think the limitation is with the Cypress part. It will send data to what ever address it is told to send it to. The limitation is with the programming in SigmaStudio and how the SDK works to communicate with the Cypress chip. Unfortunately we do not release that part of the SigmaStudio program so it cannot be changed. 

    If you had the headers coming out of your product then you could design a small board with some I2C repeaters/switches to route the commands to one of your boxes with an easy switch to select which one you want to talk to. 

    That said, just moving the USB cable between two boxes is going to be the simplest way to do it. 

    Dave T

  • I have considered setting up address translators between the programmer and each board such that I could address each one separately, but then realized that there seems to be no way to associate a DSP chip with its EEPROM in sigma studio - all of the EEPROMs and DSP chips are just "there", with nothing linking an individual DSP chip with its specific EEPROM. I believe that attempting to write to one of the EEPROMs will simply flash both at the same time.