完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、 方案总体介绍
本方案未采用外部中断测频和定时器输入捕获测占空比,原因是在测高频时,中断频率过高,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的矩形波的频率和占空比。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1847浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
609浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
507浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
488浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:45 , Processed in 0.618603 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号