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