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.

DAC7760: DAC7760: About user calibariton

Part Number: DAC7760

I have question about DAC7760 chip.

In user calibration, 

1. In DAC7760, User calibrationc CODE_OUT is represented follows?

    CODE_OUT = CODE*(User_GAIN + 2^11)/2^12 + User_ZERO

2. User_ZERO is represented signed value -> Then, the sign-bit is 12-bit in DAC7760?

3. In DAC7760, CODE_OUT Range is 0x000 ~ 0xFFF. If the User_ZERO Code is set as 0x3FF and Gain is set as 0x800 and CODE is set as 0xFFF. CODE_OUT is 0x13FE(It is over 0xFFF).

   Then, the result CODE_OUT is 0xFFF(the limit)?

   => It means if the CODE_OUT is over the Maxium value of CODE(0xFFF in DAC7760) by User_Gain and User_Zero code. CODE_OUT is changed by the Maxium value(0xFFF) in automatically?  

 

  • Hello Minwoo,

    MINWOO LIM said:

    1. In DAC7760, User calibrationc CODE_OUT is represented follows?

        CODE_OUT = CODE*(User_GAIN + 2^11)/2^12 + User_ZERO

    Yes - basically the equation that is shown on page 34 of the datasheet but replaced with 12-bit resolution values as you have shown.

    MINWOO LIM said:
    2. User_ZERO is represented signed value -> Then, the sign-bit is 12-bit in DAC7760?

    I'm not sure I totally understood your question, but data is MSB-aligned for both 16-bit and 12-bit devices. I hope that helps.

    MINWOO LIM said:

    3. In DAC7760, CODE_OUT Range is 0x000 ~ 0xFFF. If the User_ZERO Code is set as 0x3FF and Gain is set as 0x800 and CODE is set as 0xFFF. CODE_OUT is 0x13FE(It is over 0xFFF).

       Then, the result CODE_OUT is 0xFFF(the limit)?

       => It means if the CODE_OUT is over the Maxium value of CODE(0xFFF in DAC7760) by User_Gain and User_Zero code. CODE_OUT is changed by the Maxium value(0xFFF) in automatically?  

    Yes - the calibration feature is purely implemented in the digital domain so there will be limitations at zero-scale and full-scale where one would effectively "run out of codes".

  • Hello, Kevin

    Thanks for your answer.  I want to ask question one more time.

    1. About the question 2 in original qustion, DAC7760 has 12-bit range. User_ZERO is signed value. Then, it can be represented in -4095 ~ 4095?

     - > 0xFFF = -4095, 0x7FF = 4095

    2. About the question 3 in original qustion, CODE_OUT = CODE*(User_GAIN + 2^11)/2^12 + User_ZERO

       The follows case 1,2,3 is the same CODE_OUT and Result

       case 1. CODE = 0xFF, User_GAIN = 0x400(=2^11), User_ZERO = 0

       case 2. CODE = 0x0, User_GAIN = 0x400(=2^11), User_ZERO = 0xFF

       case 3. CODE = 0xF0 User_GAIN = 0x400(=2^11), User_ZERO = 0xF

    Regards,

    Minwoo

  • MINWOO LIM said:

    1. About the question 2 in original qustion, DAC7760 has 12-bit range. User_ZERO is signed value. Then, it can be represented in -4095 ~ 4095?

     - > 0xFFF = -4095, 0x7FF = 4095

    The User_ZERO value is formatted as a 12-bit binary two's complement value. The maximum range is 0x7FF or 2047 in decimal. The minimum value is 0x800 or -2048 in decimal.

    MINWOO LIM said:

    2. About the question 3 in original qustion, CODE_OUT = CODE*(User_GAIN + 2^11)/2^12 + User_ZERO

       The follows case 1,2,3 is the same CODE_OUT and Result

       case 1. CODE = 0xFF, User_GAIN = 0x400(=2^11), User_ZERO = 0

       case 2. CODE = 0x0, User_GAIN = 0x400(=2^11), User_ZERO = 0xFF

       case 3. CODE = 0xF0 User_GAIN = 0x400(=2^11), User_ZERO = 0xF

    Now being aware that the User_ZERO value is binary two's complement, of course all of these results will change.

    • case 1. CODE = 0xFF, User_GAIN = 0x400(=2^11), User_ZERO = 0
      • CODE_OUT = 255 * (1024 + 2^11) / 2^12 + 0
      • CODE_OUT = 191
    • case 2. CODE = 0x0, User_GAIN = 0x400(=2^11), User_ZERO = 0xFF
      • CODE_OUT = 0 * (1024 + 2^11) / 2^12 + 0 + 255
      • CODE_OUT = 255
    • case 3. CODE = 0xF0 User_GAIN = 0x400(=2^11), User_ZERO = 0xF
      • CODE_OUT = 240 * (1024 + 2^11) / 2^12 + 15
      • CODE_OUT = 195

  • Thank for your help.

    Questions are all cleared.

    Regards,

    Minwoo