EM7455 enters DEEP SLEEP?!?

Hi, I am using the EM7455 module in our embedded ARM Linux board. It was working fine until suddenly I couldn’t get the module to start any PDP connection. Upon closer observation, I noticed that AT!CGATT? always returns 0, so it is not attached to the cell network.

Then I issued some diagnostics and status commands to see what is going on. I noticed the gstatus command says it is in DEEP_SLEEP state.

How did I get into this state and how to get out?

Thanks

at!gstatus?
!GSTATUS:
Current Time: 74 Temperature: 29
Reset Counter: 1 Mode: ONLINE
System mode: WCDMA PS state: Not attached
WCDMA band: WCDMA 2100
WCDMA channel: 0
MM (CS) state: IDLE NO SERVICE

WCDMA L1 state:L1M_DEEP_SLEEP LAC: 0000 (0)
RRC state: DISCONNECTED UTRAN Cell ID: 00000000 (0)
RxM RSSI C0: — RxD RSSI C0: —
RxM RSSI C1: — RxD RSSI C1: —

OK
ati
Manufacturer: Sierra Wireless, Incorporated
Model: EM7455
Revision: SWI9X30C_02.30.01.01 r7792 CARMD-EV-FRMWR2 2018/07/13 02:24:52
MEID: 35907306139430
IMEI: 359073061394304
IMEI SV: 16
FSN: LF833224780210
+GCAP: +CGSM

OK
at!impref?
!IMPREF:
preferred fw version: 02.30.01.01
preferred carrier name: GENERIC
preferred config name: GENERIC_002.045_001
current fw version: 02.30.01.01
current carrier name: GENERIC
current config name: GENERIC_002.045_001

OK
at!image?
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
FW 1 GOOD 2 0 0 ?? 02.24.05.06?
FW 2 GOOD 1 0 0 ?? 02.24.03.00?
FW 3 GOOD 3 0 0 ?? 02.30.01.01?
FW 4 EMPTY 0 0 0
Max FW images: 4
Active FW image is at slot 3

TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
PRI FF GOOD 0 0 0 002.027_000 02.24.05.06_ATT
PRI FF GOOD 0 0 0 002.045_001 02.30.01.01_GENERIC
PRI FF GOOD 0 0 0 002.022_000 02.24.03.00_SPRINT
PRI FF GOOD 0 0 0 002.034_000 02.24.05.06_VERIZON
Max PRI images: 50

OK

I also noticed that periodically the GSTATUS? shows it goes into L1M_ACQ state:

Current Time: 9961 Temperature: 27
Reset Counter: 1 Mode: ONLINE
System mode: WCDMA PS state: Not attached
WCDMA band: WCDMA BC3
WCDMA channel: 1346
MM (CS) state: IDLE PLMN SEARCH

WCDMA L1 state:L1M_ACQ LAC: 0000 (0)
RRC state: DISCONNECTED UTRAN Cell ID: 00000000 (0)
RxM RSSI C0: — RxD RSSI C0: —
RxM RSSI C1: — RxD RSSI C1: —

Deep sleep state could be entered maybe because the module is not attached to the network. After long time searching for the network, the module goes into sleep state to save power.

You can check the antenna, and other physical connections to make sure module is in good environment, enable registration state notifications AT+CREG=2, AT+CEREG=2. Also check with AT!GSTATUS? to check the module temperature, signal strength, etc. Bottom line is to figure out why and when the module detaches from the network.

Check with AT+CFUN? for module power state, issue AT+CFUN=0 then AT+CFUN=1, see if brings the module out of sleep state.

I think it was triggered when I powered up the Sierra Dev Kit with the Main Antenna disconnected. Even after reconnecting the antenna, it still could not reattach to the network.

I will give your suggestions a try. Thank you so much for you tips. Really appreciate it.

Hi, it turns out my antenna cable was loose. Once I tightened the cable, it started working fine again.

With my cable fixed, when I do AT+CREG?, I see +CREG: 0,1. I then did a AT!SCACT=1,1 to start the PDP connection, AT!SCACT? shows !SCACT: 1,1. It looks good.

So when it returns +CREG: 0,1, which of the 2 parameters indicates the technology, and which one indicates the registration status? This website https://m2msupport.net/m2msupport/atcreg-network-registration/#top seems to indicate that the 1st parameter is the registration status.

Thanks

Hi Dwen, is there a way to configure the EM7455 module so that it will automatically start the PDP data connection when network connectivity is restored? Right now I start the data connection using the AT!SCACT=1,1 command, but if say the antenna is not attached, this command will fail. Does software need to poll the state of the network connectivity and issue the AT!SCACT=1,1 command when network connectivity is good?

Seems there is not an AT command to do auto-connect. However there is a QMI API can set auto-connect: SetAutoconnect() if you use Sierra Wireless Linux SDK. It can be queried with GetAutoconnect().

If you use AT commands, you can poll the registration state, or you can enable the indication using AT+CREG=2, AT+CEREG=2. only make data session when the module is registered and PS attached.

My suggestion is always check registration state before make data connection:

  1. Enable REGistration indication;
  2. Check REG state;
  3. Make connect/disconnect decision based on current registration state