1. IIC(I2C)匯流排上的設備其地址如何定義
IIC匯流排
一般串列數據通訊都有時鍾和數據之分,有非同步和同步之別.
有單線,雙線和三線等.
I2C肯定是2線的(不算地線).
I2C協議確實很科學,比3/4線的SPI要好,當然線多通訊速率相對就快了.
I2C的原則是:
在SCL=1(高電平)時,SDA千萬別忽悠!!!
否則,SDA下跳則"判罰"為"起始信號S",SDA上跳則"判罰"為"停止信號P".
在SCL=0(低電平)時,SDA隨便忽悠!!!(可別忽悠過火到SCL跳高)
每個位元組後應該由對方回送一個應答信號ACK做為對方在線的標志.
非應答信號一般在所有位元組的最後一個位元組後.一般要由雙方協議簽定.
SCL必須由主機發送,否則天下大亂.
首位元組是"片選信號",即7位從機地址加1位方向(讀寫)控制.
從機收到(聽到)自己的地址才能發送應答信號(必須應答!!!)表示自己在線.
其他地址的從機不允許忽悠!!!(當然群呼可以忽悠但只能聽不許說話)
讀寫是站在主機的立場上定義的.
"讀"是主機接收從機數據,"寫"是主機發送數據給從機.
重復位主要用於主機從發送模式到接收模式的轉換"信號",由於只有2線,
所以收發轉換肯定要比SPI復雜,因為SPI可用不同的邊沿來收發數據,而I2C不行.
在硬體I2C模塊,特別是MCU/ARM/DSP等每個階段都會得到一個准確的狀態碼,
根據這個狀態碼可以很容易知道現在在什麼狀態和什麼出錯信息.
7位I2C匯流排可以掛接127個不同地址的I2C設備,0號"設備"作為群呼地址.
10位I2C匯流排可以掛接更多的10位I2C設備.
總之,只要掌握I2C的忽悠記,一般很容易掌控... 第一個位元組(為slave address)由7位地址和一位R/W讀寫位組成的,這位元組是個器件地址。
首先,你要知道:常用IIC介面通用器件的器件地址是由種類型號,及定址碼組成的,共7位。
如格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
1-器件類型由:D7-D4 共4位決定的。這是由半導公司生產時就已固定此類型的了,也就是說這4位已是固定的。
2-用戶自定義地址碼:D3-D1共3位。這是由用戶自己設置的,通常的作法如EEPROM這些器件是由外部IC的3個引腳所組合電平決定的(用常用的名字如A0,A1,A2)。這也就是定址碼。
所以為什麼同一IIC匯流排上同一型號的IC只能最多共掛8片同種類晶元的原因了。
3-最低一位就是R/W位。這位不用我多說了。
在現代電子系統中,有為數眾多的IC需要進行相互之間以及與外界的通信。為了提供硬體的效率和簡化電路的設計,PHILIPS開發了一種用於內部IC控制的簡單的雙向兩線串列匯流排I2C。I2C匯流排支持任何一種IC製造工藝,並且PHILIPS和其他廠商提供了種類非常豐富的I2C兼容晶元。作為一個專利的控制匯流排,I2C已經成為世界性的工業標准。
每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅動器)或者可以接收也可以發送的器件(例如:存儲器)。發送器或接收器可以在主模式或從模式下操作,這取決於晶元是否必須啟動數據的傳輸還是僅僅被定址。I2C是一個多主匯流排,即它可以由多個連接的器件控制。
基本的I2C匯流排規范於20年前發布,其數據傳輸速率最高為100Kbits/s,採用7位定址。但是由於數據傳輸速率和應用功能的迅速增加,I2C匯流排也增強為快速模式(400Kbits/s)和10位定址以滿足更高速度和更大定址空間的需求。
I2C匯流排始終和先進技術保持同步,但仍然保持其向下兼容性。並且最近還增加了高速模式,其速度可達3.4Mbits/s。它使得I2C匯流排能夠支持現有以及將來的高速串列傳輸應用,例如EEPROM和Flash存儲器。 在現代電子系統中,有為數眾多的IC需要進行相互之間以及與外界的通信。為了提供硬體的效率和簡化電路的設計,PHILIPS開發了一種用於內部IC控制的簡單的雙向兩線串列匯流排I2C。I2C匯流排支持任何一種IC製造工藝,並且PHILIPS和其他廠商提供了種類非常豐富的I2C兼容晶元。作為一個專利的控制匯流排,I2C已經成為世界性的工業標准。
每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅動器)或者可以接收也可以發送的器件(例如:存儲器)。發送器或接收器可以在主模式或從模式下操作,這取決於晶元是否必須啟動數據的傳輸還是僅僅被定址。I2C是一個多主匯流排,即它可以由多個連接的器件控制。
基本的I2C匯流排規范於20年前發布,其數據傳輸速率最高為100Kbits/s,採用7位定址。但是由於數據傳輸速率和應用功能的迅速增加,I2C匯流排也增強為快速模式(400Kbits/s)和10位定址以滿足更高速度和更大定址空間的需求。
I2C匯流排始終和先進技術保持同步,但仍然保持其向下兼容性。並且最近還增加了高速模式,其速度可達3.4Mbits/s。它使得I2C匯流排能夠支持現有以及將來的高速串列傳輸應用,例如EEPROM和Flash存儲器。
2. I2C匯流排的最大長度是多少
I2C匯流排的最大長度是:小於200mm~300mm,跟傳輸速度、布線等有關系,延長距離可以用I2C中繼器晶元,NXP如P82B715、P82B96等等;在標准上沒有看到明確規定有效的傳輸距離。
I2C傳輸的距離應該取決信號的穩定性,而穩定性由匯流排負載,傳輸速度,匯流排電容,甚至外部干擾等因素決定,因此有可能出現5米的通訊距離換個位置或者加個設備就出問題。
(2)i2c匯流排可以練多少個從設備擴展閱讀:
Hs 模式主機器件有一個SDAH 信號的開漏輸出緩沖器和一個在SCLH 輸出的開漏極下拉和電流源上拉電路,這個電流源電路縮短了SCLH 信號的上升時間,任何時候在Hs 模式,只有一個主機的電流源有效。
在多主機系統的Hs 模式中,不執行仲裁和時鍾同步,以加速位處理能力。仲裁過程一般在前面用F/S 模式傳輸主機碼後結束。
Hs 模式主機器件以高電平和低電平是1:2 的比率產生一個串列時鍾信號。解除了建立和保持時間的時序要求,
可以選擇Hs 模式器件有內建的電橋。在Hs 模式傳輸中,Hs 模式器件的高速數據(SDAH)和高速串列時鍾(SCLH )線通過這個電橋與F/S 模式器件的SDA 和SCL 線分隔開來,減輕了SDAH 和SCLH 線的電容負載,使上升和下降時間更快。
Hs 模式從機器件與F/S 從機器件的唯一差別是它們工作的速度。Hs 模式從機在SCLH 和SDAH輸出有開漏輸出的緩沖器。SCLH 管腳可選的下拉晶體管可以用於拉長SCLH 信號的低電平,但只允許在Hs 模式傳輸的響應位後進行。
Hs 模式器件的輸出可以抑制毛刺,而且SDAH 和SCLH 輸出有一個施密特觸發器;Hs 模式器件的輸出緩沖器對SDAH 和SCLH 信號的下降沿有斜率控制功能。
參考資料來源:網路-I2C匯流排
3. 一條I2C匯流排上掛載兩個及兩個以上的同一型號感測器(已更改從地址使其不同)怎麼同時完成配置。
你的同時讀是什麼意思?單核MCU不可能同時讀的,總有先後順序。
如果你的本意是一條I2C匯流排上掛兩個MPU6050,那是可以的。這個晶元的第9腳AD0是設備地址的最低位,兩個晶元一個拉高,一個拉低,就有兩個不同的設備地址了。
這是個感測晶元,讀到的數據需要根據不同應用處理,難道你只想要讀數據的函數?自己寫唄,很簡單的。
4. I2C匯流排,如果兩個機器同時拉低電平都想成為主機怎麼辦
這種情況是不允許出現的。
I2C協議只允許同一時間只能有至多1個設備在操縱數據匯流排,如果同時拉低電平則違背了I2C原則。
5. 如何獲取I2C匯流排上多個設備的地址
I2C是有統一定義的,不會沖突。
24LC16B.html">24LC16B地址datasheet上肯定說了,仔細看吧。
有些器件會有一個或幾個IO來改變I2C的地址。
象24LC16就有A2,A1,A0可以有8個不同的I2C地址。
因此可以同時接8個一樣的器件而不沖突。
24LC16的I2C地址為1010xxx,xxx即為A2,A1,A0,所以A0-AF都是。最低位為讀寫控制。
6. i2c匯流排上最多可以掛多少個從器件
有IIC地址決定,8位地址,減去1位廣播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127個地址, 所以理論上可以掛127個從器件。
I2C(Inter-Integrated Circuit)匯流排是由PHILIPS公司開發的兩線式串列匯流排,用於連接微控制器及其外圍設備。是微電子通信控制領域廣泛採用的一種匯流排標准。它是同步通信的一種特殊形式,具有介面線少,控制方式簡單,器件封裝形式小,通信速率較高等優點。I2C 匯流排支持任何IC 生產過程(CMOS、雙極性)。通過串列數據(SDA)線和串列時鍾 (SCL)線在連接到匯流排的器件間傳遞信息。每個器件都有一個唯一的地址識別(無論是微控制器——MCU、LCD 驅動器、存儲器或鍵盤介面),而且都可以作為一個發送器或接收器(由器件的功能決定)。LCD 驅動器只能作為接收器,而存儲器則既可以接收又可以發送數據。除了發送器和接收器外,器件在執行數據傳輸時也可以被看作是主機或從機(見表1)。主機是初始化匯流排的數據傳輸並產生允許傳輸的時鍾信號的器件。此時,任何被定址的器件都被認為是從機。
7. 一般情況下一條i2c匯流排最多可擁有多個cat24wc02這些cat24wc02該怎樣連接
有IIC地址決定,8位地址,減去1位廣播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127個地址, 所以理論上可以掛127個從器件。
I2C(Inter-Integrated Circuit)匯流排是由PHILIPS公司開發的兩線式串列匯流排,用於連接微控制器及其外圍設備。是微電子通信控制領域廣泛採用的一種匯流排標准。它是同步通信的一種特殊形式,具有介面線少,控制方式簡單,器件封裝形式小,通信速率較高等優點。I2C 匯流排支持任何IC 生產過程(CMOS、雙極性)。通過串列數據(SDA)線和串列時鍾 (SCL)線在連接到匯流排的器件間傳遞信息。每個器件都有一個唯一的地址識別(無論是微控制器——MCU、LCD 驅動器、存儲器或鍵盤介面),而且都可以作為一個發送器或接收器(由器件的功能決定)。LCD 驅動器只能作為接收器,而存儲器則既可以接收又可以發送數據。除了發送器和接收器外,器件在執行數據傳輸時也可以被看作是主機或從機(見表1)。主機是初始化匯流排的數據傳輸並產生允許傳輸的時鍾信號的器件。此時,任何被定址的器件都被認為是從機。
8. IIC匯流排上最多能連多少個器件,理論值(定址位數)與實際掛載值有沒有差別,原因是什麼
iic協議沒有規定匯流排上device最大數目,但是規定了匯流排電容不能超過400pF。
管腳都是有輸入電容的,PCB上也會有寄生電容,所以會有一個限制。實際設計中經驗值大概是不超過8個器件。
匯流排之所以規定電容大小是因為,iic的OD要求外部有電阻上拉,電阻和匯流排電容產生了一個RC延時效應,電容越大信號的邊沿就越緩,有可能帶來信號質量風險。
傳輸速度越快,信號的窗口就越小,上升沿下降沿時間要求更短更陡峭,所以RC乘積必須更小。
9. i2c匯流排可以連接幾個設備
IIC協議規定,在啟動匯流排後第1位元組的高7位是從節點的定址地址,第8位為方向位。所以在單位元組定址中最多128個從設備。但又不能是同一類設備,因為在地址還要區分設備類型。