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

Controlling two SigmaDSPs ADAU1701 with one microcontroller

SigmaDSP & SigmaStudio potroveio Jun 23, 2010 00:00 5 replies Original on forum ↗
Subscribe
potroveio Question
Jun 23, 2010 00:00

Hi everyone,

i want to make that a microcontroller PIC controls two DSPs ADAU1701 at the same time. The PIC has to load the same signal-flow into the two DSPs but the DSPs may have different settable parameters.

Could this be done with I2C? I have also available at the PIC an SPI interface. Which suggestions would you give me in order to implement this and which special cares must be taken?

Thanks for your attention,

Martin Horst

multiple

Audio Signal Processors

dsp

single

microcontroller

SigmaDSP Audio Processors

with

adau1701

Show More

ADIApproved Reply
Jun 23, 2010 00:00

In I2C mode, the ADAU1701 has two pins that set the I2C address - ADDR0 and ADDR1. If you have two ADAU1701s on the same I2C bus, then you should set their addresses to different settings.Then, your microcontroller can individually address and write to each of them. Even though the two ADAU1701s may have the same program, you will have to write that program to each IC separately; there is no way to write the same program to both ICs simultaneously over I2C.

potroveio Reply
Jun 24, 2010 00:00

thanks for the support!

one more question: is there a way i could communicate a microcontroller with 2 dsps but using spi?

regards,
Martin

ADIApproved Reply
Jun 24, 2010 00:00

You can communicate with multiple ICs using SPI by just providing a unique CLATCH signal to each separate IC. The clock, data in, and data output signals can be shared between multiple devices and the device to which you want to write is simply selected by pulling its CLATCH line low.

potroveio Reply
Jun 26, 2010 00:00

thanks for your support!

Another question that ocurred me: is there any problem if I use the same crystal 12.288MHz for both DSPs?

Martin

ADIApproved Reply
Jun 28, 2010 00:00

You cannot connect one crystal to the crystal oscillator pins (MCLKI/OSCO) of two ADAU1701s. You would need to connect a crystal to one ADAU1701 and then send a clean 12.288 MHz clock to the 2nd SigmaDSP codec. You could generate this clock in a couple of different ways. The first is to buffer the signal on the MCLKI pin of the first ADAU1701. You have to be careful with this method, though, as any extra PCB trace length between the pin and the buffer input will add capacitance to the circuit and could disrupt the proper operation of the crystal oscillator circuit. Another method is to use the ADAU1701's bit clock output to generate a 12.288 MHz clock. If you are using the serial ports for TDM communication, or if you are not using the serial ports at all, you can use pin MP11 in OUTPUT_BCLK mode to generate the necessary clock. You can do this by setting the output port to TDM mode and generating a 256*fs clock on that pin.

You could also just generate the 12.288 MHz clock using a dedicated crystal oscillator package and send its output clock to the inputs of both ADAU1701s.