EM7565 Power down (Full_Card_Power_Off#) usage

Hi ,

One of our products currently in production uses the EM7565 cellular module (USB 2.0). We have observed occasional firmware corruption in the module, which we believe occurs due to sudden power loss while USB communication is active. Our system provides a 250 ms hold-up time on the 3.3V power supply for the cellular module. Since the product is already in production, extending this hold-up time to 8 or 21 seconds to properly suspend USB communication is not feasible.

We understand that the USB interface remains active during both Normal and Low Power modes.

Query1: Are the USB 2.0 Power-On/Off timing parameters listed in Table 4-6 applicable only to Normal and Low Power modes?

Currently, we are testing a method to transition the module from USB active (Normal/Low Power mode) to USB deactivated (Sleep, Off, or Disconnected mode) within the 250 ms hold-up time, based on the module’s capabilities. Our plan is to deactivate the USB interface immediately upon activation of the hold-up circuit and then assert the Full_Card_Power_Off# signal.

Query 2: Would this approach be sufficient to prevent firmware corruption?

Query3 :Additionally, could you please advise how this USB deactivation can be implemented through a firmware change using the DPR pin?

Query 4 :Is DPR pin good enough to be used for controlling the different modes of Cellular module during power off ?

Appreciate your response on priority….

would it be possible to add back up battery?

It will be a major redesign. We need to have very big hold up capacitors , and there is no space on the boards for implementing this.

Firmware change is an option.

Or some minor modifications in our design , like within 250 ms , disable the USB communicationa nd then provide a Full_Card_Power_Off# command etc..

I am not sure if your method can help to prevent such problem when unexpected power cut as it is not completely following the power down sequence in specification.

BTW, will your host platform have enough space for storing the firmware?

If yes, I will suggest you also implement firmware redownload when seeing module stuck in download mode after unexpected power cut.

Lastly, have you used the latest firmware?

We are using this firmware . “SWI9X50C_01.08.04.00_GENERIC_002.012_004”

What is the functionality of DPR pin . Also what is that we can control using AT command?

Your firmware version is very old , please upgrade it and see if there is any improvement

Thanks for your suggestion.

Since the issue is in service unit, In order to upgrade the firmware, i would need some details on below.

  1. Is there any changes in the latest firmware with respect to power up /power down /versus modes of operation ?
  2. Is there any way of controlling the different modes of cellular from SW , which ensures to move it to sleep mode automatically as the power supply is becoming less than the threshold ?
  3. What will happen if Full_Card_Power_Off is asserted while the module is booting up ?

FYI : Here in lab we are trying to recreate the failure scenario , only by powering on and off continuously . And once in 400 times while doing this turn on & off , it enters in QDL mode.

  1. Is there a way to generate the log from the corrupted module , to analyze at which stage this firmware corruption happened ?

You still need to follow the power down sequence according to specification

To do analysis, you need to recover the module and type at!flog? To see if there is any clue

flog.txt (49.1 KB)

Hi ,

I have attached flog for the unit stuck in QDL mode.

Will you be able to help with the data to help us interpret something..

seems your log is corrupted …
But I can see “00035,1980/01/06 00:00:00.000,C1080400,BOOT_HOLD=6,SMART_RECOVERY=yes”

This line means there is smart error detection (mentioned in specification) triggered.
After that module should be in download mode.

The log says 79 c at the end , is it like cellular module was seeing 79 deg C when this happened?

Can you please explain , if the firmware is already existing in the module , what are the reasons for it to again go into BOOT ?

if it was the sudden power loss and not meeting the timing diagram , it would have happened every time. and this would have happened on every unit. We tried to recreate this but it doesn’t recreate everytime?If its a HW fault it would have happened every time , but it only occurs on few units that too occasionally on field.

Can you tell me what all scenarios can the unit be stuck in low power mode? And if it is so whether re- Firmware download is possible.

As said before, your log has some corruption, i don’t know what 79C means…

consecutive multiple times of abnormal reboot when there is corruption in bootloader will trigger smart error detection

AT!PCINFO? says the W_DISABLE pin is triggering the low power mode

Can being stuck in low power mode , cause firmware corruption or cause module to be stuck in QDL mode?

What all can cause the unit to not come out of low power mode?

Also , we saw these messages in our log .. What things are checked in the cellular modem PBit and what can cause the PBit failure??

XX0 XXPlatformOpcApp[2068]: Cellular modem PBit - FAILED

XX0 fwdwl-liteppc64: Request Reset

XX0 fwdwl-liteppc64: resend POWER RESET

XX0 kernel: usb 1-1: USB disconnect, device number 2

XX0 kernel: GobiSerial driver ttyUSB0: GobiSerial converter now disconnected from ttyUSB0

XX0 kernel: GobiSerial 1-1:1.0: device disconnected

you can first fix the W_DISABLE pin and retest to see if module is still stuck in QDL mode

We are also using this in one of our product.

Cellular MPN# EM9291_1105097

Firmware: SWIX65C_02.17.08.00 944ad5 jenkins 2024/08/01 20:22:05

Can you please confirm if the latest firmware has the newest SDK and this cellular firmware release adds the capability to get it “unstuck” ?

The power down sequence is the specified in product technical specification

Have you fixed the w_disable pin problem?

i didnt really understand what needs to be fixed on W_DISABLE? Can you please explain a bit in detail?

W_DISABLE needs to be disabled when it is low power mode right? but if w_disable is active , will it still go in low power mode?

Please see the detail of w_disable pin in specification