专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
目录
相关文章推荐
田俊国讲坛  ·  【3月15日】田俊国老师线下公开课《教学引导 ... ·  15 小时前  
湖北日报  ·  即将开始查分! ·  16 小时前  
湖北日报  ·  即将开始查分! ·  16 小时前  
班主任家园  ·  DeepSeek预测:未来十年内最稳的十大“ ... ·  昨天  
黑龙江省教育厅  ·  《哪吒2》带给我们哪些教育启示? ·  昨天  
黑龙江省教育厅  ·  《哪吒2》带给我们哪些教育启示? ·  昨天  
邳州银杏甲天下  ·  事关2027年高考,省教育厅最新公告 ·  2 天前  
51好读  ›  专栏  ›  嵌入式微处理器

记一次旋转编码器引发的跳数值问题排查与解决过程

嵌入式微处理器  · 公众号  ·  · 2024-06-06 15:00

正文

之前做了一个搅拌器项目,用到了旋转编码器开关去调节搅拌器的速度和定时时间。前期送样阶段都很顺利,但后续的小批量生产完后,测试时发现,旋钮开关在进行调速时会出现跳数值的情况。

我们选用的20刻度/360度的编码器,试产用的编码器和之前样机的是同一个厂家送过来的。项目本身要求每旋转一个刻度,数值加1或者减1,但现在时不时的会出现旋转一个客户加2加3的情况。前面送样的样机效果是完全没问题的,但试产的这批却出现了这种情况。当时第一反应就是编码器有问题,于是开始用示波器抓取编码器旋钮的波形如下:



一眼看去,很标准的方波信号。在软件里面处理的方式是下降沿中断触发的,虽然在中断进行的操作比较多,但从波形上看,低电平时间也是完全充裕的。额, 顿时有点懵……

于是,又找到之前送样剩下的一个样板对比编码器波形,发现两者波形基本上一样,如同上图。虽然本身还是认为是旋转编码器的问题,但抓出来的波形摆在这里,看不出什么问题。

虽然充满了疑惑,但还是转身去找代码的问题,于是把之前的代码重新注释,按照新的思路去编写程序处理这一块的信号,希望可以解决掉这个问题。但 经过一番努力后,不管从什么角度去处理,最终结果都是一样的,还是会出现跳数值的问题

冷静了几天后,再回过头来重新整理 搅拌器项目 ,重新抓取编码器信号进行分析,这一次看着波形,突然发现问题了!



无意间放大信号发现波形有杂波,上右图标记出来了比较明显。看着波形感觉来了,大概明白问题是怎么出现的了,于是继续放大波形进行确认。

继续放大后波形,如下图所示:



这两张图一出来,瞬间真相大白了——编码器有杂波,导致了中断误触发。于是马上在软件里进行杂波过滤处理,重新下载烧录软件进行测试,旋转一个刻度,再一个刻度,完美!

继续进行测试,拧拧拧,发现还是会有个别的刻度会出现跳数值情况。于是修改软件,加长前面过滤的时间段,极限加长到10ms过滤,烧录,测试,但个别数值跳动的情况依然存在……

既然有了方向,那就旋转一周的刻度波形出来,一个一个波形放大,观察,最后终于抓到了一个小尾巴。


在上升沿的时候也出现了杂波干扰,摆出来的这个杂波虽然可能还不到影响数值的地步,但至少说明是可能存在这个问题的。于是针对这个杂波进行软件滤波处理,烧录,测试,结果可以,没有再出现数值跳动的情况了。随后又继续多次测试,全功能测试,依旧没有出现问题。嗯,可以确定问题解决了

后续把该批次的板子全部重新烧录软件,同时把问题向旋转编码器工厂反馈。以前也有用到编码器,但没有遇到这个问题,这次算是长知识了。很多时候都是这样,不是你软件没问题就没问题了,可能在硬件上面或者器件上面要给你的软件硬是要整出来些问题,最终还得软件来处理掉。

END

作者:1203030117
来源:21ic论坛

版权归原作者所有,如需转载,请联系21ic






请到「今天看啥」查看全文