你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32检测信号频率经验分享

[复制链接]
攻城狮Melo 发布时间:2023-3-29 21:03
目标: n- H; Z4 U0 e6 c
信号:500kHz±50Hz方波信号,占空比50%,低电平:0V,高电平:3.3V3 P% ]; ^, y. r4 k* e. D1 F
检测:信号的频率,采样率100Hz,记录频率值. B/ y. I/ w% w
0 e  H4 Y9 v! l' m

' }! V" g, v" b& F* `6 s. Z3 Z* ?分析" c8 j" r) v$ U+ s
信号周期2μm,高电平、低电平各持续1μm;
/ l: f+ r: }7 I& K采样频率100Hz,即每10ms记录一次频率值,计数范围:5000±50(4950~5050);! B+ y) W2 X* u" K6 ~( A! f; B  c
使用STM32F103单片机,外部晶振8MHz,内部时钟倍频最高到72MHz:
- A' R( z: P. A/ L, }外部中断:每次一个上升沿/下降沿进入一次中断记录脉冲次数。低频(<10KHz)时可以使用,缺点是频繁进入中断,占用大量时间,不能用于测量高频
* _- K5 k* j) \  O/ B4 zPWM输入模式:直接使用STM32硬件PWM输入模式来采集频率, w' g7 J) s& W9 I! b
输入捕获模式:上升沿触发,记录开始时间,下一次上升沿时记录第二次时间,两个时间差就是一个周期。<100KHz时效果很好,速度再快反复进出中断会导致检测精度下降% m! t% |& y3 q
外部时钟计数器:使用两个时钟,一个时钟用于精准及时采用,一个时钟用于计数,检测固定时间内的脉冲个数。比如一个时钟精准定时10ms,另一个时钟用于记录10ms内脉冲的个数cnt,那么频率f=cnt/10ms。此方法要使用两个单独的定时器,可以检测2MHz的信号。
/ X9 j9 D0 D. T; X$ J* a6 v( L  e$ u2 u: M& p8 l* k

* Z4 I: `# d, |5 Y# W  K测频法原理
$ g: P# \- \- M, j$ N测频法的思路如下图所示,在一固定时间Tc1内,对被测信号脉冲进行计数得到N1。如果标准信号的频率为fc,那么被测信号的频率fx = N1*fc0 E  B( \/ E. E. x0 S
+ R2 [' N7 f' G) Z: q0 d

" g* A4 ~2 E) `/ c5 u3 M 20210528223153205.png . z, q. j: m- A8 P
* v0 ~' V: S: j2 y7 y, _6 `

$ C* d. ^: t: ?! Q————————————————" r. \" z5 z. J2 n6 m/ p! X
版权声明:BobBobBao* k; S; U: @0 R+ V1 g  ^
如有侵权请联系删除
6 |7 o! \) u( W; |; [1 E( c( X, M+ Y7 h$ O
  x" i! u4 B$ G% H
赞 收藏 评论0 发布时间:2023-3-29 21:03

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版