欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

iic總線包含哪些寄存器,有什么用?

江奕云2年前16瀏覽0評論

LPC2124有一個標準的I2C總線接口,可配置為主機或從機,總線時鐘速率可調整,最高可支持400KHZ總線速率。使用I2C總線時,要將相應得引腳設置連接SCL和SDA,并且總線上要上拉電阻,阻值為1~10KΩ,依據所需要的總線速率而定??偩€速率越高,電阻阻值應該越小。I2C總線可接標準I2C接口器件,如串行EEPROM、RAM、LCD、時鐘芯片以及音調發生器。

根據方向位(R/W)狀態的不同,I2C總線上存在以下兩種類型的數據傳輸:

⑴從主發送器向從接收器發送數據。

主機發送得第一個字節是從機地址,接下來是數據字節流。從機每接收到一個字節返回一個應答位。

⑵從發送器向主接收器發送數據。

第一個字節(從地址)從主機發送。從機返回一個應答位。接下來從機向主機發送數據字節。主機每接收一個字節返回一個應答位。接收完最后一個字節,主機返回一個“非應答位”。主器件產生所有串行時鐘脈沖和起始以及停止條件。出現停止條件或重復的起始條件時傳輸結束。由于重復的起始條件同時是下一個串行發送的開始,因此I2C總線不會被釋放。

LPC2124的I2C是字節方式的I2C接口,只要把一字節數據寫入I2C數據寄存器I2DAT后,即可由I2C接口自動完成所有的數據位發送。它有4種操作模式:主發送器模式、主接收器模式、從發送器模式和從接收器模式。

⑴主發送器模式

該模式中,數據從主機發送到從機。在進入主發送器模式之前,I2CONSET(I2C控制置位寄存器)必須按如下設置進行初始化:

I2CONSET---I2ENSTASTOSIAA------

--10000----

說明如下:

I2EN=1,使能I2C接口;

AA=0,不產生應答信號,即不允許進入從機模式;

SI=0,I2C中斷標志為0;

STO=0,停止標志為0;

STA=0,起始標志為0。

在該模式下,數據方向位(R/W)應為0表示執行寫操作。因此第一個發送的字節為從地址(7位)和寫方向位。數據的發送每次為8位,每發送完一字節,都接收到一個由從機返回的應答位。該模式的數據發送操作步驟如下:

①通過軟件置位STA,進入I2C主發送器模式,I2C邏輯在總線空閑后立即發送一個起始條件。

②當發送完起始條件后,SI位置位。此時I2STAT(狀態寄存器)中的狀態代碼為08H,該狀態代碼用于中斷服務程序的處理。

③把從地址和寫方向位裝入I2DAT(數據寄存器),然后清零SI位(向I2CONCLR寄存器中得SIC位寫入1可清零SI),開始發送從地址和寫方向位。

④當從地址和寫方向位已發送且接收到應答位后,SI位再次置位(可能的狀態代碼為18H,20H或38H)。

⑤當狀態碼為18H時,表明從機已應答,則可以將數據裝入I2DAT,然后清零SI位,開始發送數據。

⑥當正確發送數據,SI位再次置位(可能的狀態碼為28H,30H)。此時可以再次發送數據或者置位STO結束總線。

⑵主接收器模式

在該模式下,主機所接收的數據字節來自從發送器,數據方向位應該為1表示執行讀操作。該模式的數據接收操作步驟如下:

①通過軟件置位STA,進入I2C主發送器模式,I2C邏輯在總線空閑后立即發送一個起始條件。

②當發送完起始條件后,SI位置位。此時I2STAT(狀態寄存器)中的狀態代碼為08H,該狀態代碼用于中斷服務程序的處理。

③把從地址和讀方向位裝入I2DAT(數據寄存器),然后清零SI位,開始發送從地址和讀方向位。

④當從地址和讀方向位已發送且接收到應答位后,SI位再次置位(可能的狀態代碼為38H,40H或48H)。

⑤當狀態碼為40H時,表明從機已應答。設置AA位,用來控制接收到數據后是產生應答信號還是產生非應答信號,然后清零SI位,開始接收數據。

⑥當正確接收到一個字節數據后,SI位再次置位(可能的狀態碼為50H或58H)。此時可以再次接收數據或者置位STO結束總線。

⑶從接收器模式

當配置為I2C從機時,I2C主機可以對它進行讀、寫操作。要初始化為從機用戶必須將從地址寫入I2ADR(從地址寄存器),并按如下配置I2CONSET:

I2CONSET---I2ENSTASTOSIAA------

--10001----

在該模式下,從主發送器接收數據字節。當主機訪問從機時,接收主機發送過來的數據,并產生應答信號。數據方向位應該為0表示寫操作。該模式的數據接收操作步驟如下:

①將從地址寫入I2ADR并配置I2CONSET完成初始化。等待它被自身的從地址或通用地址尋址。

②在接收到地址和方向位后,SI位置位并可從I2STAT中讀出有效的狀態代碼。

③根據狀態代碼執行相應的操作。

⑷從發送器模式

當主機訪問從機時,向主機發送數據,并等待主機的應答信號。數據方向位應該為1表示讀操作。使用該模式時,用戶程序只需根據各種狀態碼作出相應的操作。

I2C時鐘由SCL占空比寄存器控制(I2SCLH、I2SCLL),分別設置SCL的高電平和低電平時間,獲得合適的總線時鐘頻率。寄存器I2CONSET則用來控制I2C總線的模式及總線操作,其位SI為I2C中斷標志位,所有總線操作都要依賴于這一標志;同時它又鉗住總線,使總線的數據發送/接收得以同步控制。寄存器I2CONCLR則為對應的清零寄存器;I2STAT為I2C狀態寄存器,用于指示總線處于哪種狀態,以方便控制操作。I2DAT為I2C總線數據寄存器,包含要發送的數據或剛收到的數據。當系統作為從機時,I2ADR從機地址寄存器有效。當總線對此地址進行訪問時,將會產生I2C中斷。

I2C主機基本操作方法:

①設置I2C引腳連接;

②設置I2C時鐘速率(I2SCLH、I2SCLL);

③設置為主機,并發送起始信號(I2CONSET的I2EN、STA位為1,AA位為0);

④發送從機地址(I2DAT),控制I2CONSET發送;

⑤判斷總線狀態(I2STAT),進行數據傳輸控制;

⑥發送結束信號(I2CONSET)。

I2C從機基本操作方法:

①設置I2C引腳連接;

②設置自身的從機地址(I2ADR);

③使能I2C(I2CONSET的I2EN、AA位為1);

④判斷SI位或者等待I2C中斷,等待主機操作;

⑤判斷總線狀態I2STAT,進行數據傳輸控制。