MK26 MCU I2C从机模式的1Mhz配置步骤

电子说

1.2w人已加入

描述

在 MK26 MCU中,使用 I2C作为从机,设置 CLK时钟速率为 1MHz。I2C的SCL停止保持时间由主机控制。这里I2C被用作从器件。在手册没有解释I2C时钟速率设置与从机的CLK 停止保持低位时间有关。

在测试中,如果 sclStopHoldTime_ns 设置为 4000, CLK 实际通信的频率只有 250KHz (如果没有连接到 I2C从机端, I2C主机端发送的实际频率是 1MHz),并且CLK的高电平和低电平的占空比小于20%。

根据 MK26的参考RM手册文档,这可能与I2C的<57.5.1.8握手>和<57.5.1.9时钟拉伸>功能有关。修改sclStopHoldTime_ns的值可以更改I2C的最大CLK速率。

该参数对应于底层的 I2C驱动 I2Cx_F ,此寄存器的描述与 I2C的SCL保持低时间无关。如果将sclStopHoldTime_ns更改为500,最大速度可达1MHz,CLK占空比也接近50%。

作为I2C从机,要求CLK速度达到1MHz。是否有推荐的软件配置(MCU参数配置、端口上拉/漏极开路配置等)?

ICR

从SDK代码中可以看到,在设置sclStopHoldTime时会选择不同的MULT和ICR。sclStopHoldTime 也是在I2C的Slave从机配置结构中设置的。主机Master配置结构里面没有 sclStopHoldTime_ns相关的设置。

ICR

ICR

ICR

ICR    

不同的 ICR数值对应不同的 SCL 分频值。

ICR

最终,I2C 波特率受 MUL和 SCL 分频决定的。

ICR

针对不同的 I2C 速率,SCL停止保持时间可以参考如下的代码设置描述。

ICR

ICR

 以上三个数据均在数据手册中可查到出处,如下所示。

ICR

 MK26和 MK66F MCU 具有相同的 I2C外设,因此可以参考FRDM-K66F的SDK相关代码。

I2C中常用的上拉电阻为4.7K,速度越高,电阻可以适当降低,使用1.5K、1K或510Ω。

ICR






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分