查看: 741|回复: 0

[评测分享] 【更适合初学者的开发板ELF 1】04-I2C测试

[复制链接]
  • TA的每日心情
    奋斗
    昨天 22:50
  • 签到天数: 94 天

    连续签到: 3 天

    [LV.6]常住居民II

    发表于 2023-11-25 21:44:04 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 stm1024 于 2023-11-25 21:48 编辑

    今日测试一下I2C接口,I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线,多用于主机和从机在数据量不大且传输距离短的场合下的主从通信,特别是芯片之间的通讯,这也符合其名字Inter-Integrated Circuit(集成电路总线)的描述。本次测试并不是简单的对着手册操作一下,也根据自己的理解,去扩展使用该开发板的功能。

    1. 工具准备
    i2c-tools 是一个专门调试 I2C 接口的开源工具, 可以获取挂载的设备及设备地址, 具有在对应的设备上读取和设置寄存器值等功能,可以使用交叉编译方式,将从网站下载的源码,在Ubuntu上通过交叉编译的方式获取其ARM环境下的工具,当然ELF-1已经帮我们移植好了,所以这里就跳过了编译的步骤,直接使用就可以了。
    i2c-tools下面有好几个工具,其中:
    i2cdetect用于检测总线;
    i2cdump用于导出数据;
    i2cget/i2cset用于获取/设置单个寄存器的值。
    如果是自己编译的话,还有一个工具是i2ctransfer,这个是按照i2c的读写时序操作的。

    2. 板载器件测试
    首先,可以通过工具i2cdectct检测i2c总线:
    i2cdetect -l
    111.png
    可见扫描到了两路I2C总线,分别是i2c-0和i2c-1,也就是0号和1号I2C总线。
    分别看看两路i2c上有啥器件,命令为:
    i2cdetect -y 0
    i2cdetect -y 1
    结果如下图所示:
    222.png
    可以看到,在0号总线和1号总线有一个器件地址分别为0x38和0x1a的I2C从设备,注意这里I2C地址为7位地址,以0x38为例,其器件写地址为0x70,读地址为0x71,而且,通过查询硬件手册,可知I2C地址为0x38的是器件AHT20,0x1a是nau88c22,也就是音频芯片的:
    444.png

    333.png
    音频这个比较复杂点儿,就用AHT20测试吧。

    i2cdump 查看器件AHT20中寄存器范围在0x00-0x20之间寄存器的值:
    i2cdump -f -y -r 0x00-0x20 0 0x38
    555.png

    3. 外挂器件测试
    I2C是一个一主多从的总线,我们完全可以在I2C总线上挂上我们自己的I2C器件,例如最简单的I2C器件应该是EEPROM了,常见的AT24Cxx系列的,下面测试一下外接该模块,然后检测、读取,设置其中器件地址的值。
    首先,通过提供的硬件手册,左边的40PIN有IIC2,可以知道12/14PIN分别对应的是SDA和SCL,然后前缀是IIC2,我推测这个应该是I2C1的总线(和CAN类似,PCB上的1和2分别对应了软件外设中的0和1):
    666.png
    找到以前的一个AT24C模块,然后接上去再说:
    777.jpg
    检测一下I2C-1总线,确实发现在0x50地址的器件,也就是咋们的AT24Cxx,这个模块下面的跳线帽还可以配置7位地址,
    888.png
    既然检测到了器件,那就先dump一下数据看看:
    999.png
    可以看到这个储存器中前16字节分别从0x00到0x0f。
    我们也可以单独设置和读取某个地址的值,例如将存储空间0x20处的值修改为0x33:
    命令分别如下:
    i2cset -f -y 0x50 0x20 0x33 #设置地址0x20值为0x33
    i2cdump -f -y 1 0x50 #导出数据
    i2cget -f -y 1 0x50 0x20 #获取地址0x20的值

    效果如下:
    10.png
    可见操作该器件功能正常。

    OK,今日测试就到这里。

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-5-20 19:04 , Processed in 0.112040 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.