Does anybody has a test code for such watchdog ic? I am trying it with Arduino but it seems it’s not working well…
Any suggestion or link is appreciated
Does anybody has a test code for such watchdog ic? I am trying it with Arduino but it seems it’s not working well…
Any suggestion or link is appreciated
There really isn’t so much code. I use the TPL5000, but it’s similar. Connect a GPIO pin to the DONE line. Use pinMode(pin, OUTPUT) in setup. In loop, I usually just flip it to the opposite state each time through using digitalWrite(pin, value).
I agree with @rickkas7 in that the code can be mammal but I have taught mine a few tricks.
I use a TPL5010 in my outdoor projects. I have uploaded the project details and code here:
Electron for Outdoor Applications
Photon - Smart and Safe Outdoor Watering System - New for 2018
The long and short of it is this:
Hope this helps,
Chip
Basically my code take a measurement every 10 minutes at 0-10-20-30-40-50 during day and every hour during night.
I would like to set the watchdog at 1-1.5 hours and to keep all minimal I like also the idea to simply change the state of the done pin at every loop, Ignoring the wake pin.
The purpose is to reset the board if for some reason (it happens) the Electron stop works.
Does it make sense?
Sure, if you are OK with the possibility of a 1-1.5 hour lockup, this is the simplest method. In fact, you might simply look at the Application Watchdog which is part of the ARM processor as adding a separate timer may be overkill for you.
Chip
It seems for some reason the application watchdog is not enough, it can handle most of connection problems but there is something wrong that put the device in sleep forever… (or it seems it’s in such state).
I’ve found a strange coincidence of this problem and thunderstorm.
Only a manual reset or cold start resolve this state, for this reason I would try the external watchdog.
Another question, what would be the best way to power the TPL5010?
assuming I’m using SLEEP_MODE_DEEP
3V3 is fine. It’s powered all the time. 3V3 powered by VIN, USB, or battery. It’s usually the best choice.
Direct from battery (Li+) won’t work if not powered by battery. Also, it will drain the battery when charging from USB or VIN, which is different than 3V3 which bypass the battery when external power is used.
VIN is not great, as it is only powered when you’re powered by USB, not battery, unless you are powering by VIN from an external source.
VBAT is connected to 3V3 with a zero ohm resistor, but you should just use 3V3 instead.
Clear, thanks.
This is my test scheme, is it correct? Because it seems it’s not working.
It run well, publish and after it goes sleep till next hour, with the 22Kohm resistor it should wake it after 1 minute but nothing.
What’s wrong?
You don’t have to put a pull-up on RST, there’s an internal one (but won’t hurt to add both).
However, you should put an external pull down on DONE. If you let it float, I’ve found that the random floating can prevent the watchdog from triggering.
Ok, I was suspecting the resistor on DONE what value? 10Kohm?
10K is what I use.
Do you find that the TPL5000/10 always trigger the watchdog reset on the first tick of the timer?
With mine it always triggers the reset after 64seconds (my time interval), the first time, despite me putting DONE high, after that it performs as expected???
No, I haven’t had any trouble with the TPL5000. I have the DONE pin connected to GPIO D6. There is an external pull-down resistor, 10K.
If I don’t do anything, the TPL5000 resets the Photon after about a minute.
Normally, my firmware pets the watchdog with code like this at the bottom of loop:
watchdogState = !watchdogState;
digitalWrite(watchdogPin, watchdogState);
ok thanks. Weird. Oh well it doesn’t matter too much, i just get a reboot first off ,but then all fine.