在 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
+關注
關注
147文章
18925瀏覽量
398322 -
寄存器
+關注
關注
31文章
5608瀏覽量
130003 -
ICR
+關注
關注
0文章
7瀏覽量
7952 -
I2C信號
+關注
關注
0文章
2瀏覽量
6215
原文標題:MK26 MCU I2C 從機模式的 1Mhz 配置
文章出處:【微信號:嵌入式 MCU,微信公眾號:嵌入式 MCU】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
STM32 I2C從機中斷模式測試
MCU是否支持從機模式下的I2C線路?
STM32作為I2C從機中斷接收和從模式中斷應答數(shù)據(jù)總結(jié)
基于靈動微MM32SPIN27xx的I2C從機
I2C接口配置ES7243錄音芯片,MCU(STM32)收不到I2C ACK的問題
STM32F0 HAL庫 I2C 從機配置
AT32F435/437 I2C使用指南
AT32講堂041 | AT32F435/437 I2C使用指南
AT32講堂057 | 雅特力AT32F425 I2C使用指南
雅特力AT32F423 I2C使用指南
雅特力AT32F402/F405 I2C使用指南
MK26 MCU I2C從機模式的1Mhz配置步驟
評論