I had not informed the boss that I was joining this chat, and he being super busy, dropped by asking my help to debug a bug. The bug is kind-of priority, which I was going to debug after the chat, but with him being available, I could not let that opportunity pass.
I'll be scueduling December's chat two hours earlier, so that more folks will be able to join us. I'll have a blog post announcing times and topics, tomorrow, I hope
of course, the watchdog itself could also fail, either in a way that leaves the system unprotected or in a way that shuts the system down when there was no other problem
I think it is a combination of improved process technology, ESD protections at input pins, and the elimination of external data paths. that solved that problem. Still get it in high radiation environments (it's called a single event upset or SEU) but not in commercial applications
in the early days of MCUs a glitch could cause the processor to misread data and thus branch to a non-existant instruction, causing program counter runaway. The watchdog reset the system if that occurred.
I think the key word is coordination. what this suggests to me is that the watchdog alerted the system when the transfer had not occurred in time. It might then be used to force the MCU to increase the priority of the processing, or prevent the FPGA from updating the memory.
if the system is made to do crucial job yes , but generally no , if you have an error I think it is better to restart it , what is your opinion about it ?
Thsi is a copy/past from BB's post which I am trying to understand.
"A recent example was in a system with an MCU and an FPGA that shared control of an external buffer memory. The FPGA could load the memory with data and the MCU would process the data. It was important to insure that the memory was loaded and processed within a specific interval. The external watchdog simplified the coordination between the FPGA and the MCU."
I think it alerts his system when a data transfer has not occurred on time. His post mentions it helping coordinate things. So, I guess it is there to prevent overwriting of data before it has been read. Just a guess tho.
again, depends on the watchdog. Some simply give you an externally-generated alert that something has gone wrong. Others do a system reset under the belief that a reboot will restore the system. Still others trigger a controlled system shutdown for safety.
In a robot, for example, I wouldn't want to just stop or reboot in the event of a watchdog timeout. I'd want to get everything back as close as possible to the same state as quickly as possible.
Since I don't use them, I really haven't studied their applications much. Do any state variables get saved or is it generally just a reset (or shut down as you mentione earlier)?
depends on the watchdog, duane. The ones I used were oneshots, which couldn't be changed. Internal and some external watchdogs are counters, so they could be.
DB, there could be something the sftwre developer did not think about, hence for a remote system, watchdog timer could help escape from an unknown condition.
perhaps, but I don't think that's quite it either. You can get stuck in a forever loop if a communications link fails, for instance, unless you have a timeout loop counter in there.
Our chat goes live in half an hour. I hope to be here. We have gale wind warnings and my area is populated with 50' trees and overhead phone and power wires. I may get cut off.
I find that an external watchdog can have some advantages in systems where you may have multiple controllers operating. A recent example was in a system with an MCU and an FPGA that shared control of an external buffer memory. The FPGA could load the memory with data and the MCU would process the data. It was important to insure that the memory was loaded and processed within a specific interval. The external watchdog simplified the coordination between the FPGA and the MCU.
Anyone else have examples using a watchdog with multiple processors? Do you ahve a trick for using an internal watchdog effectively?
The watchdog timer is a time-honored mechanism for ensuring that an MCU-based design does not lock up as the result of a software glitch. But is a watchdog more problem than solution? Should it be internal or external to the MCU? How do you prevent it from falsely triggering or, perhaps worse, not triggering when it should? Come talk about your ideas and experiences with watchdogs.
To save this item to your list of favorite Microcontroller Central content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.