LATCH Register does not correctly indicate GPIO after wakeup from SYSTEM OFF

Hello Nordic-Team,

 I am using the SENSING mechanism on GPIOs to wake up a firmware from SYSTEM OFF. Two GPIOs are used for this and it is crucial for the firmware to detect which GPIO caused the wakeup.

On a nRF54L05 (nRF54L15 used as nRF54L05) I am able to readout the GPIO that caused the wakeup, on a nRF54LS05B the corresponding bits for both GPIOs are set even if only one button was pressed, so that I cannot detect the wakeup reason.

Please find attached a test firmware which I used with nRF Connect SDK v3.3.0 on a nRF54L15-DK and a nRF54LS05-DK.

Button0 and Button1 are used to wakeup the firmware.

Best regards

sensing_test_app.zip

Parents
  • Hi,

     

    As we discussed in the meeting, I have recreated this issue locally, and it looks to be occurring on GPIOs configured with SENSE_LOW (ie. active low pins), where the NRF_Px->LATCH register then is not reflecting the wakeup source.

    This seems to work as intended if GPIO is configured as _SENSE_HIGH.

     

    I have reported the behaviour internally, and will update you.

     

    Kind regards,

    Håkon

  • Hi Håkon,

     thank you for your fast response. I have added a function with SYS_INIT to read the IN register of P1 at a very early stage. I see the same pattern there, so the input port actually seems to register a wrong input level on the GPIO pins.

    Regards

    Stefan

    SYS_INIT(sample_gpio, EARLY, 0);
  • [00:00:00.006,928] <inf>: check_reset_reason: reason = 0x00000100 OFF
    [00:00:00.006,932] <inf>: Wakeup from SYSTEM OFF detected
    [00:00:00.006,936] <err>: latch:        0x00002200      < P1_LATCH later read (I tried to clear the LATCH early, but as the bits in  P1_IN are still assigned it does not clear the LATCH)
    [00:00:00.006,939] <err>: gpio_in:      0x00002200    < P1_IN early read
    [00:00:00.006,942] <err>: gpio_latch:   0x00002200  < P1_LATCH early read 

Reply
  • [00:00:00.006,928] <inf>: check_reset_reason: reason = 0x00000100 OFF
    [00:00:00.006,932] <inf>: Wakeup from SYSTEM OFF detected
    [00:00:00.006,936] <err>: latch:        0x00002200      < P1_LATCH later read (I tried to clear the LATCH early, but as the bits in  P1_IN are still assigned it does not clear the LATCH)
    [00:00:00.006,939] <err>: gpio_in:      0x00002200    < P1_IN early read
    [00:00:00.006,942] <err>: gpio_latch:   0x00002200  < P1_LATCH early read 

Children
Related