1、摘要
一款新的控制板卡在第一次使用时,都需要进行硬件功能的测试,以确保所有的硬件都能够正常工作后,才可以进入后续的软件编程阶段,ESP-Drone四旋翼无人机的控制板使用了mpu6050陀螺仪芯片作为惯性导航的传感器芯片,其可以用来测量无人机X、Y、Z方向的偏转角度和加速度信息,从而确定无人机的姿态,从而为控制系统提供控制无人机飞行的决策数据,mpu6050使用I2C总线与主控芯片进行通信,因此首先要做的工作就是测试主控芯片是否能够通过I2C总线来读取mpu6050芯片中的数据。
2、I2C总线测试过程记录
第1步,启动Eclipse集成编程环境。
第2步,基于ESP-IDF模版创建一个基于I2C的软件工程。
如图2-1所示,点击”File->Project”菜单进入软件工程创建界面。
如图2-2所示,点击“Espressif IDF Project”菜单,然后点击“Finish”进入下一步。
如图2-3所示,输入一个软件工程的名称,然后点击“Finish”进入下一步,如果在后续的步骤中选择基于软件模板方式创建软件工程的话,在这里输入的名称会被模板中的软件工程名称所替换。
如图2-4所示,勾选模板创建工程方式选项,找到“i2c_simple”软件工程模板,然后点击”Finish“进入下一步。
如图2-5所示,为创建好的软件工程,设置当前板卡所使用的处理器类型为esp32s2。
如图2-6所示,准备修改一下软件工程的名称,移动光标至击侧的软件工程管理界面的软件工程名称位置,点击鼠标右键弹开软件工程属性修改界面,然后点击”Rename“菜单进入软件工程名称修改界面。
如图2-7所示,输入新的软件工程名称,然后点击“OK“返回。
如图2-8所示,软件工程名称修改完成,本次修改非必需要做,也可以不做修改。
如图2-9所示,用上述步骤同样的方法将”main”目录下的文件“i2c_simple_main.c”改为”i2c_mpu6050_main.c”,当然也可以不做修改,本次修改的目的主要是为了区别软件工程的作用。
如图2-10所示,打开“main”目录下的”CmakeList.txt”文件,修改一下主函数文件的文件名为“i2c_mpu6050_main.c”,如果不做修改,后续编译会报错。
第3步,编译软件工程。
如图3-1所示,输入“Ctrl+B”快捷键进行软件工程编译。
如图3-2所示,等待几分种,软件工程编译完成。
第4步,配置I2C总线。
如图4-1所示,从原理图种获取mpu6050处理器所使用的I2C总线端口信息。
如图4-2所示,打开“sdkconfig”文件,配置号I2C端口所使用的GPIO端口号。
第5步,重新编译软件工程。
如图5-1所示,再次输入“Ctrl+B”快捷键,等待一会儿,软件工程编译完成。
第6步,下载代码运行测试。
如图6-1所示,代码下载完成。
第7步,利用Eclipse中的串口监视窗口查看软件运行结果。
如图7-1所示,点击“Window->Show->Termianl”菜单调出终端显示界面工具栏。
如图7-2所示,在调试Eclipse主窗口的下部出现了“Terminal”栏目项。
如图7-4所示,设置好软件工程名称和当前所使用的串口号,然后点击“OK“进入下一步。
如图7-4所示,稍等片刻后,串口出现程序运行的Log信息。
碰巧的是该软件工程原来是针对mpu9250陀螺仪芯片而设计,而mpu9250正好是由mpu6050和另外一颗磁力计芯片组合封装而成,所示针对可以将此软件工程作为直接控制mpu6050的软件工程来使用,只要配置好I2C总线即可。
如图7-4所示,已经正确读到了芯片的ID信息16进制数68。
至此,esp32s2芯片针对mpu6050的i2c总线驱动配置成功,并且验证了硬件板卡上的mpu6050芯片已经正常工作,可以进行下一步的软件调试了。