English
Language : 

DAC8574 Datasheet, PDF (30/40 Pages) Texas Instruments – QUAD, 16-BIT, LOW-POWER, VOLTAGE OUTPUT, I2C INTERFACE DIGITAL-TO-ANALOG CONVERTER
DAC8574
SLAS377A – JANUARY 2003 – REVISED JUNE 2003
APPLICATION INFORMATION (continued)
Microcontroller or
Microprocessor
GPIO-1
GPIO-2
IOVDD
www.ti.com
DAC8574
1 VOUTA
A3 16
2 VOUTB
A2 15
3 VREFH
4 VDD
A1 14
A0 13
5 VREFL IOVDD 12
6 GND
SDA 11
7 VOUTC SCL 10
8 VOUTD LDAC 9
NOTE: DAC8574 power and input/output connections are omitted for clarity, except I2C Inputs.
Figure 57. Using GPIO With a Single DAC8574
Bit-banging I2C with GPIO pins can be done by setting the GPIO line to zero and toggling it between input and
output modes to apply the proper bus states. To drive the line low, the pin is set to output a zero; to let the line
go high, the pin is set to input. When the pin is set to input, the state of the pin can be read; if another device is
pulling the line low, this reads as a zero in the port’s input register.
Note that no pullup resistor is shown on the SCL line. In this simple case the resistor is not needed. The
microcontroller can simply leave the line on output, and set it to one or zero as appropriate. It can do this
because the DAC8574 never drives its clock line low. This technique can also be used with multiple devices, and
has the advantage of lower current consumption due to the absence of a resistive pullup.
If there are any devices on the bus that may drive their clock lines low, the above method should not be used.
The SCL line should be high-Z or zero, and a pullup resistor provided as usual. Note also that this cannot be
done on the SDA line in any case, because the DAC8574 drives the SDA line low from time to time, as all I2C
devices do.
Some microcontrollers have selectable strong pullup circuits built in to their GPIO ports. In some cases, these
can be switched on and used in place of an external pullup resistor. Weak pullups are also provided on some
microcontrollers, but usually these are too weak for I2C communication. Test any circuit before committing it to
production.
30