打印
[STM32F4]

3个定时器同时测输入计数出错

[复制链接]
1839|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近用stm32f407定时器测外部输入脉冲的个数发现个奇怪问题。用的是三个定时器,TIM1的1通道,TIM2的1通道,TIM8的2通道.分别对应的引脚为PA8,PA15,PC7。可以用TIM2进行AB相计数,也可以用三个定时器进行三路单相计数。发现问题是单独的AB相计数没问题,三路单独单相计数也没问题,两路单相同时计数也没问题,但是同时三路计数就有问题了,计数出现不准确。AB相计数是接的TIM2的通道1和通道2,对应引脚PA15和PB3.为了可以双相与单相切换,PB3是与PA8连一起的。也就是三个输入接口,理论上应该可以同时测三路单相或者一路AB相与一路单相的。不知为啥同时三路单相就出问题?
沙发
cxcx565|  楼主 | 2014-3-6 14:35 | 只看该作者
没人遇到这种情况么?是不是因为PB3和PA8连在一起,造成三路单相输入时TIM2的1通道和2通道互相影响了。可是没有单相时,没有配置PB3的,默认引脚应该是浮空输入吧,不会影响计数个数吧?三路同时计数时,计数个数会多出来,奇怪了,单独每一路测都没问题。测的脉冲个数是在65535个之内,没有触发溢出中断。

使用特权

评论回复
板凳
cxcx565|  楼主 | 2014-3-7 09:50 | 只看该作者
问题找到了,加上了输入滤波比较器。超过三路一起输入可能输入信号有了毛刺,配置了TIM_ICFilter就好了。

使用特权

评论回复
地板
airwill| | 2014-3-8 09:20 | 只看该作者
一般不这样设计吧, 多个引脚连在一起测量一个信号, 属于浪费.
不够没有想到是滤波器问题.
可以测量外部信号, 滤波器是非常必要的.

使用特权

评论回复
5
香水橙| | 2014-3-8 22:09 | 只看该作者
应该不是输入信号有毛刺的缘故,可能是输入匹配的问题。

查查你的信号源,是否能推动多个负载?

使用特权

评论回复
6
cxcx565|  楼主 | 2014-3-10 10:53 | 只看该作者
airwill 发表于 2014-3-8 09:20
一般不这样设计吧, 多个引脚连在一起测量一个信号, 属于浪费.
不够没有想到是滤波器问题.
可以测量外部信号 ...

我不是测量一个信号,只是三路测同一个信号不出现计数出错问题,要是三路输入的是三个不同信号就可能计数出错了。

使用特权

评论回复
7
cxcx565|  楼主 | 2014-3-10 10:55 | 只看该作者
香水橙 发表于 2014-3-8 22:09
应该不是输入信号有毛刺的缘故,可能是输入匹配的问题。

查查你的信号源,是否能推动多个负载? ...

可是加上滤波器后问题确实解决了,我设计的是五路信号输入计数。应该能够推动的。

使用特权

评论回复
8
香水橙| | 2014-3-10 11:48 | 只看该作者
cxcx565 发表于 2014-3-10 10:55
可是加上滤波器后问题确实解决了,我设计的是五路信号输入计数。应该能够推动的。 ...

这个问题要看ST的芯片内部怎么设计的?我只是一种猜测,要确认是否与此相关,需要实际测试才能知道。

使用特权

评论回复
9
zxm19820916| | 2014-3-10 12:30 | 只看该作者
单独引脚,4路高速输入计数都没有问题。
AB相计数,2个通道要配置滤波。

使用特权

评论回复
10
cxcx565|  楼主 | 2014-3-10 13:05 | 只看该作者
zxm19820916 发表于 2014-3-10 12:30
单独引脚,4路高速输入计数都没有问题。
AB相计数,2个通道要配置滤波。

这个图能看清么?我现在用的就是TIM2的通道1和通道2,也就是PA15和PB3测AB相计数。然后是TIM2的通道1(PA15)和TIM1的通道1(PA8)测单相计数。也就把PB3和PA8连在一起了。这样双相模式和单相模式都可以了。TIM3的通道1(PB4)和通道2(PC7)可以测另一路双相,单相模式,TIM3通道1(PB4)和TIM8通道2(PC7)测单相。这样接线的,测4路单相同时输入时,没加滤波器就出现计数出错。是不是就是没有“单独引脚”的意思?用单相时,TIM2的通道2(PB3)设置为浮空输入的。如果TIM2和TIM3同时双相模式,是不是不加滤波配置,计数也会不准呢?

使用特权

评论回复
11
cxcx565|  楼主 | 2014-3-10 13:09 | 只看该作者
zxm19820916 发表于 2014-3-10 12:30
单独引脚,4路高速输入计数都没有问题。
AB相计数,2个通道要配置滤波。

开始我想用TIM8的通道3(PC8)作为单相一路输入的,所以连了PC7和PC8。后来发现,TIM8的通道3用计数模式TIM_TIxExternalClockConfig函数总是要使能霍尔那个函数TIM_SelectHallSensor。用TIM8通道2(PC7)也没问题。不知道为啥,用通道3就不行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝