I2C Controller with 8 Bit Addressing

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

I2C Controller with 8 Bit Addressing

957 次查看
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 项奖励
回复
2 回复数

944 次查看
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 项奖励
回复

949 次查看
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 项奖励
回复