查看: 1550|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2020-12-18 12:56
  • 签到天数: 55 天

    连续签到: 1 天

    [LV.5]常住居民I

    108

    主题

    276

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1993
    最后登录
    2025-7-16
    发表于 2024-7-8 19:15:34 | 显示全部楼层 |阅读模式
    上个月提到的RT-Thread与NXP共同举办的 NXP FRDM-MCXN947 RT-Thread测评活动,目前测评已经完成,并且举办方已经将所有优秀的活动作品总结成了《恩智浦FRDM-MCX N947开发实践指南》。该电子书包含了基于FRDM-MCXN947开发板上所有支持的BSP外设的优秀用例,下面小编就抛砖引玉,以I2C部分已经学习和讲解。


    本文使用MDK-ARM 5.39软件进行开发。使用RT-Thread ENV工具进行环境配置,方便地配置和管理RT-Thread工程的环境参数。
    Keil MDK安装
    RT-Thread ENV工具安装
    在RT-Thread的丰富组件库中,I2C驱动软件扮演着至关重要的角色。它不仅负责上承应用层的多样需求,还要下接硬件层的精确操作。打开RT-Thread env工具,cd进入工程目录,通过menuconfig配置项目。

    通过menuconfig配置项目

    通过menuconfig配置项目
    硬件层面上,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引脚。引脚图参考如下,注意不要接错!
    注意不要接错.png


    软件模拟I2C
    进入env工具修改设备驱动如下:
    软件模拟I2C.png
    增加ssd1306的驱动用于测试i2c软件模拟,通过env工具增加ssd1306软件包:

    通过env工具

    通过env工具
    添加drv_i2c驱动,注册i2c总线:

    注册i2c总线

    注册i2c总线
    保存退出后更新软件包并重新生成工程:
    重新生成工程.png
    keil编译下载:
    keil编译下载.png
    输入测试指令:ssd1306_TestAll
    TestAll.png
    I2C(软件模拟)测试完成.png
    I2C(软件模拟)测试完成。


    硬件I2C
    在env软件配置的基础上关闭软件模拟I2C
    硬件I2C.png
    其中修改不变,通过FC1映射i2c1,设置对应引脚电气属性:
    设置对应引脚电气属性.png
    编译下载:
    编译下载.png
    编译下载2.png
    IIC(硬件)测试完成之后,我们得出结论:
    通过测试发现使用硬件I2C来刷新屏幕时,感官速度相较于其他方式会快一些。此外,我们还注意到硬件I2C刷新屏幕可以显著提高感官速度、稳定性和可靠性。
    在实际应用中,我们可以根据具体需求调整I2C总线的通信速率和配置参数,以达到最佳的屏幕刷新效果。


    签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 21:33 , Processed in 0.080862 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表