Power Mode with at+w32k and problems


#1

Hello all,
in my OpenAT application, I use ‘at+w32k=1’ command to force the Q2686 to go to low power. The low power works very well, but the big problem is that sometimes, out of control, the module resets! Reading the traces the cause is ‘watchdog reset, tsk:0’. Also, the same application without the low power function does not reset. I tried to find something about the watchdog in Q2686 in order to switch it off, but the information on the documentations is not enough.
Please, could someone help me ??
Tanks

Massy


#2

Hi Massy,

We are also facing the same issue. Do you have any solution for it ?..

-Senthil


#3

Hiya,

You cannot disable the watchdog on the Q2686 - it’s actually managed by the underlying firmware and I understand that it’s operation is important for the correct operation of the GSM firmware (amongst other aspects). Don’t forget that your OpenAT “application” is only a

However … you can change the timeout period for the watchdog, and force a ‘kick’ if you know that you are going into a long running operation. Have a look at the ALD Watchdog service documentation in the OpenAT ADL guide (section 3.35 in OS 6.37).

Still, if you have long running operations, you really should look at refactoring your code to use either a periodic timer or use the inbuilt event handlers.

ciao, Dave


#4

Hi Dave,

Thanks for your response.

Actually we don’t have any prooblem in watchdog handling. In order to reduce power consumption in Q2686 module we are using AT command “AT+W32K=1,0”, by executing this command we are able to observe the module entering to slow idle mode. Similarly by executing AT command “AT+W32K=0,0” we are able to observe the module switching back to wake-up state in our sample test code.

While using the same approach in our regular product code, we are getting module re-start sometimes after completion of data upload via GPRS. We have tried various timing combination for sleep and wake-up sequence but in all the combinations the module is getting re-start sometimes. The re-start behavior is random in nature and the max code execution without re-start has been observed is one hour. So I would like to know is there any sequence or any specific timing to be followed during the Sleep and Wake-up routine/sequence.

Is there any sample code or application notes is avilable to know the usage of low power consumption in Q2686.

Note: In AT command guide, it has been mentioned that when above said command (AT+ W32K = 1,0) is enabled the power down is active after 1 to 15 seconds.

Please let me know your feedback, if any

  • Senthil

#5

Hiya,

I would venture to disagree here. If you are getting resets from

then you are tripping the internal hardware watchdog.

I’ve had this occasionally when using both the GPRS and the A&D FLASH API - both at normal power speeds.

My suspicion is that there are some code areas in the OpenAT libraries that BLOCK for a response, rather than waiting for an event. This blocking occurs at random times and just occasionally it happens when the hardware watchdog is near the end of its internal timeout period. Thus when the OpenAT routine blocks stops the OS from patting the watchdog, and then the reset happens.

I suspect that you’re seeing this more often when in slow speed mode as everything is taking longer, so the probability of your routine accidentally blocking past the end of the watchdog period is higher - which is why you see this more often when in slow speed mode.

As I mentioned before, I have used the Watchdog API to manually reset the watchdog in areas where I have observed problems - when cleaning up A&D flash, and when doing continuous GPRS transfers. You can also use the Context API to put your task to sleep (i.e. yield) for a short period of time to give the OS a chance to pat the watchdog itself.

ciao, Dave


#6

Hi Dave,

Actually we found that OpenAT firmware is the cause for our problem. When we updated the firmware from R7.45 to R7.47.6 the issue has been resolved.

  • Senthil

#7

Hiya Senthil,

Good to hear that the issue has gone away with the later version of software - and thanks for letting me (and everyone else!) know :smiley:

I’ll have another look at my code now and see if I can simplify things now that this issue has been rectified.

ciao, Dave