Question about hardware address pins (i2C)

Thread Starter

scratchy123

Joined Jun 21, 2019
7
Hello everyone,

Im doing a project for school, while my schematic is almost done, I still need to connect the address pins (A0, A1, A2, A3), since im using multiple of the same led driver ( https://www.nxp.com/docs/en/data-sheet/PCA9952_PCA9955.pdf > datasheet), I need to connect these address pins. My question is where do I connect the address pins to? Since online I haven't seen much except someone saying they need to be connected to either the SCL or SDA while in the datasheet you can somewhere see the sentence: "In order to obtain the best system level ESD performance, a standard pull-up resistor (10 k typical) is required for any address pin connecting to VDD. For additional information on system level ESD performance, please refer to application notes AN10897 and AN11131." Which says you need to connect the address pins to the VDD, but doesn't it need to be connected to the i2C?

Part of my schematic is uploaded here, I hope anyone can help me with this.
 

Attachments

DickCappels

Joined Aug 21, 2008
10,153
Generally you connect the address pins to V+ or Vss depending on the desired address *a pull-up resistor is optional in my experience). In all the applications I've noticed the addresses are held static. If for example, you have two identical memory chips you would give them separate addresses so that they do not conflict on the bus. The datasheets should explain how the address pins affect the chip.
 

pmd34

Joined Feb 22, 2014
527
Hi Scratchy, it is quite common for ICs to have these so called "address pins". You simply connect them to GND or supply voltage (in this case via a resistor) as a hardware way of presetting the internal address of the device (on the I2C). You will typically see this done on things like door bells etc with a set of small DIL switches to allow the address to be changed when multiple items of the same PCB are used be require unique addresses.

So you will see on page 28 of the data sheet (fig 14) that the last 4 bits of the "slave address" refer to the values you have set with these pins (GND=0 VDD=1).

(See fig.20 for an example of how the address pins are set in an application... that would give 0101 as the last 4 bits of the address.
 

Thread Starter

scratchy123

Joined Jun 21, 2019
7
Hi Scratchy, it is quite common for ICs to have these so called "address pins". You simply connect them to GND or supply voltage (in this case via a resistor) as a hardware way of presetting the internal address of the device (on the I2C). You will typically see this done on things like door bells etc with a set of small DIL switches to allow the address to be changed when multiple items of the same PCB are used be require unique addresses.

So you will see on page 28 of the data sheet (fig 14) that the last 4 bits of the "slave address" refer to the values you have set with these pins (GND=0 VDD=1).

(See fig.20 for an example of how the address pins are set in an application... that would give 0101 as the last 4 bits of the address.
Thanks for the fast response, I understand quite a bit more about this. In Fig 20 I see the address pins connected to the VDD with a pull-up resistor but also that the VDD is connected to the SDA and SCL with a 1.6k resistor. Is this also necessary (in my situation)? I'm sorry if i sound dumb but im not that smart and pretty new in this aspect.
 

pmd34

Joined Feb 22, 2014
527
Hi scratchy! No dumb questions! We all have to learn some time / somehow!
The SDA and SCL resistors you spotted, are simply used on the I2C data lines to add a bit of a load to them, this allows them to be switched a faster. Typically you only need one set of these to be used for however many other "things" are attached to the data lines. It is recommended to use them (somewhere in your system), and you might find you get some garbled data otherwise (you can check the effect of them on an oscilloscope if you have one at hand). Whatever you are using as a "master" to communicate with this IC may already have them however.
 

Thread Starter

scratchy123

Joined Jun 21, 2019
7
Hi scratchy! No dumb questions! We all have to learn some time / somehow!
The SDA and SCL resistors you spotted, are simply used on the I2C data lines to add a bit of a load to them, this allows them to be switched a faster. Typically you only need one set of these to be used for however many other "things" are attached to the data lines. It is recommended to use them (somewhere in your system), and you might find you get some garbled data otherwise (you can check the effect of them on an oscilloscope if you have one at hand). Whatever you are using as a "master" to communicate with this IC may already have them however.
Thank you so much for your help, it's always great to learn something new :)
 

DickCappels

Joined Aug 21, 2008
10,153
I2C lines are drive by open drain drivers. There is no pull-up in the chips so these resistors serve as pullups. The value 1.6k is intended to provide sufficiently fast signal rise time for some assumed parameters, the predominant consideration usually being the capacitance from the lines to ground.
 

Thread Starter

scratchy123

Joined Jun 21, 2019
7
I2C lines are drive by open drain drivers. There is no pull-up in the chips so these resistors serve as pullups. The value 1.6k is intended to provide sufficiently fast signal rise time for some assumed parameters, the predominant consideration usually being the capacitance from the lines to ground.
Thanks! :) Appreciate the support here, its amazing
 
Top