cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4

chyi_4662656
New Contributor II

各位好,請問如何設定PWM初始的輸出狀態?

使用的IC是CY8C4125

目前電路上已經有Pull High的電阻,但是MCUPower On的時候,PWM的腳位仍然會將電位拉至Low(波形如下)

因為我的硬體是Low動作的,所以不希望MCU Power On的時候出現Low的訊號。

我希望的動作是像GPIO的訊號一樣,設定完Initial drive state後,Power On後電位保持在高電位。

C1:PWM 訊號

C2:GPIO 訊號

C3:XRES 訊號

0 Likes
1 Solution
chyi_4662656
New Contributor II

大家好,分享我解決的方式。

Step1.

1.png

Step2.

2.png

Step3.

IC Power On CyDelay(200); 一段時間,再執行以下程式:

MotorPwm_TriggerCommand(MotorPwm_MASK, MotorPwm_CMD_START);

MotorPwm_WriteCompare(0);

MotorPwm_WritePeriod(1000);

MotorPwm_Out_SetDriveMode(0x6);

MotorPwm_Start();

View solution in original post

0 Likes
4 Replies
LinglingG_46
Moderator
Moderator

这个问题需要综合你的需求才能回复:

1:如果改成反向输出,开始为高,这种情况是否可以满足你的需求?

pastedImage_1.png

2:还有一种方法是你可以通过修改HSIOM寄存器,把这个管脚从PWM上面断开,然后改到GPIO,这个方法可以解决在PWM stop之后,客户想手动控制这个管脚的高低电平。这种方法可以参考: Control GPIO Output After Stopping the PWM - KBA218991

3:Hope it can be helpful for you!

chyi_4662656
New Contributor II

Thank you !

依照您的方法,Power On後仍然會有約 100us 是Low的狀態。

但是參考你提供的方法,再做一些設定即可達到我要的結果。

0 Likes
chyi_4662656
New Contributor II

LeCroy--00000.jpg

0 Likes
chyi_4662656
New Contributor II

大家好,分享我解決的方式。

Step1.

1.png

Step2.

2.png

Step3.

IC Power On CyDelay(200); 一段時間,再執行以下程式:

MotorPwm_TriggerCommand(MotorPwm_MASK, MotorPwm_CMD_START);

MotorPwm_WriteCompare(0);

MotorPwm_WritePeriod(1000);

MotorPwm_Out_SetDriveMode(0x6);

MotorPwm_Start();

View solution in original post

0 Likes