|
DSP的QEP有个功能QCTMR,可以提高编码器线数较少且转速低时的速度计算精度。原理:在读取QEP的脉冲数时,可以获得当前QCTMR定时器的值,该QCTMR定时器可配置为在每个QEP脉冲到的时候会被自动清零,这样能够补偿因QEP脉冲变化较少时的速度计算误差。 现在就是想用stm32实现dsp qep模块的QCTMR功能。用的H723芯片,我们把主定时器TIM2配置成正交编码器模式Encoder Mode Tl1 and Tl2,接ABZ编码器。另外配置一个从定时器TIM23为普通周期计数模式。然后也想要每个QEP脉冲变化时能有触发信号使得从定时器复位,因此配置了主TIM2触发模式为TIM_TRGO_OC1,TIM23从模式配置为复位。现在QEP变化可以复位TIM23->CNT,目前的问题是1个ABZ有4个qep脉冲变化,但只复位了1次TIM23。 代码如下: TIM2的配置代码 TIM23的配置代码 想问一下,这种实现方式可行吗?为什么1个周期4个脉冲变化只复位了1次从定时器呢,哪里有问题。求解答 |
如何解决STM32H7在3V供电下内部LDO启动裕量不足的问题?
STM32H7电源问题
有关STM32H743ZGT6 驱动RTL8201F-VB芯片驱动的问题,有奖寻求帮助
STM32H725内部FLASH读写问题
我在使用STM32H747IGT6的时候,遇到了一个问题;上电前并未短路,上电后电流跳跃至1.6A,且不断增大至1.9A,断开电源后芯片不短路,请问是什么原因?
为什么在CubeMX中无法分析模型?而在云服务器可以?
STM32H7的LSE起振问题
stm32H7 FLASH写入后数据异常 求教
关于STM32H7的系统架构中总线主设备与总线从设备连接的疑问
STM32H7掉电存储数据
微信公众号
手机版
顶一下😄
时间轴 →|----Tp1----|----Tp2----|----Tp3----|QEP脉冲: ↑ ↑ ↑QCTMR值: 清零→计数→读数→清零→计数→读数→清零
那么可行的方法是用一个定时器来做输入捕获,这样在两个脉冲之间计数。
分辨率由定时器精度来决定。两个捕获值相减即可。
因为目的是在低速状态下提高分辨率,那么时间是相当充裕的。
你现在TIM2接上了编码器,然后让TIM2产生触发信号令TIM23复位。
但是,你选择的TIM2的OC1目前是不存在的,因为它的CH1CH2都做编码输入了,并不是比较输出通道。退一步讲,即使你选别的通道的OC信号作为触发输出,一个周期【你这里就是65535个脉冲】也只能产生一次触发信号去复位下一级TIMER。