久芯网

stm32f407高频信号采集计算频率

avatar 杨元忠 提问时间: 2023-08-11 11:16:24 / 未解决

如需获得 stm32f407 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

8个回答
  • avatar 杨元忠
    回答时间: 2023-08-11 11:35:37

    stm32f407采集1Khz-4Mhz频率计算出采集频率,采用输入捕获只能采集到1Mhz左右,再往上频率就只能维持1Mhz,采用外部中断计数,配合定时器也是一样。有没有好办法解决?

  • avatar 废鱼
    回答时间: 2023-08-11 11:53:34

    楼主,看一下你的系统配置是不是168Mhz,在这个情况下输入捕获或者定时检测应该是没问题的。

  • avatar butterflyspring
    回答时间: 2023-08-11 12:22:30

    由于测量频率较高,楼主可以使用每8个脉冲捕获一次的方式。 或者采用外部计数方式,使得测量脉冲作为定时器的时钟输入,再通过另一个定时器触发启动计数和停止,根据计数值来换算测量的频率。当然,这种方式的配置上略微复杂,但是可以测量比较高的频率。

  • avatar xmshao
    回答时间: 2023-08-11 12:49:14

    STM32F407主频达168了,基于定时器的捕捉采集信号频率的话应该不止1MHz.当被捕捉信号频率较高时,你的捕捉中断的处理就要注意别冗长了,尤其第一次 进中断。另外,你可以考虑通过DMA读取CCR的数据,2次基于DMA完成中断来计算具体数据。

  • avatar 杨元忠
    回答时间: 2023-08-11 13:15:03
    废鱼 发表于 2022-1-13 11:11
    楼主,看一下你的系统配置是不是168Mhz,在这个情况下输入捕获或者定时检测应该是没问题的。 ...

    频率是168M,不过采集到1M左右的时候再往上增加输入频率,采集频率没有变化

  • avatar 杨元忠
    回答时间: 2023-08-11 13:39:46
    butterflyspring 发表于 2022-1-13 11:35
    由于测量频率较高,楼主可以使用每8个脉冲捕获一次的方式。 或者采用外部计数方式,使得测量脉冲作为定时器 ...

    外部中断计数的方式尝试过了,来一个上升沿开始计数,记录定时器时间,第二个上升沿再记录一个定时间时间,两个相减得到频率。不过也是低频1M左右,再往上的时候频率没有变化或者不准

  • avatar 废鱼
    回答时间: 2023-08-11 13:58:05

    楼主,是否可以考虑用DMA采集AD的方式测试一下,很多手持示波器和逻辑分析仪也用ST做,理论是没有问题的。

  • avatar butterflyspring
    回答时间: 2023-08-11 14:25:11
    杨元忠 发表于 2022-1-13 13:32
    [md]外部中断计数的方式尝试过了,来一个上升沿开始计数,记录定时器时间,第二个上升沿再记录一个定时间 ...

    1. 第一种方式是定时器捕获,自动保存计数器的值。由于频率高,可以设置8个脉冲捕获一次,拉开间隔,增加精度。 2. 第二种方式将你要测量的信号作为计数器的外部时钟,在固定时间内记录的多少数(来了多少个脉冲)。根据这个数值换算成频率。

会员中心 微信客服
客服
回到顶部