Designing a smart watchdog solution
The ultimate watchdog for an IoT device is a smart watchdog. A smart watchdog is a supervisory microcontroller that, in addition to performing basic heartbeat monitoring, can also monitor system communications (Figure 4). There can be instances where the microcontroller stops responding to the Internet, but is still successfully clearing the external watchdog. When this happens, a command could be sent over the Internet to reset the microcontroller. The smart watchdog can monitor the communication lines, such as UART transmit and receive lines, for a special command that tells it to restart the system.
In the example, a communication module is connected to both the microcontroller and the smart watchdog. Notice that the Smart Watchdog also has an external TPL5010. The reason is that the smart watchdog is a microcontroller that runs software, and in order to be robust, should have its own external watchdog.
When designing a smart watchdog, developers need to consider several important factors such as:
- Heartbeat characteristics
- Input/output availability
- Cost
- Available flash memory
- Energy consumption
- Failure modes
- Minimizing physical footprint
There are several microcontrollers available today that could serve as good smart watchdogs. First is the Texas Instruments MSP430G2xx with 2 kB of flash and 4 I/O lines. This microcontroller has just enough coding space and enough pins to develop a very simple smart watchdog implementation.
For applications that require communication monitoring, a few more I/O lines and additional memory can be quite useful. In such instances, the MSP430G2231IPW14R or the MSP430G2553IPW20R would make good candidates.