Controlling two SigmaDSPs ADAU1701 with one microcontroller
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
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.
thanks for the support!
one more question: is there a way i could communicate a microcontroller with 2 dsps but using spi?
regards,
Martin
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.
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
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.
Please log in to reply.