一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是I2C協(xié)議?I2C的功能特點有哪些

FPGA之家 ? 來源:嵌入式悅翔園 ? 作者:李斌 ? 2022-09-06 10:03 ? 次閱讀

1、什么是I2C協(xié)議

I2C協(xié)議是一個允許多個 “從機” 芯片和一個或更多的 “主機” 芯片進行通訊的協(xié)議。它就像串行外設(shè)接口(SPI)一樣,只能用于短距離通信。又像異步串行接口(如RS232UART), 只需要兩根信號線來交換信息。

實現(xiàn)I2C需要兩根信號線完成信息交換,SCL時鐘信號線,SDA數(shù)據(jù)輸入/輸出線。它屬于同步通信,由于輸入輸出數(shù)據(jù)均使用一根線,因此通信方向為半雙工。

總結(jié):短距離、一主多從、半雙工、兩根線、同步通訊

937c16d2-2d86-11ed-ba43-dac502259ad0.png


2、名詞解釋

什么是半雙工呢?什么是同步通訊?什么是異步通訊?

2.1 什么是半雙工?

數(shù)據(jù)通信中,數(shù)據(jù)在線路上的傳送方式可以分為單工通信半雙工通信全雙工通信三種。

單工通信: 是指消息只能單方向傳輸?shù)墓ぷ鞣绞健@邕b控、遙測(一部分),就是單工通信方式。單工通信信道是單向信道,發(fā)送端和接收端的身份是固定的,發(fā)送端只能發(fā)送信息,不能接收信息;接收端只能接收信息,不能發(fā)送信息,數(shù)據(jù)信號僅從一端傳送到另一端,即信息流是單方向的。

半雙工: 是指數(shù)據(jù)可以沿兩個方向傳送,但同一時刻一個信道只允許單方向傳送,因此又被稱為雙向交替通信。(信息在兩點之間能夠在兩個方向上進行發(fā)送,但不能同時發(fā)送的工作方式。)半雙工方式要求收發(fā)兩端都有發(fā)送裝置和接收裝置。由于這種方式要頻繁變換信道方向,故效率低,但可以節(jié)約傳輸線路。

全雙工: 是指在通信的任意時刻,線路上可以同時存在A到B和B到A的雙向信號傳輸。在全雙工方式下,通信系統(tǒng)的每一端都設(shè)置了發(fā)送器和接收器,因此,能控制數(shù)據(jù)同時在兩個方向上傳送。全雙工方式無需進行方向的切換,因此,沒有切換操作所產(chǎn)生的時間延遲,這對那些不能有時間延誤的交互式應(yīng)用(例如遠程監(jiān)測和控制系統(tǒng))十分有利。比如,電話機則是一種全雙工設(shè)備,其通話雙方可以同時進行對話。

938cdd28-2d86-11ed-ba43-dac502259ad0.png

2.2 什么是同步通訊

同步通信: 發(fā)送端在發(fā)送串行數(shù)據(jù)的同時,提供一個時鐘信號,并按照一定的約定(例如:在時鐘信號的上升沿的時候,將數(shù)據(jù)發(fā)送出去)發(fā)送數(shù)據(jù),接收端根據(jù)發(fā)送端提供的時鐘信號,以及大家的約定,接收數(shù)據(jù)。如:I2C、SPI等有時鐘信號的協(xié)議,都屬于這種通信方式。

異步通信: 接收方并不知道數(shù)據(jù)什么時候會到達,收發(fā)雙方可以有各自自己的時鐘。發(fā)送方發(fā)送的時間間隔可以不均,接收方是在數(shù)據(jù)的起始位和停止位的幫助下實現(xiàn)信息同步的。這種傳輸通常是很小的分組,比如:一個字符為一組,數(shù)據(jù)組配備起始位和結(jié)束位。所以這種傳輸方式的效率是比較低的,因為額外加入了很多的輔助位作為負載,常用在低速的傳輸中。

同步通信與異步通信區(qū)別:

(1)同步通信要求接收端時鐘頻率和發(fā)送端時鐘頻率一致,發(fā)送端發(fā)送連續(xù)的比特流;異步通信時不要求接收端時鐘和發(fā)送端時鐘同步,發(fā)送端發(fā)送完一個字節(jié)后,可經(jīng)過任意長的時間間隔再發(fā)送下一個字節(jié)。

(2)同步通信效率高,異步通信效率較低。

(3)同步通信較復雜,雙方時鐘的允許誤差較?。划惒酵ㄐ藕唵?,雙方時鐘可允許一定誤差。

(4)同步通信可用于點對多點;異步通信只適用于點對點。

3、I2C的功能特點

I2C最重要的功能包括:

只需要兩條總線;

沒有嚴格的波特率要求,例如使用RS232,主設(shè)備生成總線時鐘;

所有組件之間都存在簡單的主/從關(guān)系,連接到總線的每個設(shè)備均可通過唯一地址進行軟件尋址;

I2C是真正的多主設(shè)備總線,可提供仲裁和沖突檢測;

傳輸速度:

標準模式:Standard Mode = 100 Kbps

快速模式:Fast Mode = 400 Kbps

高速模式:High speed mode = 3.4 Mbps

超快速模式:Ultra fast mode = 5 Mbps

最大主設(shè)備數(shù):無限制;

最大從機數(shù):理論上是127;

93a314ee-2d86-11ed-ba43-dac502259ad0.png


4、I2C的高阻態(tài)

漏極開路(Open Drain)即高阻狀態(tài),適用于輸入/輸出,其可獨立輸入/輸出低電平和高阻狀態(tài),若需要產(chǎn)生高電平,則需使用外部上拉電阻

高阻狀態(tài):高阻狀態(tài)是三態(tài)門電路的一種狀態(tài)。邏輯門的輸出除有高、低電平兩種狀態(tài)外,還有第三種狀態(tài)——高阻狀態(tài)的門電路。電路分析時高阻態(tài)可做開路理解。

我們知道IIC的所有設(shè)備是接在一根總線上的,那么我們進行通信的時候往往只是幾個設(shè)備進行通信,那么這時候其余的空閑設(shè)備可能會受到總線干擾,或者干擾到總線,怎么辦呢?

為了避免總線信號的混亂,IIC的空閑狀態(tài)只能有外部上拉, 而此時空閑設(shè)備被拉到了高阻態(tài),也就是相當于斷路, 整個IIC總線只有開啟了的設(shè)備才會正常進行通信,而不會干擾到其他設(shè)備。

5、數(shù)據(jù)傳輸協(xié)議

主設(shè)備和從設(shè)備進行數(shù)據(jù)傳輸時遵循以下協(xié)議格式。數(shù)據(jù)通過一條SDA數(shù)據(jù)線在主設(shè)備和從設(shè)備之間傳輸0和1的串行數(shù)據(jù)。串行數(shù)據(jù)序列的結(jié)構(gòu)可以分為:

93b03cf0-2d86-11ed-ba43-dac502259ad0.png

5.1 開始位

當主設(shè)備決定開始通訊時,需要發(fā)送開始信號,并且執(zhí)行以下過程:

將SDA線由高電平切換成低電平;

將SCL線由高電平切換成低電平;

主設(shè)備發(fā)送開始條件信號之后,所有從機即使處于睡眠模式也將變?yōu)榛顒訝顟B(tài),并等待接收地址位。

93bbb242-2d86-11ed-ba43-dac502259ad0.png

5.2 地址位

地址位支持7bit、10bit,主設(shè)備如果需要向從機發(fā)送/接收數(shù)據(jù),首先要發(fā)送對應(yīng)從機的地址,然后會匹配總線上掛載的從機的地址,故地址為主要用來辨識不同設(shè)備。

地址位由主機發(fā)送,從設(shè)備負責接受并識別該地址是否位自己地址。

5.3 讀寫位

由于I2C是半雙工通訊,所以設(shè)備需要確定數(shù)據(jù)傳輸?shù)姆较?,故引入了讀寫位。

如果主設(shè)備需要將數(shù)據(jù)發(fā)送到從設(shè)備,則該位設(shè)置為 0;

如果主設(shè)備需要往從設(shè)備接收數(shù)據(jù),則將其設(shè)置為 1 ;

讀寫位由主機發(fā)送;1表示讀操作,0表示寫操作。

5.4 應(yīng)答位

I2C最大的一個特點就是有完善的應(yīng)答機制,從機接收到主機的數(shù)據(jù)時,會回復一個應(yīng)答信號來通知主機表示“我收到了”。

應(yīng)答信號: 出現(xiàn)在1個字節(jié)傳輸完成之后,即第9個SCL時鐘周期內(nèi),此時主機需要釋放SDA總線,把總線控制權(quán)交給從機,由于上拉電阻的作用,此時總線為高電平,如果從機正確的收到了主機發(fā)來的數(shù)據(jù),會把SDA拉低,表示應(yīng)答響應(yīng)。

93db1646-2d86-11ed-ba43-dac502259ad0.png

非應(yīng)答信號:當?shù)?個SCL時鐘周期時,SDA保持高電平,表示非應(yīng)答信號。

93ebad62-2d86-11ed-ba43-dac502259ad0.png

非應(yīng)答信號可能是主機產(chǎn)生也可能是從機產(chǎn)生,產(chǎn)生非應(yīng)答信號的情況主要有以下幾種:

I2C總線上沒有主機所指定地址的從機設(shè)備;

從機正在執(zhí)行一些操作,處于忙狀態(tài),還沒有準備好與主機通訊;

主機發(fā)送的一些控制命令,從機不支持;

主機接收從機數(shù)據(jù)時,主機產(chǎn)生非應(yīng)答信號,通知從機數(shù)據(jù)傳輸結(jié)束,不要再發(fā)數(shù)據(jù)了;

5.5 數(shù)據(jù)位

I2C數(shù)據(jù)總線傳輸要保證在SCL為高電平時,SDA數(shù)據(jù)穩(wěn)定,所以SDA上數(shù)據(jù)變化只能在SCL為低電平時

93f75e5a-2d86-11ed-ba43-dac502259ad0.png

一次傳輸?shù)臄?shù)據(jù)總共有8位,由發(fā)送方設(shè)置,它需要將數(shù)據(jù)位傳輸?shù)浇邮辗健0l(fā)送之后會緊跟一個ACK / NACK位,如果接收器成功接收到數(shù)據(jù),則從機發(fā)送ACK。否則,從機發(fā)送NACK。

數(shù)據(jù)可以重復發(fā)送多個,直到接收到停止位為止。

5.6 停止位

當主設(shè)備決定結(jié)束通訊時,需要發(fā)送結(jié)束信號,需要執(zhí)行以下動作:

先將SDA線從低電壓電平切換到高電壓電平;

再將SCL線從高電平拉到低電平;

9401c6f6-2d86-11ed-ba43-dac502259ad0.png

5.7 總結(jié)

寄存器的標準流程為:

Master發(fā)起START

Master發(fā)送I2C addr(7bit)和w操作0(1bit),等待ACK

Slave發(fā)送ACK

Master發(fā)送reg addr(8bit),等待ACK

Slave發(fā)送ACK

Master發(fā)送data(8bit),即要寫入寄存器中的數(shù)據(jù),等待ACK

Slave發(fā)送ACK

第6步和第7步可以重復多次,即順序?qū)懚鄠€寄存器

Master發(fā)起STOP

讀寄存器的標準流程為:

Master發(fā)送I2C addr(7bit)和w操作1(1bit),等待ACK

Slave發(fā)送ACK

Master發(fā)送reg addr(8bit),等待ACK

Slave發(fā)送ACK

Master發(fā)起START

Master發(fā)送I2C addr(7bit)和r操作1(1bit),等待ACK

Slave發(fā)送ACK

Slave發(fā)送data(8bit),即寄存器里的值

Master發(fā)送ACK

第8步和第9步可以重復多次,即順序讀多個寄存器

6、仲裁機制

在多主的通信系統(tǒng)中??偩€上有多個節(jié)點,它們都有自己的尋址地址,可以作為從節(jié)點被別的節(jié)點訪問,同時它們都可以作為主節(jié)點向其他的節(jié)點發(fā)送控制字節(jié)和傳送數(shù)據(jù)。

但是如果有兩個或兩個以上的節(jié)點都向總線上發(fā)送啟動信號并開始傳送數(shù)據(jù),這樣就形成了沖突。要解決這種沖突,就要進行仲裁的判決,這就是I2C總線上的仲裁。

I2C總線上的仲裁分兩部分:SCL線的同步和SDA線的仲裁。

6.1 SCL線的同步

SCL同步是由于總線具有線 “與” 的邏輯功能(開漏輸出),即只要有一個節(jié)點發(fā)送低電平時,總線上就表現(xiàn)為低電平。當所有的節(jié)點都發(fā)送高電平時,總線才能表現(xiàn)為高電平。正是由于線“與”邏輯功能的原理,當多個節(jié)點同時發(fā)送時鐘信號時,在總線上表現(xiàn)的是統(tǒng)一的時鐘信號,這就是SCL的同步原理。

94226370-2d86-11ed-ba43-dac502259ad0.png

6.2 SDA線的仲裁

總線仲裁是為了解決多設(shè)備同時競爭中線控制權(quán)的問題,通過一定的裸機來決定哪個設(shè)備能夠獲得最終的總線控制權(quán)。

SDA線的仲裁也是建立在總線具有線“與”邏輯功能的原理上的。節(jié)點在發(fā)送1位數(shù)據(jù)后,比較總線上所呈現(xiàn)的數(shù)據(jù)與自己發(fā)送的是否一致(類似于CAN總線的回讀機制)。

是,繼續(xù)發(fā)送;

否則,退出競爭;

I2C總線的控制邏輯:低電平優(yōu)先

SDA線的仲裁可以保證I2C總線系統(tǒng)在多個主節(jié)點同時企圖控制總線時通信正常進行并且數(shù)據(jù)不丟失,總線系統(tǒng)通過仲裁只允許一個主節(jié)點可以繼續(xù)占據(jù)總線。


9428d1ec-2d86-11ed-ba43-dac502259ad0.png

943ba222-2d86-11ed-ba43-dac502259ad0.png


上圖過程分析:

第一個周期:所有設(shè)備發(fā)送1,做與運算后的結(jié)果為1,與自己發(fā)送的數(shù)據(jù)相同,繼續(xù)發(fā)送;
第二個周期:所有設(shè)備發(fā)送1,做與運算后的結(jié)果為1,與自己發(fā)送的數(shù)據(jù)相同,繼續(xù)發(fā)送;
第三個周期:所有設(shè)備發(fā)送0,做與運算后的結(jié)果為0,與自己發(fā)送的數(shù)據(jù)相同,繼續(xù)發(fā)送;
第四個周期:AB設(shè)備發(fā)送1,C設(shè)備發(fā)送0,做與運算后結(jié)果為0,與AB發(fā)送的數(shù)據(jù)不同,則AB退出競爭,節(jié)點C獲勝;

注:若AB兩個設(shè)備發(fā)送0,C設(shè)備發(fā)送1,這最后與運算結(jié)果為0,與AB數(shù)據(jù)格式相同,與C數(shù)據(jù)格式不同,則C退出,AB繼續(xù)發(fā)送,直至AB中有一個退出。

SDA仲裁和SCL時鐘同步處理過程沒有先后關(guān)系,而是同時進行的。

7、I2C死鎖

在實際使用過程中,I2C比較容易出現(xiàn)的一個問題就是死鎖 ,死鎖在I2C中主要表現(xiàn)為:I2C死鎖時表現(xiàn)為SCL為高,SDA一直為低。

在I2C主設(shè)備進行讀寫操作的過程中,主設(shè)備在開始信號后控制SCL產(chǎn)生8個時鐘脈沖,然后拉低SCL信號為低電平,在這個時候,從設(shè)備輸出應(yīng)答信號,將SDA信號拉為低電平。

如果這個時候主設(shè)備異常復位,SCL就會被釋放為高電平。此時,如果從設(shè)備沒有復位,就會繼續(xù)I2C的應(yīng)答,將SDA一直拉為低電平,直到SCL變?yōu)榈碗娖?,才會結(jié)束應(yīng)答信號。

而對于I2C主設(shè)備來說,復位后檢測SCL和SDA信號,如果發(fā)現(xiàn)SDA信號為低電平,則會認為I2C總線被占用,會一直等待SCL和SDA信號變?yōu)楦唠娖健?/p>

這樣,I2C主設(shè)備等待從設(shè)備釋放SDA信號,而同時I2C從設(shè)備又在等待主設(shè)備將SCL信號拉低以釋放應(yīng)答信號,兩者相互等待,I2C總線進人一種死鎖狀態(tài)。

同樣,當I2C進行讀操作,I2C從設(shè)備應(yīng)答后輸出數(shù)據(jù),如果在這個時刻I2C主設(shè)備異常復位而此時I2C從設(shè)備輸出的數(shù)據(jù)位正好為0,也會導致I2C總線進入死鎖狀態(tài)。

8、I2C的代碼實現(xiàn)

參考了STM32的HAL庫中I2C驅(qū)動,主設(shè)備發(fā)送函數(shù)HAL_I2C_Master_Transmit()具體如下:

/**
*@briefTransmitsinmastermodeanamountofdatainblockingmode.
*@paramhi2cPointertoaI2C_HandleTypeDefstructurethatcontains
*theconfigurationinformationforthespecifiedI2C.
*@paramDevAddressTargetdeviceaddress:Thedevice7bitsaddressvalue
*indatasheetmustbeshiftedtotheleftbeforecallingtheinterface
*@parampDataPointertodatabuffer
*@paramSizeAmountofdatatobesent
*@paramTimeoutTimeoutduration
*@retvalHALstatus
*/
HAL_StatusTypeDefHAL_I2C_Master_Transmit(I2C_HandleTypeDef*hi2c,
uint16_tDevAddress,
uint8_t*pData,
uint16_tSize,
uint32_tTimeout){
uint32_ttickstart=0x00U;

/*Inittickstartfortimeoutmanagement*/
tickstart=HAL_GetTick();

if(hi2c->State==HAL_I2C_STATE_READY){
/*WaituntilBUSYflagisreset*/
if(I2C_WaitOnFlagUntilTimeout(hi2c,I2C_FLAG_BUSY,SET,I2C_TIMEOUT_BUSY_FLAG,tickstart)!=HAL_OK){
returnHAL_BUSY;
}

/*ProcessLocked*/
__HAL_LOCK(hi2c);

/*CheckiftheI2Cisalreadyenabled*/
if((hi2c->Instance->CR1&I2C_CR1_PE)!=I2C_CR1_PE){
/*EnableI2Cperipheral*/
__HAL_I2C_ENABLE(hi2c);
}

/*DisablePos*/
hi2c->Instance->CR1&=~I2C_CR1_POS;

hi2c->State=HAL_I2C_STATE_BUSY_TX;
hi2c->Mode=HAL_I2C_MODE_MASTER;
hi2c->ErrorCode=HAL_I2C_ERROR_NONE;

/*Preparetransferparameters*/
hi2c->pBuffPtr=pData;
hi2c->XferCount=Size;
hi2c->XferOptions=I2C_NO_OPTION_FRAME;
hi2c->XferSize=hi2c->XferCount;

/*SendSlaveAddress*/
if(I2C_MasterRequestWrite(hi2c,DevAddress,Timeout,tickstart)!=HAL_OK){
if(hi2c->ErrorCode==HAL_I2C_ERROR_AF){
/*ProcessUnlocked*/
__HAL_UNLOCK(hi2c);
returnHAL_ERROR;
}else{
/*ProcessUnlocked*/
__HAL_UNLOCK(hi2c);
returnHAL_TIMEOUT;
}
}

/*ClearADDRflag*/
__HAL_I2C_CLEAR_ADDRFLAG(hi2c);

while(hi2c->XferSize>0U){
/*WaituntilTXEflagisset*/
if(I2C_WaitOnTXEFlagUntilTimeout(hi2c,Timeout,tickstart)!=HAL_OK){
if(hi2c->ErrorCode==HAL_I2C_ERROR_AF){
/*GenerateStop*/
hi2c->Instance->CR1|=I2C_CR1_STOP;
returnHAL_ERROR;
}else{
returnHAL_TIMEOUT;
}
}
/*WritedatatoDR*/
hi2c->Instance->DR=(*hi2c->pBuffPtr++);
hi2c->XferCount--;
hi2c->XferSize--;

if((__HAL_I2C_GET_FLAG(hi2c,I2C_FLAG_BTF)==SET)
&&(hi2c->XferSize!=0U)){
/*WritedatatoDR*/
hi2c->Instance->DR=(*hi2c->pBuffPtr++);
hi2c->XferCount--;
hi2c->XferSize--;
}
/*WaituntilBTFflagisset*/
if(I2C_WaitOnBTFFlagUntilTimeout(hi2c,Timeout,tickstart)!=HAL_OK){

if(hi2c->ErrorCode==HAL_I2C_ERROR_AF){
/*GenerateStop*/
hi2c->Instance->CR1|=I2C_CR1_STOP;
returnHAL_ERROR;
}else{
returnHAL_TIMEOUT;
}
}
}

/*GenerateStop*/
hi2c->Instance->CR1|=I2C_CR1_STOP;

hi2c->State=HAL_I2C_STATE_READY;
hi2c->Mode=HAL_I2C_MODE_NONE;

/*ProcessUnlocked*/
__HAL_UNLOCK(hi2c);

returnHAL_OK;
}else{
returnHAL_BUSY;
}
}


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 串行接口
    +關(guān)注

    關(guān)注

    3

    文章

    373

    瀏覽量

    43072
  • SPI接口
    +關(guān)注

    關(guān)注

    0

    文章

    260

    瀏覽量

    35132
  • 高電平
    +關(guān)注

    關(guān)注

    6

    文章

    173

    瀏覽量

    21823
  • I2C協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8702

原文標題:一文帶你讀懂I2C協(xié)議

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    I2C總線復用

    帝晶智慧屏I2C總線復用
    的頭像 發(fā)表于 03-11 17:20 ?1237次閱讀

    I2C總線通信原理 如何設(shè)計I2C總線電路

    I2C總線通信原理 I2C(Inter-Integrated Circuit)總線是一種用于集成電路之間進行通信的串行通信協(xié)議。它最早由飛利浦公司(現(xiàn)被恩智浦電子收購)于1982年推出,是一種簡單
    的頭像 發(fā)表于 01-31 15:01 ?733次閱讀

    I2C總線與Arduino的接口示例

    在現(xiàn)代電子設(shè)計中,I2C總線因其簡單性和靈活性而廣受歡迎。它允許多個設(shè)備共享同一通信線路,從而節(jié)省空間和成本。Arduino,作為一個多功能的微控制器平臺,自然也支持I2C通信。 I2C
    的頭像 發(fā)表于 01-17 15:34 ?1147次閱讀

    I2C總線的工作模式介紹

    在現(xiàn)代電子系統(tǒng)中,I2C總線作為一種多主機、多從機的串行通信協(xié)議,扮演著至關(guān)重要的角色。它允許多個設(shè)備共享同一總線,進行數(shù)據(jù)傳輸,從而簡化了系統(tǒng)設(shè)計并降低了成本。 I2C總線的基本特性 I2C
    的頭像 發(fā)表于 01-17 15:32 ?638次閱讀

    I2C總線協(xié)議詳細解析

    1. I2C總線簡介 I2C總線由Philips Semiconductor(現(xiàn)為NXP Semiconductors)在1980年代初期開發(fā)。它是一種多主機總線,允許多個設(shè)備共享同一總線。I2C
    的頭像 發(fā)表于 01-17 15:22 ?617次閱讀

    I2C總線故障排除技巧

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個設(shè)備在兩條線上(數(shù)據(jù)線SDA和時鐘線SCL)進行通信。由于其簡單性和靈活性,I2C總線在嵌入式系統(tǒng)中非常流行。然而,當I2C總線出現(xiàn)問
    的頭像 發(fā)表于 01-17 15:20 ?1619次閱讀

    I2C總線與單片機的連接

    在現(xiàn)代電子系統(tǒng)中,單片機(MCU)是核心控制單元,而I2C總線作為一種多主機、多從機的串行通信協(xié)議,因其簡單、高效和節(jié)省引腳的特性而被廣泛應(yīng)用于各種電子設(shè)備中。 I2C總線概述 I2C
    的頭像 發(fā)表于 01-17 15:18 ?761次閱讀

    I2C總線應(yīng)用實例分析

    在現(xiàn)代電子系統(tǒng)中,I2C總線因其簡單、靈活和高效的特點而被廣泛應(yīng)用于各種設(shè)備之間的通信。 I2C總線概述 I2C總線由Philips(現(xiàn)為NXP)在1980年代初期開發(fā),最初用于音頻和
    的頭像 發(fā)表于 01-17 15:09 ?514次閱讀

    I2C總線與SPI總線的比較

    在現(xiàn)代電子系統(tǒng)中,微控制器與各種外設(shè)之間的通信是必不可少的。I2C和SPI是兩種流行的串行通信協(xié)議,它們各自具有獨特的特點和應(yīng)用場景。 I2C總線
    的頭像 發(fā)表于 01-17 15:08 ?665次閱讀

    RISC V的I2C操作

    函數(shù)功能,除了必須通過I2C主設(shè)備實現(xiàn)的功能:發(fā)送start和stop之外,函數(shù)本身并沒有主從之分;當需要RISC V中的I2C做從設(shè)備時,只需監(jiān)控總線狀態(tài)(如是否接收到有效的數(shù)據(jù)等)
    的頭像 發(fā)表于 11-01 11:06 ?559次閱讀

    I2C協(xié)議的基礎(chǔ)知識

    本文從I2C協(xié)議的概述開始,描述協(xié)議的歷史、不同速度模式、物理層和數(shù)據(jù)幀結(jié)構(gòu),最后介紹I2C混合電壓系統(tǒng)中電平兼容性以及上拉電阻大小計算。
    的頭像 發(fā)表于 10-22 15:51 ?1284次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>的基礎(chǔ)知識

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費下載
    發(fā)表于 10-08 11:13 ?2次下載
    了解<b class='flag-5'>I2C</b>總線

    I2C基本指南

    電子發(fā)燒友網(wǎng)站提供《I2C基本指南.pdf》資料免費下載
    發(fā)表于 09-10 09:40 ?0次下載
    <b class='flag-5'>I2C</b>基本指南

    簡單認識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,I2C
    的頭像 發(fā)表于 07-25 18:06 ?2113次閱讀

    I2C總線協(xié)議的工作原理和尋址格式

    特點,在嵌入式系統(tǒng)設(shè)計中得到了廣泛應(yīng)用。本文將詳細介紹I2C總線協(xié)議的工作原理和尋址格式,幫助讀者深入理解該協(xié)議。
    的頭像 發(fā)表于 05-27 15:47 ?2459次閱讀