Post Go back to editing

ADAU1467 booting 3 x AD1937 codec's

Hi there,

I'm working on a design with a central ADAU1467 DSP connected to 3 x AD1937 codecs so I can have 4 x balanced audio (mic/line) inputs and 24 balanced audio outputs.  I'm at the stage of considering the control.  I like how on the EVAL board for the ADAU1467 can self-boot from settings saved to the EEPROM; I will be replicating this functionality in our design.  My question is what to do with the AD1937 codecs.  I know I can control them individually via SPI using SigmaStudio.  But that doesn't really leave me with a "set and forget" option once the design is deployed. 

The EVAL-ADAU1467 manual alludes to having the DSP boot the codec but states "This configuration is beyond the scope of this user guide".  Can I get some assistance as to how I need to configure my ADAU1467 and 3 x AD1937's so the DSP can boot all three codecs? 

Will this allow the DSP and codecs to be configured from within SigmaStudio and utilise just the one SPI link?

If not, how can I have the 3 x AD1937's always boot up with the correct configuration; i.e. perform self-boot, to be running in the mode I want?

Thanks for your assistance!

Kind regards,

Mark

Parents Reply Children
  • Thanks, Dave! I'm going to be heading into uncharted waters now being all control signal stuff, but hopefully I can get there. 

    First thing is making sure I get the circuit design correct.  The post from Rocha shows the SPI as you noted.

    However, am I assuming I'll need one SPI latch from my USBi to the ADAU1467 (and another for my E2Prom) then another latch to the first codec, and then daisy chain the other two codecs to the first one?  Or do I need all 4 SPI latches to each codec independently (as per this image)?:

    Then do I also need the ADAU1467 pins 34 (SCL_M) and 35 (SDA_M) to daisy chain to the 3 x AD1937 codecs (pins 34 and 31; SCL & SDA respectively).  Each AD1937 would be configured with a separate I2C address assignment by configuring the ADDR0 & ADDR1 pins. I have set those pins on my 3 x codecs to (0,0), (0,1) and (10) in my circuit design.

    If you would prefer I can share snippets from my working schematic?

    Thanks again for your help!

  • Hello MDThommo81,

    This part has two basic ports, the slave port and the master port. Both can do I2C and SPI. 

    The slave port comes up in I2C mode and you need to send three dummy SPI writes to set it into SPI mode. This is the port that you use with the USBi to communicate with the part. There is a SPI latch for the slave port and only one. 

    The master port has the ability to be SPI or I2C but it can split off the I2C port using the multi-function pins so that you can use SPI and I2C at the same time with the master port. Well, you can only use one at a time but you can have both in your system. 

    There is a SPI latch pin on the master port that you must connect over to the SPI EEPROM and you also must set the selfboot mode to be SPI. This will allow you to boot up off of the EEPROM

    The AD1937 parts will have the SDA and SCL pins connected to each of the AD1937 codecs in parallel. The pins you use will depend on which assignable pins you are using for I2C. So it will not be the ones listed as SDA_M or SCL_M. Those will be used for their SPI port functions. 

    You will need to have some pull-up resistors on the I2C bus. The addressing is done in the I2C first byte so the DSP will just do that with no extra pins needed. You are correct that you will need to set each of the codecs to its own address so that the DSP can talk to each on its own. I2C does not require latches. 

    On the USBi GUI you will need to set each one to the correct address to coincide with the pin settings on the AD1937 parts. In the screenshot they are all set to the same address. 

     Dave T