在项目开发初期会遇到i2c读写不通的问题,这个时候,可能的问题比较多,有可能芯片供电没配置正确导致i2c总线上没有该设备,有可能自己调用的mcu的i2c读写函数错误,有可能自己的i2c芯片地址有问题。有的mcu厂家的i2c读写函数里面的芯片地址用的设备地址,有的有的是读地址,有的读写函数分别传入的是读、写地址。以前开发时候用的是linux的i2c-tool首先来排查问题,但是每次都要去接树莓派的开发板,而且还有给树莓派的开发板找显示器、键盘、鼠标感觉太麻烦了。现在找到一个在window环境下的iic测试工具。
串口工具是CH341A,网上有很多店家在售卖该工具,可以实现uart、iic、spi根据跳线帽的配置和对应的接线来实现。
上位机软件
uart
iic(该工具会在文章末尾分享百度网盘的下载链接)
测试芯片是
tpa6130a2是一款音频耳放芯片,设备地址0x60
1.测试芯片版本寄存器的读取。
测试结果读取设备地址x0x60 寄存器地址0x04的值为2
2. 测试音量读取
工具下载链接:
链接:https://pan.baidu.com/s/1TlN1_ET1ziP3gOQjbs_NZQ
提取码:meo8
--来自百度网盘超级会员V6的分享
---------------------------------------------------------------------------------------------------------------------------------
再介绍一种工具,esp32的开发板,能够支持的开发板有一下几种。效果和linux下的i2c-tool基本一致非常好用。怎么安装esp32的idf基础框架这里就不介绍了。
我用的是esp32-c3开发板。
使用官方的例程工具i2c_tool
进入i2c_tools工程。设定芯片esp32c3
编译工程。一定要关闭360,编译速度差别非常大。
编译完成后,烧录进esp32c3开发板。
烧录完成后,开启监视器。
开启效果
检测i2c总线上的设备。可以看到总线上有5个i2c通信的设备。下面还是以地址为0x60的音频芯片讲解。(详细内容查看i2c_tool的readme文档)
扫描芯片全部寄存器的值
读取设备地址0x60,寄存器地址0x04(芯片版本号)
读出的数据为0x02与上面芯片手册对比,可以知道读出正确。
读取寄存器地址为0x02