Watchdog met 555


idee: Wolfgang Borst (Duitsontrollers dieland)

Bijna elke microcontroller beschikt over een ingebouwde watchdog. Deze voorkomt dat de controller zichzelf kan ‘ophangen’ wanneer die door een programmeerfout of onvoorziene bedrijfsomstandigheden in bijvoorbeeld een eindeloze lus terecht is gekomen en nergens meer op reageert. In principe gaat het bij zo’n ‘waakhond’ om een timer die regelmatig met bepaalde tussenpozen  met behulp van een software-instructuie wordt gereset. Wanneer dat niet gebeurt, wordt na afloop van het watchdog-interval een reset gegenereerd; de controller start opnieuw op en alles is weer in orde.

Werkelijk alles?

Nou nee, want heel af en toe kan bij CMOS-schakelingen – en dat is precies wat een microcontroller is – een zogenaamde latch-up optreden. Dan functioneert er werkelijk niets meer en zelfs met een reset is de microcontroller niet meer op andere gedachten te brengen. Wanneer ook zo’n uitzonderingstoestand gereageerd moet kunnen worden, dan moet een externe watchdog worden gebruikt. Die extra moeite is zeker gerechtvaardigd, want volgend de eerste wet van Murphy gaat immers alles mis wat mis kan gaan.

Het schema

 
Watchdog-schakeling met NE555 en een paar MOSFET’s.
De hier gepresenteerde watchdog is gebaseerd op de bekende 555-timer en is bijzonder waakzaam: wanneer de resetpulsen van de microcontroller uitblijvan, wordt diens voedingsspanning gedurende ongeveer 5 seconden compleet uitgeeschakeld. Aansluitend start de microcontroller opnieuw op. Dat is nagenoeg altijd afdoende, tenzij de microcontroller werkelijk defect is. Met de in het schema genoemde waarden voor R2, R3 en C4 bedraagt het interval voor de resetpulsen ongeveer 10 s. de duty-cycle van de resetpuls dient minder dan 50% te bedragen. Een (positieve) puls van een paar µs op de trigger-ingang is voldoende om condensator C4 vis T2 te ontladen.

Het hart van de schakeling is de goede oude 555, hier als astabiele multivibrator geschakeld. De trigger-pulsen moeten C4 ontladen voordat de spanning op pen 6 de drempelwaarde (2/3 V+) bereikt. Anders wordt de uitgang pen 3 laag zodat T1 de voedingsspanning van de microcontroller afschakelt (of de voedingsspanning van de complete elektronica daaromheen, want zonder koeling verdraagt T1 op zijn sloffen 1 A)..
 
Omdat de NE555 zelf minstens 5 V nodig heeft, is voor de rechtstreekse voeding van 3,3V-microcontrollers de CMOS-variant van de 555 beter geschikt. Die trekt bovendien minder stroom en kan met hoogohmiger weerstanden uit de voeten. In dat geval moet echter voor T1 een power-MOSFET met een lagere minimale stuurspanning worden gebruikt. En wanneer u het ‘geïntegreerder’ wilt hebben (lees: met minder onderdelen) kunt u proberen het geheel met een 556 (dubbele 555) te realiseren.