UART software reset for PSoC4000S

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
YoIs_1298666
Level 5
Level 5
250 sign-ins 100 replies posted 100 sign-ins

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
1 Solution

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
4 Replies
RyanZhao
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

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

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

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
0 Likes

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