历史上的今天
今天是:2025年08月20日(星期三)
2019年08月20日 | Stm32F4x采用外部触发法测矩形波频率和占空比
2019-08-20 来源:eefocus
一、 方案总体介绍
本方案未采用外部中断测频和定时器输入捕获测占空比,原因是在测高频时,中断频率过高,CPU频繁响应中断,导致测量精度严重下降。故采用以下方案:
频率测量方案:用定时器TIM3定时1秒,定时器TIM2设置为外部时钟输入(将要测量的矩形波作为时钟输入)。1秒后,取出TIM2计数器的值,即是所要测量的矩形波的频率。由于存在系统误差,进行多次测量,用Matlab拟合曲线,进行线性补偿。
占空比测量方案:为节省外设资源,对定时器TIM2进行分时复用,即在测频完成后,更改定时器设置,再进行测量占空比。用定时器TIM3定时1秒,定时器TIM2设置从模式、门控模式(高电平定时器时钟使能),触发源为外部触发。1秒后,取出TIM2计数器的值,进行时间计算,得出1秒内高电平的时间,进而计算出占空比。之后同样进行线性补偿。
二、 方案具体实施
主函数编写。

在timer.h进行函数声明。

TIM3初始化,开启中断。

TIM3的中断子函数编写。

TIM2初始化函数编写,将I/O设置为复用功能。

TIM2模式选择函数编写,进行模式切换时注意将外设TIM2重设为省缺值,否则定时器会自动重装之前的ARR和PSC值,将无法进行模式切换。

三、 Matlab线性拟合曲线
1、 频率误差曲线拟合
收集测量值。

第一行为函数信号发生器显示频率,第二行为实际测量值,第三行为误差值。
将数据导入Matlab进行数值分析,拟合曲线。

以实际测量值为X,频率误差值为Y,采用多项式拟合,得到X-Y关系式。
占空比误差曲线拟合
收集测量值。

第一行为函数信号发生器显示频率,第二行为定时器计数值,第三行为函数信号发生器显示占空比折算时间值,第四行为误差。
将数据导入Matlab进行数值分析,拟合曲线。

由于发现占空比测量误差主要与输入频率有关,所以只进行频率和误差二维关系曲线的拟合,不再进行频率、占空比和误差三维曲线的拟合。图中实际测量的频率值为X(已经过频率线性补偿的值),占空比测量误差为Y,采用多项式拟合,得到X-Y关系式。
四、 运行结果展示

实测频率误差为0.0006%,占空比误差0.064%。(若进行更好的曲线拟合,测量误差更小);低频时不再进行展示,频率和占空比测量误差更小。在误差允许范围内,可测量40M的矩形波的频率和占空比。
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 解读三代kindle,从“书”到“纸”再到“字” “在为汉王设计电纸书之时,我们仔细地研究了电子书的鼻祖——亚马逊推出的三代Kindle产品,然后就发现了一个很有趣的现象:第一代kindle采用了 ...… 查看全部问答> |
|
各位大哥大姐,我在网上买了一个 4路的循迹模块。 程序是一个学长给我们写的。 4路循迹不跟单片机连接起来的时候,每一路指示灯的灭亮显示的正常。 但是只要跟单片机控制端口连接一来 。 指示灯的亮灭 ...… 查看全部问答> |
|
附件为EXP-MSP430F5529的官方开发板教程,由合肥工大改编,全中文,将之前官版的大实验进行了分解,更容易理解。 [ 本帖最后由 wstt 于 2013-1-28 10:15 编辑 ]… 查看全部问答> |
|
出液晶屏、RS232/RS422转换器、以太网转RS232/RS485/RS422模块 本帖最后由 zhoupxa 于 2013-12-26 18:44 编辑 1. 8块拆机TRULY品牌12864点阵液晶屏,型号MCG12864C2-3,有负压,带背光,可提供规格书及C51驱动测试程序。拆机品,难免磕碰,个别屏面有少许划痕。 实物拍摄,如实描述,成色如图;零售7元/块不 ...… 查看全部问答> |
|
你有这样的经历吗,每次出门前都要检查一下手机的电量,生怕电量不够支撑一天的使用?或者在使用过程中,手机突然就没有电了?TI推出的能够精确地监控电池电量的产品能够帮你解决这些问题。 $(\'flv_GG1\').innerHTML=(AC_FL_RunContent(\'width\', ...… 查看全部问答> |




