I2C Controller with 8 Bit Addressing

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2C Controller with 8 Bit Addressing

894 Views
mattRigby
Contributor I

Hello all, 

I am getting started on a project, and I believe that using I2C would be a good way of controlling many peripheral devices on the same line. However, I noticed on products such as PCA9555A, there are a maximum of 8 possible devices that can be connected on a single line. I want to connect upwards of 50 devices on one line. My understanding of the I2C addressing is that there are either 7 or 10 bit addresses, and either should be enough to hold all the devices I need. Because I either have 1 or 3 pins for addressing, I assume that all the other bits are baked into the chip.

My question is this: are there products on the market that support a customized addressing for all 7 or 10 bits of an I2C controller chip? If not, how might I get around this issue (ideally without having a cascading line of many chips for a single device)?

Thank you!

0 Kudos
2 Replies

881 Views
mattRigby
Contributor I

Thank you for getting back to me. Two questions come to mind:

1. Just reading through the documentation, it isn't clear to me how the address parsing is handled. I pass in my address serially through the data in, and have the address bits tied to ground/Vdd depending on which device address I want. I then send bits in an I2C protocol format down the data line, and the internal logic compares the addresses I have selected on the chip vs the protocol bits I've sent. But aren't these the same address bits that would be parsed later by the I2C controller after the mux? If they are, then the mux doesn't do anything but pre-filter, and doesn't get me any additional address space. 

2. Is there a chip that can serially decode an input address on a single line instead of requiring a multitude of wires to/from each chip? With the mux design above, I would still need 1 unique wire per device, which might technically be doable for me, but adds significant overhead costs and design issues. Having literally one data line that is decoded at each of the devices would be much simpler.

 

I very much appreciate your assistance. Please let me know if my comments or questions were confusing and I would be happy rephrase. 

-Matt

0 Kudos

886 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hello Matt,

The PCA9555A has indeed three hardware pins (A0, A1 and A2) to assign one of the eight possible slave addresses which allows up to eight devices to share the same I2C bus. If you need more than eight devices on the same bus, you can use I2C multiplexers/switches.

Fig.4.JPG

Slave address.JPG

 

Best regards,

Tomas

0 Kudos