How to multiplex in PSoC6?

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

cross mob
Anonymous
Not applicable

Hi,

Now I use PSoC6 to connect other board by UART. The board only has four lines, namely, Vcc, GND, Rx(GPIO) and Tx(GPIO). The board uses Tx as GPIO to wake up PSoC6. Meanwhile, the board use Rx as GPIO to be waken up. The board is from other company, I cannot modify.

The PSoC6 is in deep sleep in order for low power consumption. UART interrupt cannot wake up PSoC6 from deep sleep. Thus, I wish to multiplex PSoC6.

I use pins of P9[0] and P9[1].

In general, P9[0] is configed as GPIO input. Then, the board can wake up PSoC6 by GPIO interrupt from deep sleep. After waked up, P9[0] need to configed as UART Rx so as to receive from the board.

When need to transmit to the board, P9[1] is configed as GPIO outpout to wake up the board. Then, P9[1] need to be configed as UART Tx so as to transmit to the board.

I want to know whether this case is feasible? How to achieve the goal?

Your timely support would be highly appreciated!

Thanks,

Jianxuan

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

Hi Jianxuan,

Yes, it is feasible. Please refer to attached demo code, which demonstrates how to modify UART rx/tx pins to general GPIO for wake up from DSM, and then configure it back for UART functionality.

View solution in original post

0 Likes
4 Replies
lock attach
Attachments are accessible only for community members.
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

Hi Jianxuan,

Yes, it is feasible. Please refer to attached demo code, which demonstrates how to modify UART rx/tx pins to general GPIO for wake up from DSM, and then configure it back for UART functionality.

0 Likes
Anonymous
Not applicable

Hi fwan,

Thanks for your reply!

I am trying to porting your demo code to my application, but failed.

P9[0] is configured as GPIO. PSoC6 can be woken up from deep sleep.

Then I changed P9[0] to UART Rx, but PSoC6 cannot receive from the board.

P9[1] is configured as GPIO. It can wake up the board.

Then I changed P9[1] to UART Tx, but PSoC6 cannot transmit correctly, namely, the board got messy code.

I am still trying to achieve the goal.

Thanks,

Jianxuan

0 Likes

Any progress over porting the code to your project?

0 Likes
Anonymous
Not applicable

Hi fwan,

I do not achieve the goal.

At present we have to make PSoC6 in sleep instead of deep sleep.

Wish PSoC6 should be in deep sleep earlier!

Thanks.

0 Likes