打印
[产品应用]

关于CW32 互补PWM 程序调试的疑问

[复制链接]
1376|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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时,试试全速运行是否正常?删除所有断点!

使用特权

评论回复
5
JLLi|  楼主 | 2024-8-1 10:43 | 只看该作者
我没有添加断点,理论上应该是全速运行的

使用特权

评论回复
6
pssyx| | 2024-8-1 11:53 | 只看该作者
JLLi 发表于 2024-8-1 10:43
我没有添加断点,理论上应该是全速运行的

CW32什么型号?
建议直接运行标准库Lib中Examples...ATIM目录下的“atim_pwm_output_comp”例程试试。

使用特权

评论回复
7
JLLi|  楼主 | 2024-8-1 13:21 | 只看该作者
型号是 CW32F030C8T6,我试试运行example

使用特权

评论回复
8
JLLi|  楼主 | 2024-8-1 13:22 | 只看该作者
pssyx 发表于 2024-8-1 11:53
CW32什么型号?
建议直接运行标准库Lib中Examples...ATIM目录下的“atim_pwm_output_comp”例程试试。 ...

型号是 CW32F030C8T6,我试试运行example

使用特权

评论回复
9
JLLi|  楼主 | 2024-8-1 22:21 | 只看该作者
pssyx 发表于 2024-8-1 11:53
CW32什么型号?
建议直接运行标准库Lib中Examples...ATIM目录下的“atim_pwm_output_comp”例程试试。 ...

标准库里的程序不能下载到CW32啊  提示Flash download fail

使用特权

评论回复
10
JLLi|  楼主 | 2024-8-1 22:53 | 只看该作者
这是两种运行模式下的波形

1png.png (128.75 KB )

这是CW32自己运行时的波形

这是CW32自己运行时的波形

2png.png (131.4 KB )

这是在debug 模式下的波形

这是在debug 模式下的波形

使用特权

评论回复
11
pssyx| | 2024-8-2 09:24 | 只看该作者
JLLi 发表于 2024-8-1 22:21
标准库里的程序不能下载到CW32啊  提示Flash download fail

请问你使用了什么IDE?什么仿真器?
这么巧!代码下载失败;试试其它工程代码能否下载?可能是工程配置有问题。

使用特权

评论回复
12
JLLi|  楼主 | 2024-8-2 09:55 | 只看该作者
pssyx 发表于 2024-8-2 09:24
请问你使用了什么IDE?什么仿真器?
这么巧!代码下载失败;试试其它工程代码能否下载?可能是工程配置有 ...

keil 5 使用的JT-LINK   我自己的程序可以正常下载   example里的程序不能下载。

使用特权

评论回复
13
JLLi|  楼主 | 2024-8-2 10:01 | 只看该作者
问题我已经解决了   参考example  我添加了几个语句后下载到CW32 就能正常运行了,但是没有想明白为什么需要设置这几位,望指教
ATIM_InitStruct.OverFlowMask = DISABLE;
ATIM_InitStruct.UnderFlowMask = DISABLE;
ATIM_InitStruct.RepetitionCounter = 0;

使用特权

评论回复
14
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值打印出来验证一下!

使用特权

评论回复
15
JLLi|  楼主 | 2024-8-2 14:28 | 只看该作者
pssyx 发表于 2024-8-2 11:01
那三句话主要是将ATIM的RCR重复计数器设为0,以保证每次CNT计数器的溢出都会产生更新事件UEV。
如此来看 ...

请问下,保持ARR 和比较值都不变的情况下  也需要UEV 更新事件吗?

使用特权

评论回复
16
pssyx| | 2024-8-2 14:51 | 只看该作者
JLLi 发表于 2024-8-2 14:28
请问下,保持ARR 和比较值都不变的情况下  也需要UEV 更新事件吗?

更新事件 UEV由硬件自动产生;UIE 更新中断使能可以禁止,如果PWM周期不变的话。

使用特权

评论回复
17
JLLi|  楼主 | 2024-8-2 20:42 | 只看该作者
pssyx 发表于 2024-8-2 14:51
更新事件 UEV由硬件自动产生;UIE 更新中断使能可以禁止,如果PWM周期不变的话。 ...

好的  谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

11

帖子

0

粉丝