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

同时测量四路高电平宽度并输出4路PWM, STC32G/STC8H系列

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-15 10:18:37
已绑定手机
已实名认证

112

主题

2387

回帖

6004

积分

版主

积分
6004
发表于 前天 17:23 | 显示全部楼层 |阅读模式
本例程已经在STC32G-V9.62实验箱测试通过,测试频率为24Mhz
使用【INT0+T0】、【INT1+T1】和PWMB组合实现了四路脉冲高电平测量
===【INT0+T0】测量一路外部输入信号的高电平宽度
===【INT1+T1】测量一路外部输入信号的高电平宽度
===PWMB组的 【PWM5+PWM6】测量一路外部输入信号的高电平宽度
       外部输入信号只需要从 PWM5输入,或只需要从 PWM6输入

===PWMB组的 【PWM7+PWM8】测量一路外部输入信号的高电平宽度
       外部输入信号只需要从 PWM7输入,或只需要从 PWM8输入

使用PWMA实现了4路带互补输出的PWM,输出同时与四路输入捕获进行了关联

===PWMA组的 【PWM1P+PWM1N】
===PWMA组的 【PWM2P+PWM2N】
===PWMA组的 【PWM3P+PWM3N】
===PWMA组的 【PWM4P+PWM4N】

截图202506141720218834.jpg 截图202506141720263583.jpg

测试使用了同一信号源,可以看到捕获后的h1~h4高电平值均相同,


程序采用USB-CDC接口直接回传

,使用STC32G-V9.62实验箱测试通过,测试频率为24Mhz
或者可以使用32G8K64芯片,下载使用40Mhz频率进行测试
测试端口如下所示:

// PWM输出为P60~P67,分别对应PWM1P、PWM1N、PWM2P、PWM2N、PWM3P、PWM3N、PWM4P、PWM4N
// PWM输入为P32(INT0)、P33(INT1)、P00(PWM5P)、P02(PWM7P)

程序内使用INT0+T0、INT1+T1、PWMB捕获2路的组合方式,可同时捕获四路信号的高电平
同时使用PWMA产生了四路互补带死区的高级PWM信号,上电默认50%,与捕获输入对应映射:
以下为其中一路的示例,程序中使用了协程,来减缓捕获时间,方便打印到USB-CDC端口进行观察

  •         task_start(0);  // 协程0
  •         task_wait(P32); // 等待 INT0 为低
  •         TR0 = 1;
  •         // 启动定时器
  •         IT0 = 1;
  •         // 使能 INT0 下降沿中断
  •         EX0 = 1;
  •         f1 = 1;
  •         task_wait(f1);                       // 等待读取完成
  •         UpdatePwm(1, high_level_time1 >> 2); // 缩放至0~16384
  •         printf_usb("h1:%u\r\n", high_level_time1);
  •         task_delay(100);
  •         task_end(1);

以下是经过测试的完整例程,欢迎下载测试: int_pwmin_pwmout.zip (94.96 KB, 下载次数: 0)



回复

使用道具 举报 送花

3

主题

727

回帖

165

积分

等待验证会员

积分
165
发表于 前天 17:28 | 显示全部楼层
测试报告

本例程在STC32G-V962实验箱测试通过,测试频率为24MHz。

1. 测试方法与结果  
   使用STC32G-V962实验箱进行高电平捕获测试,捕获结果表明,四路信号的高电平值均保持一致,验证了捕获方法的可靠性。程序采用USB-CDC接口直接回传信号,确保了数据的准确传输。

2. 捕获方法与实现  
   本例程采用了多重捕获方法:  
INT0+T0、INT1+T1:通过这两个组合实现了四路高电平的捕获,确保了捕获的完整性与准确性。  
PWMB:结合了脉冲宽度比(PWMB)技术,进一步提高了捕获的效率与准确性。  
PWMA:通过互补输出的方式,实现了四路带互补输出的PWM信号生成,与捕获输入进行了映射关系的关联。

3. PWM输出与输入端口  
输出端:输出的PWM信号由以下8个端口组成:  
P60~P67:对应PWM1P、PWM1N、PWM2P、PWM2N、PWM3P、PWM3N、PWM4P、PWM4N  
输入端:捕获的4路高电平信号分别由以下4个端口组成:  
P32(INT0)、P33(INT1)、P00(PWM5P)、P02(PWM7P)

4. 捕获方法优化  
   为了提高捕获效率,程序采用协程技术,通过减缓捕获时间,方便于打印到USB-CDC端口进行观察。同时,可以选择32G8K64芯片,下载40MHz的测试频率,以满足更高要求的测试需求。

测试通过,确认了实验箱的稳定性与性能,为后续的高电平捕获测试奠定了良好基础。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 03:39 , Processed in 0.128171 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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