This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DAC8760: Not able to perform zero calibration

Part Number: DAC8760


Hello everybody.

Had fun playing with DAC8760 the last few days, including:
 - changing the ranges 0-5V, 0-10V, 4-20mA, 0-20mA;
 - setting data register and visualizing the output.

What I could not do was modifying the output value by changing zero calibration register.

What I did:
 - set the control register: OUTEN, SRCLK, SRSTEP, SREN, RANGE
 - set the config register: CALEN
 - set the gain calibration register: 0x8000
 - set the zero calibration register: any possible value I could think of (with no result)
 - read back successfully all the above registers, all values were the same

What is the appropriate sequence of setting zero calibration register?

Thank you!

  • Mihai,

    The DAC8760 calibration codes are only applied when the DAC data register is updated. If you modify the calibration codes the DAC data register, and correspondingly the output, will not change until the next write to the DAC data register.

  • Hello, Kevin.

    Thank you for the information. I was able to see the changes with the zero calibration code register.
    Going to the next question on the zero calibration register.

    For the moment, the power supply voltage is unipolar, as we need only current and positive voltage ranges.

    At 0x00 input data we have 10.3 mV at output.

    I tried some test cases, including:
    - set the zero calibration register at 0x00FF and set input data register at 0x0000, which resulted in 0xFF at output (0x0000 + 0x00FF = 0x00FF, correct)
    - set the zero calibration register at 0xFF00 and set input data register at 0x0000, which resulted in 0x00 at output (0x0000 - 0x00FF = 0x0000, correct for unipolar(?))
    - set the zero calibration register at 0xFF00 and set input data register at 0x00FF, which resulted in 0x00 at output (0x00FF - 0x00FF = 0x0000, correct)

    1) For unipolar power supply, can we get 0 mV at output by software?

    Thank you!

    Edit 1:
    a) initial value for each range, considering unipolar power supply:
     -    0.....5 V => 9.86   mV
     -    0...10 V => 10.35 mV
     -   -5.....5 V => 2.76   mV ("zero" drop(?))
     - -10...10 V => 2.76   mV ("zero" drop(?))
     - 4...20 mA => 0.96   mV (through 250 Ohm)
     - 0...20 mA => 0.20   mV (through 250 Ohm)
     - 0...24 mA => 0.30   mV (through 250 Ohm)

    2) Can the extern programming board influence the DAC "zero" drop value for positive ranges?

  • Mihai,

    As the datasheet indicates, the calibration functionality is implemented in the digital domain. So essentially the feature is applying a gain coefficient and offset to the code provided to the input of the DAC data register and effectively offloading this calculation from the MCU. However, that means that performance is still influenced by analog limitations like output voltage swing to rail, which will limit the capability of the calibration functionality at the negative rail.

    I do not really understand your second question.

  • Hello, Kevin.

    Thanks for making it clearer. I am not really into hardware, so I will try to explain with my own words. Two cases:
    1) - bipolar power supply
        - range 0...10 Volts
        - data register is 0x0000
        - output value is -0.2 mV
        - I am able to modify the output value by writing to zero calibration register (let us say 0x0002)

    2) - unipolar power supply
        - range 0...10 Volts
        - data register is 0x0000
        - output value is 10.3 mV
        - I am not able to lower the output value by writing to zero calibration register (let us say 0xFF00)

    Maybe I missed something. I will try to test some more and let you know.

    Thank you!

  • Mihai,

    Thank you for clarifying.

    Datasheets are written in a sort of general-purpose fashion, so there is some level of interpretation required to apply some conditions that aren't always obvious.

    You will find three specifications that are most interesting concerning performance near the negative rail for a DAC in your use case(s): offset error, zero-scale error, and bipolar zero-scale error.

    The most important thing to note across the board is that all of these specifications have a positive and negative polarity notation in the Electrical Characteristics Table. In this case, zero-scale error and bipolar zero-scale error both assume some level of footroom - which is what creates both polarities in these errors. If there were not -0.5V of footroom in the unipolar case, the zero-scale error would only be positive as the output buffer would not have the ability to swing negative.

    In short - providing a negative rail has the potential to get you to true zero-scale outputs, but there is a chance that if you were to look at another device there could be a positive going zero-scale or offset error. The only way to ensure that you could reliably hit true zero outputs is to use bipolar supplies and a bipolar output range.

  • Hello, Kevin.

    Thank you for the tips. I guess we will stick to the bipolar power supply. Only this way we can achieve the true zero output for the devices we have.

    Best regards,
    Mihai