nRF9160 cellular modem connection issue fixed by power cycle, but not a reset.

I have a custom nRF9160 design with Zephyr based firmware having sporadic modem connection issues (ie. waiting to connect forever). When the modem hasn't connected for a while I have a watchdog reset to reset the entire platform. This fixes it most of the time but every once in a while the modem will still not connect after multiple WDT resets.  If I physically remove power and re-apply power it comes up and works normally.

There is some failure mechanism that a WTD reset won't fix but a power cycle does.  Has anyone else seen this or have any ideas what it is?

Is there some additional\deeper reset that can be done on the modem hardware?

Are there any registers I could try to set\clear after a WDT reset?  (Zephyr library calls appreciated)  

It' rare so it's hard to isolate but I have seen it several times in the lab and it's been seen in the field.

Parents Reply
  • I think it's the application core. I'm setting up a 2 minute WDT using Zepher commands:

    wdt_config.flags = WDT_FLAG_RESET_SOC

    wdt_config.window.max = 120000u

    wdt_install_timeout(wdt_dev, &wdt_config);

    wdt_setup(wdt_dev, WDT_OPT_PAUSE_HALTED_BY_DBG);

    I'm calling lte_lc_power_off() from deps/nrf/lib/lte_link_control/lte_lc.c which calls:

    lte_lc_func_mode_set(LTE_LC_FUNC_MODE_POWER_OFF) ? -EFAULT : 0;

    I went through my code and there were several places I re-booted without calling this. I added them this and will see if I can still re-produce the error.

    * Golioth SDK: 0.13.1
    * nRF Connect SDK: v2.5.2
    * Zephyr version: 3.5.1
    * Cellular Modem firmware version: mfw_nrf9160_1.3.6

Children
No Data
Related