cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

YoIs_1298666
Contributor II

Hello,

I would like to reset the UART by software. Should I do UART_Start () after executing UART_Stop ()?

Will the send buffer be cleared and the receive buffer pointer will return to its initial value?

And the TX and RX pins are both high impedance after a hardware reset.

After executing UART_Start (), RX has High Impedance Digital, TX has Initial Drive State of High, and Drive Mode is Strong Drive.

pastedImage_0.png

After executing UART_Stop (), it depends on the UART configuration.

[In case of not Show UART terminals]

pastedImage_1.png

RX is High Impedance and TX is High output.  Is this state correct?

[In case of Show UART terminals]

pastedImage_2.png

pastedImage_3.png

pastedImage_4.png

Both RX and TX seem to be High Impedance.  Why?

Can it be the same as for not Show UART terminals?

Best regards,

Yocchi

0 Likes
Reply
1 Solution
AikoO_51
Employee

If you want to just stop and start UART, you should try UART_Sleep and UART_Wakeup API as Post #1.

But If your request is to do something initialization of UART again in run time, Please try to re-set UART_initVar to 0 and invoke UART_Start again. (you could find UART_initVar in definition of UART_Start )

The value of UART_initVar would not change to 0 back to just invoke UART_Start.

Aiko Ohtaka
Infineon Technologies

View solution in original post

0 Likes
Reply
4 Replies
RyanZhao
Moderator
Moderator

Could you tell more details about the background why it need such kind of reset by UART_Start() and UART_Stop()?

Is it possible to use UART_Sleep() and UART_Wakeup() to replace UART_Start() and UART_Stop()?

0 Likes
Reply
YoIs_1298666
Contributor II

Hello,

Thank you very much for your reply.

We are designing for Automotive and we are considering returning the UART when there is no response from the UART.

Best regards,

Yocchi

0 Likes
Reply
AikoO_51
Employee

If you want to just stop and start UART, you should try UART_Sleep and UART_Wakeup API as Post #1.

But If your request is to do something initialization of UART again in run time, Please try to re-set UART_initVar to 0 and invoke UART_Start again. (you could find UART_initVar in definition of UART_Start )

The value of UART_initVar would not change to 0 back to just invoke UART_Start.

Aiko Ohtaka
Infineon Technologies

View solution in original post

0 Likes
Reply
YoIs_1298666
Contributor II

Hello,

Thank you for your consideration.

I'm hoping that I can recover whatever happens with the UART.

Is it okay to expect it?

Best regards,

Yocchi

0 Likes
Reply