SPI communication with 3 AD5737


I am working on 3 AD5737 using single SPI communication from MCU.  My requirement is that 12 Channels to provide a current output of 4 to 20mA where i should be able to control each channel independently.


AD0=GND AD1=GND for all DAC

MCU MOSI pin to SDI pins of 3 AD5737

MCU CLK pin to SCLK pins of 3 AD5737

MCU CS pin to SYNC pin of 1 AD5737

MCU GPIO1 pin to SYNC pin of 2nd AD5737

MCU GPIO2 pin to SYNC pin of 3rd AD5737

Problem statement:

I was able to send data and clock to all AD5737 but only AD5737 provided with CS pin from MCU is responding and other two AD5737 are not responding.

I am controlling GPIO pins in same way as CS pin manually for other two DAC's ,But I am not getting any respond from other two DAC's

I tried following methods:

1. I gave same CS pins to other two DAC's i.e. MCU CS pin is given to SYNC pin of all DAC : I was able to get response from all three but i need to control all channels of 3 DAC individually which is not possible in this method.

2. I gave same CS pins to other two DAC's i.e. MCU CS pin is given to SYNC pin of all DAC and changed AD0 & AD1 pin connection of one DAC as follows

AD0 = GND AD1= Pull up to 5V so device address of one DAC changed to 10 and other DAC retained same address i.e. 00 

now if i send SPI data to DAC with address 10 i was able to get response and next if send the SPI data to other DAC with address 00 it is not responding until i turn off the power and turn it on .i.e. i should reset the board when ever i change the address which is not possible to use in real time 

Can you please provide me a solution where i should be able to communicate with this 3 DAC's individually and all 12 Channels should work independently.

  • 0
    •  Analog Employees 
    on Nov 12, 2020 8:00 AM 2 months ago


    Can you share a screen capture of one SPI frame for 1) DAC with CS pin as SYNC, 2) DAC with GPIO as CS pin? There might be some differences between the CS and GPIO pins functionality, so let's check this first. 

    A band-aid solution would be to use a switch mux (ADG711) to multiplex CS pin to the SYNC pin of the 3 DACs, in this case, you'll only need an additional 1 GPIO (add to the other 2 GPIO used before as SYNC) to control the 3 DACs. Using the setup below, you can also connect CS to all DACs at once for sending of initialization codes, then connect individually for output control. Just need to take note of the timing on switching channels. 

    For controlling individual DAC channels, you can refer to the Serial Interface section of the datasheet (page 22).

    It would be best if we can solve the initial issue, so please send the scope shots. 

    Best regards,