I desperately try to activate the voltage output of my AD5761R DAC, but without any success up to now. So I hope that anyone can help...
For communication via SPI, I use a Arduino Micro which is connected to the DAC as shown in the image.
After Power up I send the following commands:
1) "Software full reset" (0b10101111 0b00000000 0b00000001)
2) "Write to control register" (0b10100100 0b11111110 0b00111011)
3) "Readback control register" (0b10101100 0b11111000 0b00100001) followed by a "No operation" (0b10100000 0b11111000 0b00100001) to get the data on SPO
--> The data perfectly matches the sent data from 2)
4) "Write to input register" (0b10100001 0b11111111 0b11111111)
5) "Update DAC register from input register" (0b10100010 0b11111111 0b11111111)
--> If I understand the datasheet correctly, this should give me the maximum DAC output voltage in the chosen range (0...5V) which means 5V. But the output stays at 0V...
Furthermore, I've also already tried to trigger the DAC output updating by a falling edge of !LDAC! after step 4) or by sending the "Write and update DAC register" command, but also without success.
If I readback the input register or the DAC register, I get back exactly the data that I've written in it. But nevertheless, the output stays at 0V...
I would be very glad for any suggested solution of my problem!
Someone is currently looking into your query and will respond as soon as possible.
thanks! That would be great!
The register map of control register readback (table 15) is different from the register map when writing to control register (table 11), which means we shouldn't expect them to be the same, can you check the actual readback values please?
Have you also tried reading back the actual DAC register using command 0x1011? I am expecting that once after software data reset (0x111), DAC register readback should be full scale due to the PV[1:0] values written on the control register.
When you measure the reference pin, do you measure 2.5?
thanks for your reply.
Concerning the control register readback:
I have maybe explained it somewhat inaccurately. What I meant is that the relevant parts (Bits 10 to 0) in the control register readback are identical to the relevant parts that I've written into the control register. The complete control register readback is:
0b10101100 0b00000110 0b00111011
As bits 11 and 12 are low, there is also no brownout or short circuit detected.
Concerning the DAC register readback:
Yes, I've already tried a DAC register readback and it's, as you've correctly expected, at full scale. The complete DAC register readback is:
0b10101011 0b11111111 0b11111111
But still, the output is at 0V. I've even tried a new sample of the AD5761R, but it leads to the same result. Do you have any further suggestions?
What do you measure at VREF pin?
Though /CLEAR and /RESET pins can be left floating, can you tie it to logic high and see if it makes any difference?
sorry for my late response!
isantos said:What do you measure at VREF pin?
Yes, I did already measure the voltage at the VREF pin and it is at 2.5V.
isantos said:Though /CLEAR and /RESET pins can be left floating, can you tie it to logic high and see if it makes any difference?
No, a connection to logic high does not make any change. The communication (writing to the different registers and the respective readbacks) works fine, but the output stays at 0V.
I also checked the /ALERT pin and this one also behaves as expected, which means that it is low after power up and changes to high after first time writing to the control register.
I'm really running out of ideas...
Can you write the control register with RA[2:0] bitfield set to 100 ( −2.5 V to +7.5 V ) and see what happens at the output?
Can you also send actual SPI scope shots when control register is written as well as when the DAC register is written? Thanks