当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

恩智浦FRDM-MCXN947开发实践指南–I2C部分解读

时间:2024-06-20 | 栏目:接口/总线/驱动 | 点击:

上个月提到的RT-ThreadNXP共同举办的 NXP FRDM-MCXN947 RT-Thread测评活动,目前测评已经完成,并且举办方已经将所有优秀的活动作品总结成了《恩智浦FRDM-MCX N947开发实践指南》。该电子书包含了基于FRDM-MCXN947开发板上所有支持的BSP外设的优秀用例,下面小编就抛砖引玉,以I2C部分已经学习和讲解。

本文使用MDK-ARM 5.39软件进行开发。使用RT-Thread ENV工具进行环境配置,方便地配置和管理RT-Thread工程的环境参数

KeilMDK安装

RT-ThreadENV工具安装

在RT-Thread的丰富组件库中,I2C驱动软件扮演着至关重要的角色。它不仅负责上承应用层的多样需求,还要下接硬件层的精确操作。打开RT-Thread env工具,cd进入工程目录,通过menuconfig配置项目。

fd22153a-2e9e-11ef-a4c8-92fbcf53809c.png

硬件层面上,I2C总线仅由两根线构成——数据线(SDA)和时钟线(SCL)。它们的简单结构使得I2C成为低成本和空间受限环境下的理想选择。本文硬件I2C采用引脚P0_25(SCL)和P0_24(SDA)。软件驱动层面上,RT-Thread提供了一套完整的I2C驱动框架,支持多种微控制器平台。这些特性使得I2C驱动能够满足各种复杂应用场景的需求。本文软件模拟I2C采用引脚P0_4(SCL)和P0_5(SDA)。硬件I2C引脚位于J2外侧的第5和第7引脚,软件I2C位于J9内测的第8和第9引脚。引脚图参考如下,注意不要接错!

fd3dbf88-2e9e-11ef-a4c8-92fbcf53809c.png

软件模拟I2C

进入env工具修改设备驱动如下:

fd6655c4-2e9e-11ef-a4c8-92fbcf53809c.png

增加ssd1306的驱动用于测试i2c软件模拟,通过env工具增加ssd1306软件包:

fd798e46-2e9e-11ef-a4c8-92fbcf53809c.png

添加drv_i2c驱动,注册i2c总线:

fd8e5d26-2e9e-11ef-a4c8-92fbcf53809c.png

保存退出后更新软件包并重新生成工程:

fda60c0a-2e9e-11ef-a4c8-92fbcf53809c.png

keil编译下载

fdd3d860-2e9e-11ef-a4c8-92fbcf53809c.png

输入测试指令:ssd1306_TestAll

fdf138ba-2e9e-11ef-a4c8-92fbcf53809c.png

fe150fb0-2e9e-11ef-a4c8-92fbcf53809c.png

I2C(软件模拟)测试完成。

硬件I2C

在env软件配置的基础上关闭软件模拟I2C

fe3e8656-2e9e-11ef-a4c8-92fbcf53809c.png

其中修改不变,通过FC1映射i2c1,设置对应引脚电气属性:

fe56fc72-2e9e-11ef-a4c8-92fbcf53809c.png

编译下载:

fe7236cc-2e9e-11ef-a4c8-92fbcf53809c.png

fe9d1b76-2e9e-11ef-a4c8-92fbcf53809c.png

IIC(硬件)测试完成之后,我们得出结论:

通过测试发现使用硬件I2C来刷新屏幕时,感官速度相较于其他方式会快一些。此外,我们还注意到硬件I2C刷新屏幕可以显著提高感官速度、稳定性和可靠性。

在实际应用中,我们可以根据具体需求调整I2C总线的通信速率和配置参数,以达到最佳的屏幕刷新效果。

您可能感兴趣的文章:

相关文章