javos65 / WDTZero

Allows to use the WatchDog functionality for Arduino Zero, MKRZero and MKR1000 only
15 stars 12 forks source link

UART received data corrupts when WDT enabled #4

Open jpmeijers opened 4 years ago

jpmeijers commented 4 years ago

When I'm using the WDT and I do a long serial transaction (to a GSM modem), the received data seems to corrupt. When the WDT is disabled the UART comms are ok. This might be a side effect of a different issue, but maybe someone has an idea where I can look.

One suspicion I have is that the WDT EWI ISR interferes with the SERCOM ISR. Maybe the WDT ISR priority is too high?

I'm using the WDT with MyWatchDoggy.setup(WDT_SOFTCYCLE4M);

javos65 commented 3 years ago

you are using the soft WDT function, so every time-slot the EW(early warning) IRQ is issued to update the soft counter. I could imagine this takes some processor time, and you loose some date . You could give it a try with the one of the HARD functions, ie WDT_HARDCYCLE16S , then there is no EW irq. unfortunatly HW watchdog can not be longer than 16s...