Other Parts Discussed in Thread:AM3358
Ti 工程师,您好:
我测试使用ehrpwm1A以及ehrpwm1B分别进行PWM输出。当两个PWM均调用了pwm_stop()停止输出后,调用pwm_start启动其中之一开始输出,这是另一通道X也同时自动输出。而且,通过echo /sys/class/pwm/ehrpwm.1:X时,发现这时它是0,以下是调用pwm_start时对PWMSS寄存器及EPWM1寄存器的当前值打印:
请问这种情况怎么去定位解决?
请帮忙分析,谢谢!
Shine:
请问您使用的是哪个版本的processor SDK? ehrpwm1A和ehrpwm1B单独使用是没有问题的是吗?只是同时工作会出现这个问题?
,
user6563005:
您好!Shine,
Shine 说:ehrpwm1A和ehrpwm1B单独使用是没有问题的是吗?
是的,在两个通道都stop的情况下,只要start其中之一,另一个就同时输出了。
Shine 说:请问您使用的是哪个版本的processor SDK?
sdk tar包名称是 "ti-sdk-am335x-evm-06.00.00.00.tar.gz",我在调试后,发现跟AQCTLB的值被置零有关,函数是ehrpwm_channel_output_enable(),在里面的ehrpwm_aq_set_csfrc_load_mode()调用后AQCTLB的值就变成了0,我恢复了另一通道的AQCTLB设置就没有这个现象了,现在在继续确认这种解决方法是否可行,不知您可否帮我分析下这样做是否稳妥?谢谢啊!
,
user6563005:
经过搜索,我还发现了另一个人与我很类似的问题,他用的是AM3358:
e2e.ti.com/…/691603
,
Shine:
看您发的e2e帖子上的问题,是老版本SDK的bug,建议您先更新到最新的SDK版本试试。如果还是同样的问题,建议按照帖子里的办法修改一下驱动。
,
user6563005:
非常感谢您提供的解决思路。