关于软件识别下降沿动作一个注意事项总结

项目背景是写一个测量阻抗的ADC芯片(AFE模拟前端)芯片驱动。


问题背景:

测量原理是该ADC芯片可以测量外接阻容网络的阻抗和相位,将外接阻抗的阻值(模拟量)转化为AD值(数字量),以80hz或者160hz或者320hz输出。并在AD转换完成后拉高GPIOx 25.12us。转换动作如下:

关于软件识别下降沿动作一个注意事项总结

 因此在读取AD时,检测识别该GPIOx的下降沿,识别到后说明AD转换完成,可以进行读取数据操作。


软件代码如下:

出现的问题是:在320zh的情形下,本来应该是转换完成一个AD值,读取AD值进行处理。但是如下图所示,出现了丢点的情况,而且丢点严重!(备注:该电平为读取AD一次,有一个拉高另一个GPIOx1的动作)

关于软件识别下降沿动作一个注意事项总结

 


问题的原因分析:

为什么会出现丢点严重因为实际上,检测下降沿时,分步走应该是检测高电平 -> 检测低电平的过程,而且高电平到低电平形成的下降沿在模拟上是一个缓变的过程。但是该程序中,检测完高电平未做任何延时就直接检测低电平,条件太过苛刻,造成符合该条件的下降沿非常少,造成了严重丢点的情况。


解决的方法:

       在检测完高电平时,延时50us,再检测低电平,可解决上述问题。

解决后的现象如下:

关于软件识别下降沿动作一个注意事项总结

总结:

     在解决问题时,需从问题的本质入手,拿这个问题来说,本质上,下降沿从模拟上来说就是一个缓变的过程,因此在软件处理上也要遵从此原则。

来源:马帅吃饭饭睡觉觉

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月8日
下一篇 2018年11月8日

相关推荐