如果APM32F103xE_I2C_加入六轴传感器后,大概率I2C通讯EEPROM会挂死。一旦挂死之后怎么解决?极海代理商有话说。
芯片型号 | APM32F103xE |
问题类型/涉及模块 | I2C |
简要描述 |
加入六轴传感器后,发现I2C通讯EEPROM会挂死 对比测试:不加六轴后,I2C挂掉概率降低很多;但由于概率性发生没有抓到包。 |
原因分析 |
1、硬件上,I2C的上拉电阻是10k,驱动能力较弱。
2、软件上,MCU在接收数据失败后会一直死等,出现死机现象。
|
解决方案 |
1、硬件上,加入6轴后,传感器增加,总线电流有变化,将客户使用的10K上拉电阻调成成4.7K。
2、软件上,在原先代码中,加入I2C总线判定,若接收数据失败,产生9个CLK的时钟,模拟I2C时序,并释放总线,强制拉高引脚电平,然后重新进行收发数据,继续通信。
|
总结 |
1、按照推荐的硬件电路设计,电阻太大,驱动能力较弱,干干扰能力较弱。
2、建议增加通信过程中接收、失败异常的代码,以提高通信可靠性,避免MCU死等,出现死机现象。
|