我使用NI LabVIEW的I2C模块控制几个i2c从站( PCA9505 )。我需要改进项目,这样我就可以在没有手动调整从站地址的情况下向总线添加新的从站。 ( PCA9505上的引脚A0 A1 A2 )。因此,硬编码地址不是一种选择。
此外,PCA只有3个引脚,所以我可以添加最多8个从设备。我需要去16岁。
如何为奴隶提供动态地址?
如何扩展到16个奴隶?
感谢您的帮助!
PS:PCA9505 = I2C总线应用的40位并行输入/输出(I / O)端口扩展
答案 0 :(得分:1)
就个人而言,我喜欢使用配置文件来设置应用程序所需的参数。在这种情况下,它将定义您需要与之通信的每个设备的地址。数组在这里也有很大的可扩展性。
就扩展I2C总线而言,您可以使用类似PCA9544A I2C多路复用器的东西。该芯片允许控制4种不同的总线。您必须控制多路复用器作为寻址单个芯片的一部分。
答案 1 :(得分:0)
从PCA9505 datasheet的简短读物来看,除了使用这些地址线之外,没有任何方法可以选择设备的地址。您要么必须像crossrulz所建议的那样多路复用总线,以便每个设备在不同的I2C总线上处于相同的地址,并添加代码来控制您在任何时候与哪个设备通信,或添加一些设置的硬件每个设备的地址线不同。
是否可以通过某种连接器将设备添加到总线?如果是这样,您是否可以在连接器中包含地址线,以便主适配器上的每个连接器为插入设备的设备设置不同的地址?或者,如果您以菊花链形式连接设备,每个设备可以在其上游连接器的地址上添加1并在其下游连接器上输出新地址?