Datasheet

ADS1110
SBAS276AMARCH 2003 − REVISED NOVEMBER 2003
www.ti.com
14
Figure 6 shows a circuit with several different devices
connected to a single I
2
C bus. A Texas Instruments
TMP100 temperature sensor and a Texas Instruments
DAC8574 4-channel 16-bit digital-to-analog converter
share the bus with two ADS1110s.
Figure 6. Connecting Multiple Device Types
The TMP100 and DAC8574 devices detect their I
2
C bus
addresses based on the states of pins. In the example, the
TMP100 has the address 1001011, and the DAC8574 has
the address 1001100. Consult the DAC8574 and TMP100
data sheets, located at www.ti.com, for details.
USING GPIO PORTS FOR I
2
C
Most microcontrollers have programmable input/output
pins that can be set in software to act as inputs or outputs.
If an I
2
C controller is not available, the ADS1110 can be
connected to GPIO pins and the I
2
C bus protocol
simulated, or “bit-banged”, in software. An example of this
for a single ADS1110 is shown in Figure 7.
Figure 7. Using GPIO with a Single ADS1110
Bit-banging I
2
C 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
will read as a zero in the port’s input register.
Note that no pull-up 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
ADS1110 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 pull-up.
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 pull-up resistor
provided as usual. Note also that this cannot be done on
the SDA line in any case, because the ADS1110 does drive
the SDA line low from time to time, as all I
2
C devices do.
Some microcontrollers have selectable strong pull-up
circuits built in to their GPIO ports. In some cases, these
can be switched on and used in place of an external pull-up
resistor. Weak pull-ups are also provided on some
microcontrollers, but usually these are too weak for I
2
C
communication. If there is any doubt about the matter, test
the circuit before committing it to production.