TI中文支持网
TI专业的中文技术问题搜集分享网站

关于F2812的QEP模块可能的bug

反映一个F2812的bug,是关于码盘计数器溢出中断的。

计数器的上溢出中断发生条件是计数器的值达为0xFFFF,下溢出中断的发生条件是计数器的值达为0x0000

,注意!!只要计数器的值达到了0xFFFF,上溢出中断标志就会置位,对于下溢出也是一样。

实际上对于控制工程师,我们关心的是溢出事件:所谓上溢出事件,就是指计数器的值从0xFFFF又增加了

1,此时值反而变成了0x0000,这个过程叫做上溢出。下溢出类似。当计数器的值等于0xFFFF时,并不意

味着一定发生了溢出,也许我的值增加到了0xFFFF又开始减小了,实际上并未溢出,但这时2812的上溢出

中断也会发生。如果计数器的值不幸停在了0xFFFF不变了,那么2812就会不停的中断,你清除中断标志位

退出中断,然后马上又会进入这个中断!

也许你要说这种事情发生的概率小。那么我遇到的问题就不小了:由于我的设备需要连续旋转,因此码盘

计数器会发生溢出,我使用计数器溢出中断(T2UFINT和T2OFINT)来判断溢出的发生以及溢出的方向,可

是每次发生溢出时,上溢出中断标志和下溢出中断标志总是一起出现,不管实际溢出是正向还是反向。为

什么呢?因为2812的溢出中断原则是:只要你等于0xFFFF,就认为你发生了上溢出,只要你等于了0x0000

,就认为你发生了下溢出!当实际溢出发生时,计数器从0xFFFF跳变到0x0000,他就认为你既发生了上溢出,又发生了下溢出!因此当溢出发生时,上下溢出中断总是成对出现,本来想用来判断溢出方向的,这下根本形同虚设!后来只好用软件判断溢出方向。

Chuangbin Zhou:

TMS320F2810, TMS320F2811,and TMS320F2812 Digital Signal Processors Silicon Errata

里面有提到一个QEP的bug,不知跟你描述的一不一样,未细看。

赞(0)
未经允许不得转载:TI中文支持网 » 关于F2812的QEP模块可能的bug
分享到: 更多 (0)