打印
[应用相关]

为什么F103在72M时可以测量的频率波形,在8M时不能测量?

[复制链接]
1467|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhdxaut|  楼主 | 2015-9-5 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用输入捕获测量输入信号,信号的频率是62.5KHz,我在中断中反复切换上升沿、下降沿触发,发现在F103的仿真中,主时钟频率为72M时,很容易就捕捉到每一个上升沿和相邻的下降沿之间的脉冲宽度。当把103的频率降到8M时,每次捕捉的上升沿和下降沿之间总是间隔好几个周期,已经完全不是信号的频率了。
我分析了一下仿真中的Code coverage,TIM3 中断是80个指令,按照1.25DMIPS/MHZ计算,72MHZ系统时钟时,80个指令需要80/(1.25*72)=0.889us 远远小于捕获周期8us,因此可以捕获到62.5KHZ的波形信号。
而当系统时钟降到8MHZ时,80个指令需要80/(1.25*8)=8us,已经等于捕获周期8us.所以不能捕获62.5KHZ的波形信号。
我想向大家求证的是,是不是输入捕获有个最大捕获频率限制,那就是受制于系统时钟和中断的指令周期数?
此外,L152的系统时钟采用内部RC16M,是不是也不能实现对62.5K信号的输入捕获?
如果我要在8M-16M,或者32M的系统时钟下,对62.5KHZ的信号输入捕获,该怎样来实现呢?
莫非只能用大于72M的系统时钟才能实现?谢谢大家。
沙发
s_f_tan| | 2015-9-5 10:44 | 只看该作者
感觉你像是用软件来测量脉冲频率的,这样发挥不出硬件的能力了。当时钟变化后,指令周期也变化了。既然是测量频率,不如开两个定时器,一个计数,一个计时,这样省的软件来一个个数数了,不简单些?

使用特权

评论回复
板凳
huangqi412| | 2015-9-5 11:23 | 只看该作者
8m/60k 一百多倍 够了  

使用特权

评论回复
地板
zhdxaut|  楼主 | 2015-9-5 16:37 | 只看该作者
huangqi412 发表于 2015-9-5 11:23
8m/60k 一百多倍 够了

作了仿真,发现波形捕获,周期会错位。比如一个上升沿和下一个下降沿捕获之间会偏差2-3个信号周期。但是在72M的时候,就不会出现这个问题。8M从理论上算,应该是够用的,但是好像实际上,是不够用的,不知道什么原因。

使用特权

评论回复
5
zhdxaut|  楼主 | 2015-9-5 16:41 | 只看该作者
s_f_tan 发表于 2015-9-5 10:44
感觉你像是用软件来测量脉冲频率的,这样发挥不出硬件的能力了。当时钟变化后,指令周期也变化了。既然是测 ...

怎样发挥硬件的能力呢。我想用输入捕获,连续捕获信号的相邻的上升和下降沿之间的脉冲宽度,如果用计数的话,只能计相邻的上升沿和上升沿之间的,我需要捕获上升和下降之间,然后下降和相邻的上升之间的脉冲宽度,以此推算信号对应的码值。比如上升和下降之间为8us,下降和下一个上升之间为8us,则该码值为0;以此类推,实现曼彻斯特编解码的解码

使用特权

评论回复
6
lvyunhua| | 2015-9-5 18:02 | 只看该作者
芯片反应不过来。

使用特权

评论回复
7
wowow| | 2015-9-5 20:54 | 只看该作者
同一个信号输入给两个CH,一个捕获上升沿, 一个捕获下降沿,就可以不用反复切换上升沿、下降沿触发。可以芯片外面联上同一TIM不同CH的管脚,也可以只联一个管脚,设置CCMRx寄存器的CCxS位来选择通道。

使用特权

评论回复
8
xuebingqq| | 2015-9-5 22:00 | 只看该作者
vcx反反复复凤飞飞凤飞飞凤飞飞凤飞飞凤飞飞凤飞飞

使用特权

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

本版积分规则

4

主题

8

帖子

0

粉丝