查看: 1377|回复: 0

[原创] 【MCX-A153分享】基于RT-Thread的软件IIC驱动适配

[复制链接]
  • TA的每日心情
    奋斗
    2024-12-9 14:23
  • 签到天数: 204 天

    连续签到: 1 天

    [LV.7]常住居民III

    7

    主题

    567

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1143
    最后登录
    2025-3-12
    发表于 2024-7-21 17:58:22 | 显示全部楼层 |阅读模式
    本帖最后由 eefocus_3963739 于 2024-7-21 17:59 编辑

    目前RT-Thread Studio尚未支持恩智浦FRDM-MCXA153开发板BSP,需要从gitee下载最新的主线,通过scons命令创建工程。下载好主线源码后,在rt-thread\bsp\nxp\mcx\mcxa\frdm-mcxa153 目录下打开scons环境,配置软件IIC驱动和SSD1306 OLED,目前无IIC相关支持。

    一、软件IIC配置
    在恩智浦FRDM-MCXA153开发板板载的mikroBUS socket找到2个pin做软件IIC接口的SCL/SDA,考虑到3.3V/GND的需要,直接选择; P1_0和P1_2,具体可以从针脚图看到,下图红框处的针脚。
    SWIIC.png

    因为是软件IIC,直接在menuconfig的设备驱动中选择“Use GPIO to soft simulate I2C”,设置中直接配置到I2C1 bus上,之前选择了P1_0和P1_2作为SCL/SDA,按照((port*32)+pin)的计算公式配置好即可,具体如下图。
    SW001.png


    二、SSD1306 OLED配置
    在menuconfig中选择enable SSD1306,并且设置好I2C bus name,I2C的地址默认是0x3c无需修改,同时打开SSD1306测试demo。
    1536.png


    上述内容设置好之后,选择保存。分别执行下述2个命令:
    pkgs —update
    scons —target=mdk5

    待Keil工程生成后,打开工程编译程序。
    1. Program Size: Code=83324 RO-data=25164 RW-data=784 ZI-data=7876  
    2. Finished: 0 information, 2 warning and 0 error messages.
    3. ".\build\rtthread.axf" - 0 Error(s), 6 Warning(s).
    4. Build Time Elapsed:  00:00:04
    复制代码


    然后下载到恩智浦FRDM-MCXA153开发板上。
    153-3.png


    三、软件IIC测试
    固件下载完成后,reset系统,可以看到软件IIC已经配置成功。
    1. sram heap, begin: 0x0x200019d4, end: 0x0x20005c00
    2. \ | /
    3. - RT -     Thread Operating System
    4. / | \     5.2.0 build Jul 21 2024 15:49:40
    5. 2006 - 2024 Copyright by RT-Thread team
    6. I/I2C: I2C bus [i2c1] registered
    7. D/I2C_S: Software simulation i2c1 init done, SCL pin: 0x20, SDA pin: 0x22
    8. I/I2C: I2C bus [i2c0] registered
    9. using armclang, version: 6180002
    10. MCXA153 HelloWorld
    11. msh >
    复制代码


    list device后,可以看到I2C1已经起来:
    1. msh >list device
    2. device           type         ref count
    3. -------- -------------------- ----------
    4. i2c0     I2C Bus              0
    5. i2c1     I2C Bus              0
    6. pin      Pin Device           0
    7. uart0    Character Device     2
    8. msh >
    复制代码


    把ssd1306_TestAll的demo跑起来。
    SW.jpg


    对比硬件IIC,软件IIC的刷屏速度的确差了很多。

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-28 09:32 , Processed in 0.079905 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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