网老四
发表于 2024-4-3 18:14:07
可以试着把其他程序屏蔽掉,只留下PWM部分,
甚至只留下出问题的那一路PWM,
实时监视相关寄存器内容是不是被误改,
研究下到单片机在那10ms底在干什么
叶凡
发表于 2024-4-3 20:36:01
网老四 发表于 2024-4-3 18:14
可以试着把其他程序屏蔽掉,只留下PWM部分,
甚至只留下出问题的那一路PWM,
实时监视相关寄存器内容是不是被 ...
您好,试过这种方式了,相同程序烧录到不同批次的单片机才出现的这个问题,您可以看一下之前的描述
梁工
发表于 2024-4-3 23:28:34
叶凡 发表于 2024-4-3 13:49
梁工,您好:
出问题的单片机信息:
已经按您的技术参数编写了程序,主频24MHz,
PWM时钟=主频/2,周期4096(0x1000),
低电平时间2450个PWM时钟,高电平时间4096-2450=1646个PWM时钟,
PWM频率2.93KHz。
请先别修改程序,直接下载PWM.hex测试。24个IO都设置为推挽输出,
但为了避免外部电路的影响,最好IO悬空测试,这样能定性问题所在。
haishi28
发表于 2024-4-4 06:13:13
从你描述的情况分析一下:
1. 烧写的程序一致,两个批次MCU,对调MCU问题跟着MCU走——要么是硬件问题,要么是软硬件兼容问题;
2. 从示波器看到的波形不一致,逻辑分析仪也是断的,而示波器设置又一致,而且产品表现也不同——最终输出的PWM波形肯定是不一样,并不是示波器和逻辑分析仪的问题;
所以,如果硬件不应该出这样的bug,最简单的办法是换MCU,不然后期可能还会出现其他异常问题,不好预估问题和损失;如果无法更换MCU,那就考虑用软件补偿,比如利用IO翻转形成PWM,看看还会不会出现断的现象。
祝好运!
叶凡
发表于 2024-4-4 09:04:04
梁工 发表于 2024-4-3 23:28
已经按您的技术参数编写了程序,主频24MHz,PWM时钟=主频/2,周期4096(0x1000),低电平时间2450个PWM时 ...
好的,谢谢,我后天去公司测试一下
叶凡
发表于 2024-4-4 09:05:27
haishi28 发表于 2024-4-4 06:13
从你描述的情况分析一下:
1. 烧写的程序一致,两个批次MCU,对调MCU问题跟着MCU走——要么是硬件问题,要 ...
好的,谢谢
神农鼎
发表于 2024-4-4 09:34:37
按梁工最后给你的测试程序来测试,
程序先啥都不要动,你动了梁工就无法跟你顺利交流。
如还有问题,直接上班后工作时间电话梁工 13922829991
叶凡
发表于 2024-4-7 17:16:16
梁工 发表于 2024-4-3 23:28
已经按您的技术参数编写了程序,主频24MHz,
PWM时钟=主频/2,周期4096(0x1000),
低电平时间2450个PWM ...
梁工,您好:
{:4_250:}感谢您的程序支持,您提供的程序烧录到异常批次的单片机中PWM正常输出。结合您的程序最终我们将问题定位到RTX51操作系统配置的问题。
最后的解决方法是:我们将RTX51配置的空闲代码配置禁用之后问题消失,目前程序在两个批次的单片机上边测试PWM均输出正常。当前正在对程序进行持久化的测试。
疑惑的是在之前批次的单片机上量产了500多片没有发现这个问题。
叶凡
发表于 2024-4-7 17:16:53
神农鼎 发表于 2024-4-4 09:34
按梁工最后给你的测试程序来测试,
程序先啥都不要动,你动了梁工就无法跟你顺利交流。
好的,感谢您的支持,目前问题得到解决
梁工
发表于 2024-4-7 17:52:30
叶凡 发表于 2024-4-7 17:16
梁工,您好:
感谢您的程序支持,您提供的程序烧录到异常批次的单片机中PWM正常输出。结合您的程序 ...
如果是RTX51的问题,则要深入去了解其底层和工作原理,才有可能解决得了。
如果是多任务操作同一个外设,则一定要保证不能重入,就是说,一个任务操作一个外设时,别的任务不能操作,切记。
PWM这种硬件的外设,是不会出现断续的,一定要记住,避免浪费时间。