Post Go back to editing

Digital to Analog Converters

Category: Hardware
Product Number: AD5696ARUZ

Hi, we need help regarding DAC IC, we are using for our development. 

We used AD5696ARUZ (Digital to Analog Converters - DAC 16 bit 4-ch 12C),

Right now we are using below configuration:
Vdd = 4.86 V, 
Vref = 4.86 V, Gain = 2

1. As per this configuration it's clear that, we can't get Vout at 2*Vref. It's clearly our mistake here.

Attaching schematic of design 


2. Now, as part of solution we want to achieve range for Vout that's 0-5V Only. Also, let us know what is maximum output voltage this IC
can generate

Kindly refer below DAC vs Vout chart:

Vout
DAC Right Left
0 0.04 0.06
6000 0.7 0.7
10000 1.16 1.16
12000 1.39 1.39
14000 1.62 1.62
16000 1.85 1.85
20000 2.31 2.31
36000 4.15 4.15
38990 4.499 4.499
39000 4.5 4.5
39010 4.501 4.501
40000 4.61 4.61
40000 4.615 4.615
41400 4.774 4.774
41410 4.775 4.774
41420 4.775 4.774
41440 4.775 4.774
41450 4.775 4.775
48000 4.77 4.77
54000 4.77 4.77
58000 4.77 4.77
62000 4.77 4.77
65535 4.775 4.775

From above chart its clear that data is not linear.

3. Attaching code we are using for communicating on I2C interface.

from smbus2 import SMBus
class AD5696(object):
    def __init__(self, Bus):
        self._device = SMBus(Bus)
        self._device.write_i2c_block_data(
            0x0c, 0x70, [0, 0])
        self.set_voltage(0, 1)
        self.set_voltage(65535, 2)
    def set_voltage(self, ValueDAC, SelectedChannel):
        Data = [(ValueDAC >> 8) & 0xFF, (ValueDAC) & 0xFF]
        if SelectedChannel == 1:
            self._device.write_i2c_block_data(
                DEFAULT_ADDRESS, WRITEDAC_A, Data)
            updateRunTime(ValueDAC)
        elif SelectedChannel == 2:
            self._device.write_i2c_block_data(
                DEFAULT_ADDRESS, WRITEDAC_B, Data)

 

Kindly look into this issue and let me know if you have any suggestions and solution on this.

Parents Reply Children
  • Hello:

    I'm not an expert on this produce but maybe I can help you out from a quick read of the datasheet.

    In the datasheet when the Gain Select pin is tied to GND, all four DAC outputs have a span of 0 V to VREF . When this pin is tied to VLOGIC, all four DAC outputs have a span of 0 V to 2 × VREF . You have Vref connected to +5 V. You have Gain select tied to +5 V as well. Based on the above Vout will range from 0 to +10 V. This is of course impossible given the power supply is only +5 V. This is why the output saturates at around +4.8 V when the input code goes above mid scale. It would seem that you need to lower the Vref voltage to 2.5 V or less or tie Gain select to ground.

    Hope this might be of some small help.