在 MK26 MCU中,使用 I2C作為從機,設置 CLK時鐘速率為 1MHz。I2C的SCL停止保持時間由主機控制。這里I2C被用作從器件。在手冊沒有解釋I2C時鐘速率設置與從機的CLK 停止保持低位時間有關。
在測試中,如果 sclStopHoldTime_ns 設置為 4000, CLK 實際通信的頻率只有 250KHz (如果沒有連接到 I2C從機端, I2C主機端發(fā)送的實際頻率是 1MHz),并且CLK的高電平和低電平的占空比小于20%。
根據(jù) MK26的參考RM手冊文檔,這可能與I2C的<57.5.1.8握手>和<57.5.1.9時鐘拉伸>功能有關。修改sclStopHoldTime_ns的值可以更改I2C的最大CLK速率。
該參數(shù)對應于底層的 I2C驅(qū)動 I2Cx_F ,此寄存器的描述與 I2C的SCL保持低時間無關。如果將sclStopHoldTime_ns更改為500,最大速度可達1MHz,CLK占空比也接近50%。
作為I2C從機,要求CLK速度達到1MHz。是否有推薦的軟件配置(MCU參數(shù)配置、端口上拉/漏極開路配置等)?
從SDK代碼中可以看到,在設置sclStopHoldTime時會選擇不同的MULT和ICR。sclStopHoldTime 也是在I2C的Slave從機配置結(jié)構(gòu)中設置的。主機Master配置結(jié)構(gòu)里面沒有sclStopHoldTime_ns相關的設置。
????
不同的 ICR數(shù)值對應不同的 SCL 分頻值。
最終,I2C 波特率受 MUL和 SCL 分頻決定的。
針對不同的 I2C 速率,SCL停止保持時間可以參考如下的代碼設置描述。
以上三個數(shù)據(jù)均在數(shù)據(jù)手冊中可查到出處,如下所示。
MK26和 MK66F MCU 具有相同的 I2C外設,因此可以參考FRDM-K66F的SDK相關代碼。
I2C中常用的上拉電阻為4.7K,速度越高,電阻可以適當降低,使用1.5K、1K或510Ω。
審核編輯:劉清
-
mcu
+關注
關注
146文章
16990瀏覽量
350306 -
寄存器
+關注
關注
31文章
5317瀏覽量
120006 -
ICR
+關注
關注
0文章
7瀏覽量
7781 -
I2C信號
+關注
關注
0文章
2瀏覽量
5943
原文標題:MK26 MCU I2C 從機模式的 1Mhz 配置
文章出處:【微信號:嵌入式 MCU,微信公眾號:嵌入式 MCU】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論