AnsweredAssumed Answered

AD5754 - no output

Question asked by king2 on Apr 13, 2017
Latest reply on Apr 21, 2017 by king2

Hi!

 

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 )

Attachments

Outcomes