日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32的I2C特性及架构

發布時間:2024/4/15 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32的I2C特性及架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???

???? 軟件模擬協議:使用CPU直接控制通訊引腳(GPIO)的電平,產生出符合通訊協議標準的邏輯。

???? 硬件實現協議:由STM32的I2C片上外設專門負責實現I2C通訊協議,只要配置好該外設,它就會自動根據協議要求產生通訊信號,收發數據并緩存起來,CPU只要檢測該外設的狀態和訪問數據寄存器,就能完成數據收發。這種由硬件外設處理I2C協議的方式減輕了CPU的工作,且使軟件設計更加簡單。

????? STM32的I2C外設可用作通訊的主機及從機,支持100Kbit/s和400Kbit/s的速率,支持7位、10位設備地址,支持DMA數據傳輸,并具有數據校驗功能。

STM32框架結構

1.通訊引腳

???? STM32芯片有多個I2C外設,它們的I2C通訊信號引出到不同的GPIO引腳上,使用時必須配置到這些指定的引腳,以《STM32F10x規格書》為準。

2.時鐘控制邏輯

???? SCL線的時鐘信號,由I 2C接口根據時鐘控制寄存器(CCR)控制,控制的參數主要為時鐘頻率。

?????????? ? 可選擇I2C通訊的“標準/快速”模式,這兩個模式分別I2C對應 100/400Kbit/s的通訊速率。

?????????? ? 在快速模式下可選擇SCL時鐘的占空比,可選Tlow/Thigh=2或 Tlow/Thigh=16/9模式。

?????????? ? CCR寄存器中12位的配置因子CCR,它與I2C外設的輸入時鐘源共同作用,產生SCL時鐘。STM32的I2C外設輸入時鐘源為PCLK1。

???? 計算時鐘頻率:

?????????? 標準模式: Thigh=CCR*TPCKL1 Tlow = CCR*TPCLK1

?????????? 快速模式中Tlow/Thigh=2時: Thigh = CCR*TPCKL1 Tlow = 2*CCR*TPCKL1

??????????? 快速模式中Tlow/Thigh=16/9時: Thigh = 9*CCR*TPCKL1 Tlow = 16*CCR*TPCKL1

???? 例如,我們的PCLK1=36MHz,想要配置400Kbit/s的速率,計算方式如下:

?????????? PCLK時鐘周期: TPCLK1 = 1/36000000

????????? 目標SCL時鐘周期: TSCL = 1/400000

?????????? SCL時鐘周期內的高電平時間: THIGH = TSCL/3

?????????? SCL時鐘周期內的低電平時間: TLOW = 2*TSCL/3

?????????? 計算CCR的值: CCR = THIGH/TPCLK1 = 30

???? 計算出來的CCR值寫入到寄存器即可。

3.數據控制邏輯

???? I2C的SDA信號主要連接到數據移位寄存器上,數據移位寄存器的數據來源及目標是數據寄存器(DR)、地址寄存器(OAR)、PEC寄存器以及SDA數據線。

????? ? 當向外發送數據的時候,數據移位寄存器以“數據寄存器”為數據源,把數據一位一位地通過SDA信號線發送出去;

????? ? 當從外部接收數據的時候,數據移位寄存器把SDA信號線采樣到的數據一位一位地存儲到“數據寄存器”中。

4.整體控制邏輯

???? 整體控制邏輯負責協調整個I2C外設,控制邏輯的工作模式根據我們配置的“控制寄存器(CR1/CR2)”的參數而改變。

???? 在外設工作時,控制邏輯會根據外設的工作狀態修改“狀態寄存器(SR1 和SR2)”,只要讀取這些寄存器相關的寄存器位,就可以了解I2C的工作狀態。

轉載于:https://www.cnblogs.com/wenshinlee/p/8988170.html

總結

以上是生活随笔為你收集整理的STM32的I2C特性及架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。