找回密码
 立即注册
查看: 1259|回复: 1

【学习打卡】8H PWMA 输入捕获 测量 PWM波 频率和占空比

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:257
  • 最近打卡:2025-05-02 09:32:20

5

主题

51

回帖

599

积分

高级会员

积分
599
发表于 2024-9-12 23:50:41 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-9-13 09:32 编辑

此实验涉及 PWMA 的『基本功能、双通道捕获、主从模式』等知识点。

注:相关内容之前有写在《【学习打卡】8H8K64U 基于面包板的最小系统 - 简易电容测试仪》回复中
不过似乎被『淹没』了。。。
为了便于交流,特此单独发个帖

1、翻阅STC8H手册,摘录PWM捕获相关信息

STC8H 系列的单片机内部集成了8通道16位高级PWM定时器,分成两组周期可不同的PWM,分别命名为 PWMA PWMB
PWMA为例,摘出对此次PWM捕获有用的信息:
1PWMA PWMIP/PWM2P/PWM3P/PWM4P 4路通道有捕获和测量脉宽功能
    1.1)对外部信号进行捕获时,可选择上升沿捕获或者下降沿捕获
    1.2)如果需要同时捕获上升沿和下降沿,则可将输入信号同时接入到两路PWM(比如:PWMIP/PWM2P),使能其中一路捕获上升沿,另外一路捕获下降沿即可,可同时捕获信号的周期值和占空比值
2PWMA 计数时钟频率灵活可调,分频值可以是 1~65535 之间的任意值,可通过寄存器 PWMA_PSCRH PWMA_PSCRL 配置,防止计数周期溢出
Snip20240912_1.png
如图,红线部分为信号捕捉的路径配置:
1)让PWM1P通道的IC1捕捉PWM的上升沿(对应TI1FP1PWMA_CCR1计数),计数间隔即为PWM周期长度T_periodT_on + T_off);
2)让PWM2P通道的IC2捕捉PWM的下降沿(对应TI1FP2PWMA_CCR2计数),与上一次PWM1P的计数间隔即为PWM高电平长度T_on
总结:是让PWM1P进来的TI1信号在滤波和边沿检测后分成两路,分别送给IC1IC2(属于PWM2P链路的一环)去计数;
           所以PWM2P在这里的作用,并不是其引脚输入,而是其部分链路被用来做PWM1P的“交叉通道”,实现对一路PWM信号的两种方式捕捉/计数

2、程序步骤规划
===================== 配置引脚 =====================
2.1、GPIO】配置PWMA输入捕获 PWM1P通道的引脚及模式(高阻输入),PWM1P -> P1.0
Snip20240912_2.png
===================== 配置链路 =====================
2.2、【滤波器】设置PWMA_CCMR1IC1F -> 滤波处理
Snip20240912_3.png
2.3、【捕获选择】设置PWMA_CCER1CC1P -> 捕获发生在TI1F的上升沿(对应TI1FP1),设置PWMA_CCER1CC2P -> 捕获发生在TI1F的下降沿(对应TI1FP2
Snip20240912_4.png
2.4、【映射选择】设置PWMA_CCMR1CC1S -> IC1映射到TI1FP1,设置PWMA_CCMR2CC2S -> IC2映射到TI1FP2
这一步很关键,很容易看走眼~
Snip20240912_5.png
2.5、从模式】从模式触发动作 -> 遇到TI1FP1, 复位计数器值(每次上升沿都能自动清零计数器,不用进中断,不用软件处理,提高效率)
Snip20240912_6.png
2.6、【分频系数】设置 PWMA_CCMR1 IC1PSC,设置 PWMA_CCMR2 IC2PS
由于本程序不打算设置中断,所以采样需要密集一些 :)
Snip20240912_7.png
===================== 使能捕捉和计数 =====================
2.7、【使能捕获】设置 PWMA_CCER1 CC1E -> 使能 通道1 的输入捕获,设置 PWMA_CCER1CC2E -> 使能 通道2 的输入捕获
Snip20240912_8.png
2.8、【使能计数】设置PWMA_CR1CENA -> 使能计数器
Snip20240912_9.png

3、程序代码示意
Snip20240912_10.png
Snip20240912_12.png

4、测试用例上机验证
Snip20240912_13.png
Snip20240912_14.png

测出的频率和占空比与理论值基本吻合
Snip20240912_15.png

5、总体感觉

优点是:相比之前的软件测量方法(查询法、中断法),代码简洁了一些;同时还能少一根数据线。
难点是:涉及寄存器配置项较多,查阅手册花了不少时间;另外手册里把『输入、输出』的配置都合在一起写了,需要自己去梳理+刨去干扰信息。

谢谢观看~~



1-9 PWMA_IC_PWM.zip

7.81 MB, 下载次数: 127

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:257
  • 最近打卡:2025-05-02 09:32:20

5

主题

51

回帖

599

积分

高级会员

积分
599
发表于 2024-9-12 23:52:54 | 显示全部楼层
Snip20240912_16.png

充分验证了手册中的这句话
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-8 13:13 , Processed in 0.119937 second(s), 53 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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