I2C Daisy-Chained Address Generator


Here is a simple circuit using a 4-bit binary adder (74HC283 for example), that takes an input address on 4 bits and add 1 to it:

  • 4-bit “A” input is connected to previous neighbor
  • 4-bit “B” input is tied to ground (“0”)
  • Input carry (Cin) is set to 1 to add 1
  • Output carry is not used
  • the 4-but “Q” output is then equal to A+1 and sent to the next neighbor in the chain
  • by having pull-up resistors on the “A” input, it sets it value to binary “1111” when this node is the first in the chain (no previous neighbor)

This simple circuits containing a single 16-pin chip, its decoupling capacitor and either 4 independent resistors or a single quad-resistor array can be used to generate an automatic I2C device address for up to 16 chained I2C nodes.