找回密码
 立即注册
楼主: 神农鼎

如何测量72MHz以下的外部信号,STC32的144MHz的高速PWM

[复制链接]

1

主题

2

回帖

13

积分

新手上路

积分
13
发表于 2023-4-2 16:59:28 | 显示全部楼层
楼主,所以外部捕获方式还是不适合直接测量高频窄脉冲频率,将外部频率N次分频后在输入单片机,用捕获方式测量分频信号的周期可以推算出待测频率,系统频率越高,测量越精确

点评

捕获方式测量周期(计算频率),因为要中断操作,所以最小周期有限制,仅仅对于捕捉,至少要间隔64个时钟,假设主频为40MHz,则周期最小为1.6us,这还仅仅是捕获、进中断读取,实际项目还要考虑数据处理时间,还要兼  详情 回复 发表于 2023-6-6 12:19
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-06-15 09:46:00

733

主题

1万

回帖

1万

积分

管理员

积分
16603
发表于 2023-4-2 17:15:24 | 显示全部楼层
4nS, 相当于 250MHz
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-11-26 13:41:15

14

主题

87

回帖

671

积分

高级会员

积分
671
发表于 2023-6-6 10:55:19 | 显示全部楼层
Sush*** 发表于 2023-4-2 16:59
楼主,所以外部捕获方式还是不适合直接测量高频窄脉冲频率,将外部频率N次分频后在输入单片机,用捕获方式 ...

为什么要N分频后输出MCU?stc32g自带预分频器
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-06-14 13:12:15

74

主题

6088

回帖

1万

积分

超级版主

积分
12715
发表于 2023-6-6 12:19:32 | 显示全部楼层
Sush*** 发表于 2023-4-2 16:59
楼主,所以外部捕获方式还是不适合直接测量高频窄脉冲频率,将外部频率N次分频后在输入单片机,用捕获方式 ...

捕获方式测量周期(计算频率),因为要中断操作,所以最小周期有限制,仅仅对于捕捉,至少要间隔64个时钟,假设主频为40MHz,则周期最小为1.6us,这还仅仅是捕获、进中断读取,实际项目还要考虑数据处理时间,还要兼顾别的程序运行,所以实际能捕获、处理的最小脉冲周期,就要具体分析了。
STC8H、STC32G的PWM捕获模式,只测量周期的话,可以将输入信号预分频1、2、4、8,最多8分频,这样就可以拓展测量的最小脉冲周期可以达到1/8,仅仅捕获可以捕获0.2ua@40MHz,实际项目捕获到200KHz都是没有压力的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-11-26 13:41:15

14

主题

87

回帖

671

积分

高级会员

积分
671
发表于 2023-6-7 09:07:45 | 显示全部楼层
如何测量72MHz以下的外部信号,
STC32的144MHz的高速PWM
STC32G12K128-35MHz-LQFP64/48/32,TSSOP20
STC32G8K64-42MHz-LQFP48/32
STC8H1K08T-33I-TSSOP20/QFN20
看了这个列表,发现没有DIP40封装,说明这种封装的不行吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:443
  • 最近打卡:2025-06-13 08:57:40
已绑定手机

39

主题

2053

回帖

7054

积分

论坛元老

积分
7054
发表于 2023-6-7 19:03:12 | 显示全部楼层
如何测量72MHz以下的外部信号, STC32的144MHz的高速PWM
修改3楼的例程为中断模式 !
主要修改部分:
  1.     HSPWMB_CFG = 0x07;                      //使能PWMB相关寄存器异步访问功能,并使能异步模式PWM中断
复制代码
1.png
使能PWM捕获中断:
  1.     WritePWMB((char)&PWMB_IER, 0x06);       //使能CC5,CC6捕获中断
  2.     EA = 1;
复制代码
主循环打印捕获结果:
  1.         if (Cap5Flag)
  2.         {
  3.             Cap5Flag = 0;
  4.             printf("%04x ",PWM5_cnt);
  5.         }
  6.         if (Cap6Flag)
  7.         {
  8.             Cap6Flag = 0;
  9.             printf("%04x\r\n",PWM6_cnt);
  10.         }
复制代码
添加PWM中断函数:
  1. void PWMB_ISR() interrupt PWMB_VECTOR
  2. {
  3.     char sta;
  4.         sta = ReadPWMB((char)&PWMB_SR1);
  5.         if (sta & 0x02)
  6.         {
  7.                 PWM5_cnt = ReadPWMB((char)&PWMB_CCR5H);
  8.                 PWM5_cnt = (PWM5_cnt<<8) + ReadPWMB((char)&PWMB_CCR5L);
  9.                 Cap5Flag = 1;
  10.         }
  11.         if (sta & 0x04)
  12.         {
  13.                 PWM6_cnt = ReadPWMB((char)&PWMB_CCR6H);
  14.                 PWM6_cnt = (PWM6_cnt<<8) + ReadPWMB((char)&PWMB_CCR6L);
  15.                 Cap6Flag = 1;
  16.         }
  17.         WritePWMB((char)&PWMB_SR1, 0x00);   //清除完成标志
  18. }
复制代码

高速PWM使用PLL时钟实现高速输出和高速捕获功能-中断模式.zip

10.84 KB, 下载次数: 179

点评

请问中断函数中换成获取实时计数值出错咋办 PWM6_cnt = ReadPWMB((char)&PWMB_CNTRH); PWM6_cnt = (PWM6_cnt<<8) + ReadPWMB((char)&PWMB_CNTRL);  发表于 2024-1-21 22:37
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-06-14 13:12:15

74

主题

6088

回帖

1万

积分

超级版主

积分
12715
发表于 2023-8-7 17:12:09 | 显示全部楼层
Sush*** 发表于 2023-4-2 16:28
请教一下,测量72M一下信号频率对信号的上升沿或者下降沿时间有没有要求,比如我的待测频率是50M,虽然周期 ...

如果是测频率,可以分频后再测。内部分频也要补超过72MHz的频率,高、低电平均大于7ns才行,4ns不行的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-06-15 09:46:00

733

主题

1万

回帖

1万

积分

管理员

积分
16603
发表于 2024-1-14 10:02:24 | 显示全部楼层
STC32F 的 PLL-250MHz, 可以用来测量 50MHz 的方波
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-03-20 09:06:34

2

主题

3

回帖

142

积分

注册会员

积分
142
发表于 2024-1-14 20:31:28 | 显示全部楼层
本帖最后由 flashlix 于 2024-1-14 20:36 编辑

楼主,请问两个问题:
1、在使用高速高级PWM进行捕获时,捕获数值的寄存器的时钟源是按系统时钟计时还是按照PLL输出时钟计时?
关于高速高级PWM在手册之找到以下截图,可以确认一下吗?谢谢
2、如果使用高速高级PWM进行捕获,可以同时进行高级PWM(非高速)输出吗?比如,PWM7/8进行PWM输出(非高速),PWM1P采用高速高级PWM进行捕获
截图202401142031087694.jpg

点评

1、在使用高速高级PWM进行捕获时,捕获数值的寄存器的时钟源是按PLL时钟。 2、PWMA、PWMB是两组相互独立的PWM,各自操作互不干涉,PWM7/8属于PWMB,PWM1P疏于PWMA,各自为政。  详情 回复 发表于 2024-1-14 23:02
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-06-15 09:46:00

733

主题

1万

回帖

1万

积分

管理员

积分
16603
发表于 2024-1-14 20:52:05 | 显示全部楼层
PLL时钟
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 04:35 , Processed in 0.240538 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表