圖一 : iic引腳配置為iic模式
圖二: iic控制暫存器
圖三 cortex-a8 內部iic相關暫存器框圖
圖四: iic狀態暫存器
圖5 lm75 外圍電路
讀取lm75溫度的幾個步驟:
1 . 傳送從機位址
2. 配置模式,lm74有四種模式,我們這裡只選第一種唯讀模式
3.再次傳送從機位址,選擇lm75晶元後即可等待lm75回送資料,這時晶元會回送主機兩次資料第一次是主要值,第二次是小數部分,最小精度到0.5
注意:每一次收發資料都要進行應答,以保證資料的有效性
typedef struct i2c0_type; //i2c相關暫存器
typedef struct gpd_tydef; //連線從機裝置gpio埠
#define i2c0 (* (volatile i2c0_type *)0xec100000)
#define gpd (* (volatile gpd_tydef *)0xe0300080)
#define mode 0x00 //設定讀模式
#define config 0x01 //設定配置模式
#define hyst 0x02 //設定(hyst讀寫)模式
#define t 0x03 //設定os讀寫模式
void cfg_gpio(void)
void delay(void) //延時函式
int read_data_one() //讀模式,第一階段,傳送器件位址及要讀取的位址
int read_data_two() //讀模式,第二階段,傳送器件位址,接收從機的資料
int main()
return 0;
}
LM75溫度晶元I2C驅動
include include include include include include include include define i2c retries 0x0701 define i2c timeout 0x0702 define i2c rdwr 0x0707 定義struct i2...
i2c連續讀寫間隔 I2C匯流排協議分析
i2c匯流排是由philips公司開發的一種簡單 雙向二線制同步序列匯流排。它只需要兩根線即可在連線於匯流排上的裝置之間通訊。i2c的兩根線sda 序列資料線 和scl 序列時鐘線 都是雙向i o線,介面電路為開漏輸出,需通過上拉電阻接電源vcc,當匯流排空閒時,兩根線都是高電平。常見的硬體結構圖 ...
i2c匯流排時序
一心想踏入linux device driver的世界,想著i2c匯流排相對於usb等其他匯流排較為簡單,就以i2c作為切入點,希望可以逐步理解ldd的設計思想,並能理解其裝置模型的概念。在此對近期於i2c匯流排及驅動原始碼的理解做備忘,以免徒勞。平台友善之臂s70 tiny6410 cpusams...