I am using the DAC80501 with the internal reference and a 3.3V supply. My I2C communication works correctly but I am unable to update the DAC output. What is going wrong?
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.
There needs to be sufficient headroom from VDD to the DAC internal or external reference. You can find the reference minimums and maximums in the Recommended Operating Conditions table in the datasheet. The REF-DIV bit mentioned in this table divides the internal or external reference to accommodate the headroom requirements. Because the internal reference is 2.5V and the supply being used is 3.3V, the REF-DIV bit needs to be set to 1 to divide the reference by 2. Improper configuration of the reference divider triggers a reference alarm condition. In this case, the reference buffer is shut down, and all the DAC outputs go to 0V which is why the DAC output does not update. This alarm can be read from the STATUS register.
In addition to the REF-DIV bit, there is also a BUF-GAIN bit that configures the gain of the internal output buffer. The output buffer is rail-to-rail and can generate output voltages from 0 to VDD. In this case, setting the BUF-GAIN bit to 1 selects a gain of 2 which will compensate for the divided reference and provide a 0 to 2.5V output from the DAC.
To get started with communicating to the DAC80501 and other devices in the family, you can refer to the header file shared here: [FAQ] Are there source code or header file examples for the DAC80508 family of devices?