有用的示例工程
开发过程调试是个令人头疼的问题,在程序正式运行起来之前,需要借助其他的工具来调试硬件、检验代码逻辑是否正确。乐鑫的示例代码中有个使用串口控制台调试i2c设备的工程,这里分享一下。
i2c-tools
在ESP-IDF安装目录examples\peripherals\i2c\i2c_tools 下的i2c_tools工程,查看工具的ReadMe文件。可知该工程可用于i2c设备的调试,类似Linux中的i2c_tool工具。
i2cconfig : 根据指定的GPIO序号、I2C端口号和频率来配置I2C总线。
i2cdetect : 探测挂载在I2C总线上的设备,并显示探测到的设备的I2C地址。
i2cget : 读取I2C总线上设备的寄存器值。
i2cset : 设定I2C总线上设备的寄存器值。
i2cdump : 检测寄存器在I2C总线上是否可见。
修改工程中的i2c设备引脚,并编译工程,烧录到开发板上。

查看ESP32-P4-Function-EV-Board开发板的原理图,可知音频芯片、显示驱动和摄像头驱动的I2C控制口挂载在同一个I2C总线上。


工程运行后,在串口控制台输入i2cdetect ,可以看到输出挂载到i2c总线上设备的地址。

对比音频手册中的说明,可知其中的地址为18的设备为音频芯片。

总结
借助这个示例工程,可以方便调试i2c设备,排除硬件问题。
|