8g2k64s4的两个pwm输出互相干扰
采用pwm1和pwm54引脚,输出模式为推挽输出,输出频率固定为1kHz,占空比为50%,工作时序为pwm1使能——pwm1停止——pwm54使能——pwm54停止,每个工作时间为5ms,一直循环。问题是在pwm1使能输出时,pwm54输出幅值较低的pwm信号;在pwm54使能时,pwm1也输出幅值较低的pwm信号。而屏蔽掉其中一个引脚,输出变正常了,或者把两个引脚从推挽输出改成准双向口也可以变正常。下面是用示波器采集到不正常的输出波形。在STC8G2K64S4微控制器中,PWM1和PWM54引脚在使用推挽输出模式时出现相互干扰的问题,可能由以下几个原因引起:
1. 电源和地线噪声:当两个PWM输出同时工作时,可能会在电源和地线上产生较大的噪声,从而影响另一个PWM输出的幅值。建议检查电源和地线的布局,确保它们具有足够的去耦电容,以减少噪声干扰。
2. 引脚驱动能力:推挽输出模式下,引脚具有较高的驱动能力,但同时也会产生较大的电流变化,可能导致相互干扰。可以尝试在PWM输出引脚上串联一个小电阻(如10-100Ω),以减缓电流变化速度,减少干扰。
3. PWM模块配置:检查PWM模块的配置,确保PWM1和PWM54的时钟源和分频器设置正确。如果时钟源或分频器设置不当,可能会导致PWM信号的不稳定或相互干扰。
4. 时序控制:在PWM1使能和PWM54使能之间增加一段延迟时间,以确保一个PWM输出完全停止后再启动另一个PWM输出。建议在每个PWM停止后增加1-2ms的延迟,以确保信号完全稳定。
5. 引脚复用和冲突:检查PWM1和PWM54的引脚是否与其他功能复用,是否存在潜在的冲突。确保在配置PWM输出时,其他功能已被禁用。
6. 硬件布局:检查PCB布局,确保PWM1和PWM54引脚的走线尽可能短且平行,减少相互之间的电磁干扰。如果有条件,可以考虑使用屏蔽层或增加地线隔离。
7. 软件优化:在代码中增加对PWM输出的控制逻辑,确保在切换PWM输出时,先关闭当前PWM输出,等待一段时间后再开启另一个PWM输出。这样可以减少瞬态干扰。
8. 使用准双向口模式:如果问题仍然无法解决,可以考虑将PWM1和PWM54的输出模式从推挽输出改为准双向口模式。准双向口模式的驱动能力较低,但可以减少相互干扰。
综上所述,通过优化电源和地线布局、调整引脚驱动能力、检查PWM模块配置、增加时序控制延迟、优化硬件布局和软件控制逻辑,可以有效减少PWM1和PWM54之间的相互干扰。如果问题仍然存在,可以尝试使用准双向口模式作为临时解决方案。
[本文内容由国芯人工智能辅助生成,仅供参考] 你是不是不输出时设置为高阻?
PWM对地接一个5.1K电阻再看看。 梁工 发表于 2025-3-29 15:25
你是不是不输出时设置为高阻?
PWM对地接一个5.1K电阻再看看。
梁工,你好,我在初始化时就设置的是推挽输出,后面没改过,然后按照你说的对地接了5.1k电阻,问题还是存在 5214 发表于 2025-3-29 16:22
梁工,你好,我在初始化时就设置的是推挽输出,后面没改过,然后按照你说的对地接了5.1k电阻,问题还是存 ...
会不会是测量问题?IO口要么输出高,要么输出低,没办法输出一个1V左右的电平的。 梁工 发表于 2025-3-29 17:49
会不会是测量问题?IO口要么输出高,要么输出低,没办法输出一个1V左右的电平的。 ...
单独输出一个pwm就没问题,两个pwm一起输出就会出现上述问题 5214 发表于 2025-3-29 17:58
单独输出一个pwm就没问题,两个pwm一起输出就会出现上述问题
内部电路,硬件上是完全独立的。你还是再仔细检查一下吧。
页:
[1]