AnsweredAssumed Answered

AD5754 - no output

Question asked by king2 on Apr 13, 2017
Latest reply on Apr 26, 2017 by isantos



I'm using AD5754 DAC with STM32 MCU (3.3v).

Output of DAC loaded to 5 kOhm / 200 Ohm resistor divider, Vdd is 5v, AVdd and Avss is +12 and -12 volts, reference is 2.5v. LDAC, CLR and BIN2COM are tied to 5v.

I can program DAC (0x0c0004, 0x10000e) and I can read back programmed values, PU values are readed as '1', so it is not some type of auto-shutdown.


My problem is that at channel outputs level is always the same, something near 0 volts, at all channels.

I can program channel values, for example, 0x010100 (set 0x100 to channel 1) followed by 0x1d0000 (load command).

I tried to change SPI speed - with no luck.

I have checked all voltages - everything is OK.


At power-up all voltages appears at same time, maybe with small delay.

I have tried to add command (0, 0) before configuration commands - and this not helped.


Can you help me with this problem?

If I have analog voltages appeared first at power-up - can this damage DAC? Can I do not add special circuit for right sequence if I do not need pre-defined outputs at start (I turns on my load by relay after DAC initialized)?

Can I program range using 0x04 value, i.e. 'for all channels'?


Thank you in advance!


update: just checked, I can program and read back all registers except DAC registers, they always returns 0.

Reading back PU flags indicates that all channels are powered-up. I have tried to make right power-up sequence (with adding button to break +-12 volts) - this was not helped, still not output at output pins and in output registers. I send 'LOAD' command after register setting. Another thing I cannot understand, that I reading zero from data registers, but I see 0 volts at outputs instead of Vss. I have tried to set CLR bit, it set, but output voltage was not changed.


update2: i have attached a screenshot of setting channel value twice and then reading it. Additinal details - I'm using I2S interface (and I can work with circular DMA this way) and some simple logic in between MCU and DAC, to skip first 8 bits of 32-bit I2S window and make 24-bit SYNC signal, that's because I have SYNC signal with so strange form.

Please, note SDO glitch at end of 0x800000 readback command, I do not know what this can be. Maybe this will help you to help me (if anybody exists on other side of this forum )