2017-10-12 92 views
1

我正在使用National Instruments LabVIEW的I2C模块控制几个i2c从站(PCA9505)。我需要改进项目,以便我可以在总线上添加新的从站,而无需手动调整从站的地址。 (PCA9505上的引脚A0 A1 A2)。因此,对地址进行硬编码不是一种选择。动态寻址I2C从器件;使其即插即用

此外,PCA只有3个引脚,所以我可以添加最多8个从站。我需要去16。

我怎样才能给奴隶动态地址?

如何扩展到16个从属?

感谢您的帮助!

PS:PCA9505 = 40位的并行输入/输出(I/O)端口,用于I2C总线应用

回答

1

膨胀就个人而言,我喜欢用一个配置文件来设置应用程序所需的参数。在这种情况下,它会为每个需要与之通话的设备定义地址。数组在这里也有很大帮助,以实现可扩展性。

就扩展I2C总线而言,您可以使用类似PCA9544A I2C多路复用器的东西。该芯片允许控制4条不同的总线。您必须控制多路复用器,作为单个芯片寻址的一部分。

0

从简要阅读的PCA9505 datasheet看起来好像除了使用这些地址线之外,还有什么方法可以选择器件的地址。您要么必须按照crossrulz的建议来复用总线,以便每个设备都位于不同I2C总线上的同一地址,并添加代码以控制您在任何时候与哪个对话,或添加一些硬件每个设备的地址线不同。

将设备通过某种连接器添加到总线?如果可以,请将地址线包含在连接器中,以便主适配器上的每个连接器为插入的设备设置不同的地址?或者,如果您以菊花链方式连接设备,则每个设备都可以在其上游连接器的地址上加1,并在其下游连接器上输出新地址?