2017-10-12 89 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,並在其下游連接器上輸出新地址?