Forums - Wake Up from Deep Sleep on UART_RX

4 posts / 0 new
Last post
Wake Up from Deep Sleep on UART_RX
sunlong
Join Date: 27 Nov 19
Posts: 8
Posted: Tue, 2020-06-02 01:20

Dears,

What I implenmented:

1. Map PIO7 and PIO8 as UART Mode, wired SPI_PIO# to ground

2. enable deep sleep in AppInit

3. wait in UART receiving events handler

 

Problem:

1. the UART RX callback is never called while deep sleep is enabled

 

What I tried:

1. disable deep sleep, UART RX is callback is working good as expected

2. enable deep sleep, sending UART message over PIO1(default UART RX), the UART RX callback is working good as expected

 

Expcted:

Is there any method I can use to receive UART message on PIO7 while deep sleep is enabled?

 

B.R.

  • Up0
  • Down0
abhghos
Join Date: 27 Aug 18
Posts: 29
Posted: Tue, 2020-06-02 08:32

Please ensure that the baud rate is 2400

  • Up0
  • Down0
sunlong
Join Date: 27 Nov 19
Posts: 8
Posted: Tue, 2020-06-02 17:53

Thank you @abhghos

I tried under 2400 baudrate, it is still not working.

 

 

  • Up0
  • Down0
sunlong
Join Date: 27 Nov 19
Posts: 8
Posted: Tue, 2020-06-02 19:00

I noticed there are 2 diffreent kinds of 2400 baudrate : UART_RATE_2K4 and UART_SLOW_RATE_2K4.

The wakeup on RX works on UART_SLOW_RATE_2K4 but not on UART_RATE_2K4.

 

Thank you. Problem resolved.

 

Below is UART connection speed information which I retrived from CSCONFIG.exe:

Sets the baud rate of the UART connection.  The possible values are described below. Care should be taken to get the correct value for the desired rate, as the values are not straightforward.  Non-standard baud rates can be set; contact Qualcomm for more information.
 
- UART_RATE_2K4      = 0x000a - UART_RATE_9K6      = 0x0028 - UART_RATE_19K2     = 0x004e - UART_RATE_38K4     = 0x009e - UART_RATE_57K6     = 0x00eb - UART_RATE_115K2    = 0x01d9 - UART_RATE_230K4    = 0x03af - UART_RATE_460K8    = 0x0760 - UART_RATE_921K6    = 0x0ebf - UART_RATE_1382K4   = 0x161f - UART_RATE_1843K2   = 0x1d7e - UART_RATE_2764K8   = 0x2c3d - UART_RATE_3686K4   = 0x3afc
 
- UART_SLOW_RATE_2K4 = 0x12c0
 
The baud rate defined as UART_SLOW_RATE_X indicates a rate that drives the UART from the 32kHz clock rather than the 16MHz crystal.  This has the advantage that the UART can be used when Deep Sleep is enabled without having to wake the chip using the WAKE pin before transmitting to it.  However, the disadvantage is that only one low baud rate is available in this mode.  If a higher baud rate is required then either Deep 
  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.