可用於連接兩個I2C設備(I2C主設備-> I2C從設備)的電纜的最大長度是多少?
是的,我知道I2C確實是為板內通信設計的。我的任務是“設計目標”,即為多個I2C從設備使用通用I2C總線來支持演示。
為清楚起見,我們假設標準I2C總線速率為100 kHz。
>可用於連接兩個I2C設備(I2C主設備-> I2C從設備)的電纜的最大長度是多少?
是的,我知道I2C確實是為板內通信設計的。我的任務是“設計目標”,即為多個I2C從設備使用通用I2C總線來支持演示。
為清楚起見,我們假設標準I2C總線速率為100 kHz。
>根據此 NXP文檔 I2C總線規範和用戶手冊,對於快速模式和電阻上拉,電容應小於200pF。
使用電流源上拉電阻可以達到400pF,但不能使用電阻。
如果電線為20pF / 30cm,並且還有50pF的雜散和輸入電容,則電纜長度限制為2.25m。不同的假設將得出不同的數字。
像10,25和100m這樣瘋狂的聲音長度是完全可能的,當我需要快速整理東西時,我經常使用該方法(使用UART而不是I2C,但該方法有效)。不過,這並不是最佳方法。
關鍵是要知道您的輸入電壓閾值。確保接地線中的電壓降遠低於此值,否則接地電位高的變送器將無法將電壓拉到足夠低的水平。缺少接地偏移公差IMHO是使用RS485或CAN收發器的最大原因(在一些應用筆記中提到了CAN上的I2C)。
理想情況下,所有設備都將擁有自己的壁式疣和電池,設備之間的接地線不會發送任何功率。
但是,以CAT5為例。 CAT5不能高於52pf / m,或者不是CAT5。
100pf的52pf電纜的電容為5200pf或5.2nf。
5.2n倍20kohms(上拉)得出的時間常數約為104微秒。這將速度限制在大約10kHz左右。
使用2.2kohm上拉電阻,您可能會達到100kHz。
我聽說設備在SDL和SCK上應該有一個電阻器,因為它們所驅動的電容負載很大,大約為180或200歐姆。與普通UART一起使用的CAN收發器或RS485是一個強大的解決方案,具有非常好的故障保護,ESD電阻,速度,距離等,每片成本僅為一美元左右,接地偏移幾乎沒有多大關係,
唯一的缺點是can收發器的發射能力可以達到70ma,而監聽只需1或2ma,因此I2C或直接TTL UART在極低功耗的情況下可能很有用,但是考慮一下您實際花費了多少時間進行發送。
我在一家製造USB傳感器的公司工作。它們大多數基於I2C傳感器芯片,這些設備可以一分為二,因此您可以將CPU部件安裝在一個位置,將傳感器部件安裝在另一個位置。我們對設備CPU和I2C傳感器之間的I2C連接進行了很多測試。在100 kHz的頻率下,採用良好的錯誤恢復協議,可以使用基本導線輕鬆達到25m。使用CAT5電纜,我們甚至可以達到100m。
IIC是一種同步協議,因此,它可以任意緩慢運行以滿足系統在距離和噪聲方面的要求。
在電纜上使用IIC的例子很多,所有從1990年代的 ACCESS.bus到如今如何從視頻顯示中檢索 EDID信息的方式。