查看: 5593|回复: 2

[i.MX6ULL竞赛专区] MYS-6ULx-IOT设备驱动之I2C驱动24c02

[复制链接]
  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    连续签到: 1 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2207
    最后登录
    2025-8-11
    发表于 2018-6-2 10:41:24 | 显示全部楼层 |阅读模式
    之前写过搭建开发环境以及LED点亮,今天更新一个IOT板子驱动I2C的教程,在米尔提供的资料里面,\04-Source\MYS-6ULX-example下有一个i2c_flash文件夹,里面有i2c的驱动示例,但是官方的板子没有eeprom,所以需要外接一个24c02,查米尔的用户手册可知i2c在J2排针10和12引脚,
    原理图.png
    这里是i2c 2
    然后我们连接我们的24c02,原理图如下
    原理图24c02.png
    连接好了以后打开开发板的终端,输入命令
    #cd /dev
    #ls
    打开设备文件,在里面可以找到i2c-1,这个i2c-1就是我们刚才看到原理图上的i2c2,(nxp的这个i2c标号应该是从1开始的,所以i2c2对于dev中的i2c-1),然后输入命令
    #i2cdetect -y 1
    如果此时你的i2c从设备at24c02连接正常,则会在屏幕上看到该设备
    连接.png
    硬件连接好了以后,我们来看源码,这里提供两个源码,一个是米尔的源码,一个是自己查资料写的源码。打开04-Source\MYS-6ULX-example\i2c_flash,里面存放了I2C的源码,但是官方的资料没有示例怎么用,分析了源码知道是通过open打开设备树的方式,下面展示官方资料下的i2c_flash读写功能,首先拷贝04-Source\MYS-6ULX-example\i2c_flash文件夹下的i2c_flash.c以及Makefile到虚拟机Ubuntu(直接复制粘贴到虚拟机),然后打开虚拟机的终端,加载编译器到当前shell,(参考01-Document\User_Manual\Chinese、MYS-6ULX-LinuxDevelopmentGuide_zh.pdf),然后用cd命令打开i2c_flash文件夹,终端输入
    #make
    #ls
    然后就会看到该文件夹下多出了一个i2c_flash和i2c_flash.o,拷贝i2c_flash文件到win的tftp32的文件目录下,然后打开开发板终端,输入,命令
    #tftp -r -g i2c_flash 192.168.0.10
    #ls
    上面的192.168.0.10为你pc的ip地址,成功后会看到该目录下多了一个i2c_flash文件,然后输入命令
    #chmod 777 i2c_flash
    #./i2c_flash /dev/i2c-1
    eeprom.png
    我这里把文件名改成了i2c_eeprom,大家在做的时候还是用我上面发的命令;执行完成以后我们发现Read pack有四个字节数据,跟我们写入的数据一致,实验成功。下面附上官方的源码截图
    test.png
    我们发现我们写入的跟刚刚读出来的一致。好了官方的代码就写到这里,下面附上我自己写到代码,思路是一样的,操作方法有区别
    user.png
    我的代码在执行时会要求用户输入一个字符,然后将该字符写入eeprom,然后读刚刚写入的那个地址,看读出来的跟写入的是否一致,参考上面的方法编译代码并拷贝至开发板,我这里将我的代码命名为i2c_24c02,在开发板终端执行
    root@mys6ull14x14:~#chmod 777 i2c_24c02
    root@mys6ull14x14:~# ./i2c_24c02
    Hello,This is i2c test
    inputa char you want to write to E2PROM
    w
    writereturn:3, write data:77
    rddata:w
    root@mys6ull14x14:~#

    其中w为用户输入的字符,下面附上截图
    user_test.png
    到这就结束了,附上代码






    i2c.zip

    969 Bytes, 下载次数: 13, 下载积分: 威望 1

    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    连续签到: 1 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2207
    最后登录
    2025-8-11
     楼主| 发表于 2018-6-2 10:52:41 | 显示全部楼层
    I2C接口的OLED显示屏已经调试成功,明天附代码
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    连续签到: 1 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2207
    最后登录
    2025-8-11
     楼主| 发表于 2018-6-3 13:56:28 | 显示全部楼层
    xiaoshen-372360 发表于 2018-6-3 10:50
    楼主用的什么编辑器?

    你好。win下用sublime_text,linux下用vi
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-21 13:11 , Processed in 0.075327 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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