Timer Watchdog
The Watchdog Timer sample demonstrates how to configure a PMIC TIMER peripheral in the Watchdog Timer mode with the use of npmx drivers.
Requirements
The sample supports the following development kits:
Hardware platforms |
PCA |
Board name |
Build target |
---|---|---|---|
PCA10095 |
|
||
PCA10056 |
|
The sample also requires an nPM1300 EK.
Overview
This sample uses the Timer driver to do the following:
Enter and configure the TIMER peripheral in the Timer Watchdog mode.
Register a handler to be called when the WATCHDOG event occurs.
Kick the watchdog in a loop until any keyboard button is pressed.
The TIMER peripheral is configured to generate a watchdog warning interrupt ~500 ms after any keyboard button is pressed.
Wiring
Connect the TWI interface between the chosen DK and the nPM1300 EK as in the following table:
nPM1300 EK pins
nRF5340 DK pins
nRF52840 DK pins
GPIO0
P1.10
P1.10
GPIO1
P1.11
P1.11
SDA
P1.02
P0.26
SCL
P1.03
P0.27
VOUT2 & GND
External supply (P21)
External supply (P21)
Make the following connections on the chosen DK:
Set the SW9 nRF power source switch to VDD.
Set the SW10 VEXT → nRF switch to ON.
Make the following connections on the nPM1300 EK:
On the P18 pin header, connect VOUT2 and VDDIO pins with a jumper.
On the P17 pin header, connect all LEDs with jumpers.
On the P13 pin header, connect VSET1 and GND pins with a jumper.
On the P14 pin header, connect VSET2 and RSET2 pins with a jumper.
Connect a USB power supply to the J3 connector.
Configuration
Check and configure the following sample-specific Kconfig options to specify which testcase you want to run:
- CONFIG_TESTCASE_WATCHDOG_MODE_WARNING
This sample configuration enables the warning mode for the watchdog. An interrupt is signaled on the GPIO0 pin. 16 ms after signaling, the GPIO1 pin is set to 0.0 V.
- CONFIG_TESTCASE_WATCHDOG_MODE_RESET
This sample configuration enables the reset mode for the watchdog. An interrupt is signaled on the GPIO0 pin. The GPIO1 pin is set to 0.0 V immediately, and the PMIC is restarted.
Building and running
This sample can be found under samples/watchdog
in the npmx-zephyr repository folder structure.
To build the sample with zephyr, follow the steps listed on the Building an Application page in Zephyr documentation.
Testing
After programming the sample to your development kit, complete the following steps to test it:
Connect the kit to the computer using a USB cable. The kit is assigned a COM port (Windows) or ttyACM device (Linux), which is visible in the Device Manager.
Connect to the kit with a terminal emulator (for example, PuTTY). See How to connect with PuTTY for the required settings.
Connect a logic analyzer first to the GPIO0 pin and then to the GPIO1 one, and observe the lines state.
Press any keyboard button to stop kicking the watchdog.
The watchdog callback should be generated after ~500 ms. For CONFIG_TESTCASE_WATCHDOG_MODE_WARNING, the GPIO1 pin should be set to 0.0 V within 16 ms after signaling the interrupt on the GPIO0 pin. For CONFIG_TESTCASE_WATCHDOG_MODE_RESET, the GPIO1 pin should be set to 0.0 V immediately after signaling the interrupt on the GPIO0 pin.
Dependencies
This sample uses drivers from npmx.