This topic has previously been discussed here:
https://community.nxp.com/t5/Kinetis-Microcontrollers/MKV4x-Watchdog-refresh-problem/m-p/776179
For those interested though, I have performed additional testing and would like to share results and welcome feedback for what I may be doing incorrectly.
MCU MK22FN512VLL12
MCU Clock 120MHz
WDOG Source 1KHz LPO
WDOG Windowed mode disabled, using the default settings from SDK 24.12.00 with timeout set to 30 seconds.
My application is super loop based with a typical loop time of 41us.
When WDOG_Refresh is called within the super loop, the timer is never being reset. I can watch WDOG_TMROUTL count up to 30000 and the watchdog triggers the reset. So, I began adding delays to the loop.
Adding 800us: The wdog timer is never reset when WDOG_Refresh is called.
Adding 900us: The wdog timer is reset sometimes. If I log the point of reset, I see WDOG_TMROUTL values between 1ms and 15000ms or so.
Adding 1100us, When I log the point of reset, I see WDOG_TMROUTL values between 1 and 5 or so.
It seems that even 50,000 bus cycles is not sufficient to guarantee the watchdog refresh is successful.
My application is a touchscreen based commercial oven. It's not going to overheat if the control gets lost for a few minutes and I've not witnessed any lock-ups of the control, so my WDOG refresh period can be relatively long without concern. This does however seem as though it would be a big problem for other applications. Therefore, I have to believe this is somehow user error.
By the way, for the past decade or so, minus 2020 through 2022, I've really liked these mcus.