STM32F103之I2C學習記錄


26.3.1  模式選擇

該外設可以在以下四種模式之一

1)從機發送模式

2)從機接收模式

3)主機發送模式

4)主機接收模式

 

IIC協議時序

 

MSB:Most Significant Bit(最高有效位)

起始條件:SCL為高電平狀態,SDA從高電平拉低

 

 停止條件:SCL為高電平狀態,SDA從低電平拉高

數據發送的順序:先發送高位

 

I2C模塊圖

 

 

 可以看出IIC模塊中有:

1)數據寄存器、數據移位寄存器、比較器、PEC計算器

2)自己地址寄存器、雙地址寄存器、PEC寄存器

3)數據控制單元

4)時鍾控制單元

5)噪聲濾波器

26.3.3  I2C主模式

主模式所需的序列

1)配置I2C_CR2寄存器,以生成正確的計時

2)配置時鍾控制寄存器

3)配置上升時間寄存器

4)配置I2C_CR1寄存器使能該外設

5)設置I2C_CR1寄存器的起始位,以生成一個起始條件

外圍輸入時鍾:

在sm mode下,至少2MHZ

在Fm mode下,至少4MHZ

 

SCL主時鍾生成

CCR位用於生成SCL時鍾的高電平和低電平,分別從上升沿和下降沿的生成開始。當一個從設備可能延伸SCL線路時,外設在被編程的時間結束時檢查來自總線的SCL輸入,在上升沿生成時。

如果SCL線是低的,這意味着一個從節點正在拉伸總線,而高層計數器將停止,直到SCL線被檢測到是高的。這就保證了最小值高周期的SCL時鍾參數。

如果SCL線高,則高電平計數器繼續計數。如果SCL線高,則高電平計數器繼續計數。

實際上,從外圍設備生成SCL上升邊緣到外圍設備檢測SCL上升邊緣的反饋循環需要時間,即使沒有從設備延長時鍾。

 

起始條件

當忙位被清除時,設置起始位將使得接口生成起始條件,並且切換到主模式。

在主模式下,設置開始位將導致接口在當前字節傳輸結束時生成重啟條件。

一旦起始條件被發送了:

SB位由硬件設置,如果設置了ITEVFEN位,就會產生一個中斷。

 

26.3.6 SMBus

系統管理總線(SMBus)是一個兩線接口,通過它,各種設備可以彼此通信,也可以與系統的其他部分通信。

它基於I2C操作原則。SMBus為系統和電源管理相關的任務提供了一個控制總線。

系統可以使用SMBus來在設備之間傳遞消息,而不是切換各個控制線路。

系統管理總線規范涉及三種類型的設備。

1)從設備是接收或響應命令的設備。

2)主設備是發出命令、生成時鍾並終止傳輸的設備。

3)主機是為系統的CPU提供主接口的專用主機。主機必須是主從主機,並且必須支持SMBus主機通知協議。

系統中只允許一個主機。

SMBus與I2C之間的相同點

1)都是有兩條線:時鍾線和數據線+可選線

2)主從通信,主機提供時鍾

3)多主能力

4)數據格式類似

 

SMBus與I2C之間的不同點

 

 

 

 

 

 

26.4  I2C中斷

 

 

 

 

 

 

 

 

26.6  I2C寄存器

 

 

 

 

 

/========================STM32CUBEMX分析IIC===============================/

1、首先要選擇模式,有以下幾個模式

 

 

 

 

2、對IIC的一些參數配置

 

 

 3、IIC涉及的中斷

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM