[产品应用] 关于CW32 互补PWM 程序调试的疑问

[复制链接]
 楼主| JLLi 发表于 2024-7-31 23:29 | 显示全部楼层 |阅读模式
在调试CW32 输出互补PWM 的程序时,发现在线调试时波形输出正常,但是当把程序在下到CW32 自行运行时,波形输出不正常,这是什么原因导致的呢?

gouguoccc 发表于 2024-8-1 08:08 来自手机 | 显示全部楼层
有测量的波形图吗?偏差好大?
 楼主| JLLi 发表于 2024-8-1 09:24 | 显示全部楼层
图片没存   晚点我上传下波形,大概就是在线debug 的时候 能生成连续的400kHz 50%占空比的波形,但CW32 自己运行时 就只能间断的生成 三个正常的pulse
pssyx 发表于 2024-8-1 09:35 | 显示全部楼层
在线debug时,试试全速运行是否正常?删除所有断点!
 楼主| JLLi 发表于 2024-8-1 10:43 | 显示全部楼层
我没有添加断点,理论上应该是全速运行的
pssyx 发表于 2024-8-1 11:53 | 显示全部楼层
JLLi 发表于 2024-8-1 10:43
我没有添加断点,理论上应该是全速运行的

CW32什么型号?
建议直接运行标准库Lib中Examples...ATIM目录下的“atim_pwm_output_comp”例程试试。
 楼主| JLLi 发表于 2024-8-1 13:21 | 显示全部楼层
型号是 CW32F030C8T6,我试试运行example
 楼主| JLLi 发表于 2024-8-1 13:22 | 显示全部楼层
pssyx 发表于 2024-8-1 11:53
CW32什么型号?
建议直接运行标准库Lib中Examples...ATIM目录下的“atim_pwm_output_comp”例程试试。 ...

型号是 CW32F030C8T6,我试试运行example
 楼主| JLLi 发表于 2024-8-1 22:21 | 显示全部楼层
pssyx 发表于 2024-8-1 11:53
CW32什么型号?
建议直接运行标准库Lib中Examples...ATIM目录下的“atim_pwm_output_comp”例程试试。 ...

标准库里的程序不能下载到CW32啊  提示Flash download fail
 楼主| JLLi 发表于 2024-8-1 22:53 | 显示全部楼层
这是两种运行模式下的波形

这是CW32自己运行时的波形

这是CW32自己运行时的波形

这是在debug 模式下的波形

这是在debug 模式下的波形
pssyx 发表于 2024-8-2 09:24 | 显示全部楼层
JLLi 发表于 2024-8-1 22:21
标准库里的程序不能下载到CW32啊  提示Flash download fail

请问你使用了什么IDE?什么仿真器?
这么巧!代码下载失败;试试其它工程代码能否下载?可能是工程配置有问题。
 楼主| JLLi 发表于 2024-8-2 09:55 | 显示全部楼层
pssyx 发表于 2024-8-2 09:24
请问你使用了什么IDE?什么仿真器?
这么巧!代码下载失败;试试其它工程代码能否下载?可能是工程配置有 ...

keil 5 使用的JT-LINK   我自己的程序可以正常下载   example里的程序不能下载。
 楼主| JLLi 发表于 2024-8-2 10:01 | 显示全部楼层
问题我已经解决了   参考example  我添加了几个语句后下载到CW32 就能正常运行了,但是没有想明白为什么需要设置这几位,望指教
ATIM_InitStruct.OverFlowMask = DISABLE;
ATIM_InitStruct.UnderFlowMask = DISABLE;
ATIM_InitStruct.RepetitionCounter = 0;
pssyx 发表于 2024-8-2 11:01 | 显示全部楼层
JLLi 发表于 2024-8-2 10:01
问题我已经解决了   参考example  我添加了几个语句后下载到CW32 就能正常运行了,但是没有想明白为什么需 ...

那三句话主要是将ATIM的RCR重复计数器设为0,以保证每次CNT计数器的溢出都会产生更新事件UEV。
如此来看,因为RCR值不为0(bit0~9),才导致了PWM波形异常。如果可以,将RCR值打印出来验证一下!
 楼主| JLLi 发表于 2024-8-2 14:28 | 显示全部楼层
pssyx 发表于 2024-8-2 11:01
那三句话主要是将ATIM的RCR重复计数器设为0,以保证每次CNT计数器的溢出都会产生更新事件UEV。
如此来看 ...

请问下,保持ARR 和比较值都不变的情况下  也需要UEV 更新事件吗?
pssyx 发表于 2024-8-2 14:51 | 显示全部楼层
JLLi 发表于 2024-8-2 14:28
请问下,保持ARR 和比较值都不变的情况下  也需要UEV 更新事件吗?

更新事件 UEV由硬件自动产生;UIE 更新中断使能可以禁止,如果PWM周期不变的话。
 楼主| JLLi 发表于 2024-8-2 20:42 | 显示全部楼层
pssyx 发表于 2024-8-2 14:51
更新事件 UEV由硬件自动产生;UIE 更新中断使能可以禁止,如果PWM周期不变的话。 ...

好的  谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

11

帖子

0

粉丝