Reset over CTRL-AP

We're developing an application using the NRF54L15. SWD will be connected to an external device that can update the firmware on the MCU if there are any issues, but we don't have room to wire up nRESET.

Can you confirm that we can do a hard reset of the MCU using just the SWD lines if the nRESET line is tied high through a pull-up resistor?

We'd want the ability to do a hard reset and start the application running (same as asserting/releasing nRESET) as well as reprogramming the MCU in case of issues with the app itself.

Are there any other considerations, hardware or software, we should be aware of?

I saw in one answer a recommendation for 1MOhm pull-downs on the SWD lines, or is that for a different family?

Thanks,

Glenn

Parents
  • Hello Glenn,

    Yes, it’s possible to perform a “pinreset” via the CTRL-AP without physically asserting the pinreset input on the chip. Below are the commands I used when testing this here with J-Link Commander (JLinkExe/jlink.exe):

    /* Use SWD */
    SWDSelect
    /* Power on debug interface by setting CSYSPWRUPREQ bits */ 
    /* https://developer.arm.com/documentation/ihi0031/a/Debug-Port-Registers/Debug-Port--DP--register-descriptions/The-Control-Status-Register--CTRL-STAT */
    SWDWriteDP 1 0x50000000
    /* Select CTRL-AP (APSEL = 2) */
    /* https://developer.arm.com/documentation/ihi0031/a/Debug-Port-Registers/Debug-Port--DP--register-descriptions/The-AP-Select-Register--SELECT */
    /* https://docs.nordicsemi.com/bundle/nan_047/page/APP/nan_production_programming/nRF54L/nrf54l_select_access_port.html */
    SWDWriteDP 2 0x2000000 
    /* Pinreset */
    SWDWriteAP 0 0x4
    /* Release the RESET register value */ 
    SWDWriteAP 0 0x0

    (Ref. https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/chapters/power-and-clock/reset/doc/reset.html#ariaid-title11

    I saw in one answer a recommendation for 1MOhm pull-downs on the SWD lines, or is that for a different family?

    This is not needed or recommended on the nRF54L. The internal pull up is sufficient.

    Best regards,

    Vidar

Reply
  • Hello Glenn,

    Yes, it’s possible to perform a “pinreset” via the CTRL-AP without physically asserting the pinreset input on the chip. Below are the commands I used when testing this here with J-Link Commander (JLinkExe/jlink.exe):

    /* Use SWD */
    SWDSelect
    /* Power on debug interface by setting CSYSPWRUPREQ bits */ 
    /* https://developer.arm.com/documentation/ihi0031/a/Debug-Port-Registers/Debug-Port--DP--register-descriptions/The-Control-Status-Register--CTRL-STAT */
    SWDWriteDP 1 0x50000000
    /* Select CTRL-AP (APSEL = 2) */
    /* https://developer.arm.com/documentation/ihi0031/a/Debug-Port-Registers/Debug-Port--DP--register-descriptions/The-AP-Select-Register--SELECT */
    /* https://docs.nordicsemi.com/bundle/nan_047/page/APP/nan_production_programming/nRF54L/nrf54l_select_access_port.html */
    SWDWriteDP 2 0x2000000 
    /* Pinreset */
    SWDWriteAP 0 0x4
    /* Release the RESET register value */ 
    SWDWriteAP 0 0x0

    (Ref. https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/chapters/power-and-clock/reset/doc/reset.html#ariaid-title11

    I saw in one answer a recommendation for 1MOhm pull-downs on the SWD lines, or is that for a different family?

    This is not needed or recommended on the nRF54L. The internal pull up is sufficient.

    Best regards,

    Vidar

Children
Related