文章目錄
- 引言
- I2C基礎知識
- 概念和特性
- 協議,四種信號組合
- I2C調試手段
- 硬件
- 軟件
- HDF框架下的I2C設備驅動
- 案例描述
- 驅動Dispatch
- 驅動讀寫
- 總結
引言
I2C基礎知識
概念和特性
- 集成電路總線,由串網12C(1C、12C、Inter-Integrated Circuit BUS)行數據線SDA和串行時鐘線SCL組成,對于-個12C接口的器件,至少還需要電源和地線
- 12C總線是雙向、半雙工傳輸支持多主機、多從機同時掛接在一條12C總線上,多主機同時請求總線時,可以通過沖突檢測和仲裁機制防止總線數據被破壞;
- 每個從設備都有唯一的地址,從設備可被尋址(又稱被選中)只有被選中的從設備才能參與通信,每次通信只有一個主設備和個從設備參與;
- 主設備發起一次通信,從設備響應:主從設備都可以發送和接收數據,SCL時鐘由主設備發出,在工程中常見MCU或SOC作為主設備,主從設備地位可能交換。
12C是串行低速總線,常見傳輸速度如下
- 標準模式(Standard-mode):速率高達100kbit/s
- 快速模式(Fast-mode):速率高達400kbit/s
- 快速模式+(Fast-mode Plus):速率高達1Mbit/s。
- 高速模式(High-speed mode):速率高達3.4Mbit/s
工程中常見兼容標準模式和快速模式的12C從設備。
- 一條12C總線上的所有從設備都有一個唯一的設備地址,不能與線上的其他設備地址重復;
- 設備地址有7位和10位兩種格式,常見7位格式;
- I2C主設備對從設備可執行寫操作和讀操作,通過寫地址和讀地址區分寫操作和讀操作;
設備地址7位:1010000 (0x50)
寫地址8位:設備地址左移1位,末位補0,10100000 (0xA0)
讀地址8位:設備地址左移1位,末位補1,10100001 (0xA1)
- 同一個I2C從設備可能具有多個設備地址,通常可通過從設備的管腳配置,以I2C接口的ROM芯片AT24C256為例: