2402059_en-US

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2402059_en-US

2402059_en-US

S32K3 FS26 new WDG period not work

Hello,

On my board, after power‑on reset, I configure the FS26 watchdog period to INFINITE during initialization. Then I exit DEBUG mode and enter NORMAL mode (the value read from SBC_FS26_FS_STATES_ADDR is 0xB).

After that, I change the watchdog period to 64 ms (as shown in the screenshot), perform one watchdog refresh (feed), and the return value indicates success. WD_RFR_CNT increases by 1, and reading SBC_FS26_FS_WDW_DURATION_ADDR gives 0xB0CD, confirming that the period has been successfully updated to 64 ms.

However, if I stop feeding the watchdog after this point, no error or reset occurs.

In contrast, if I configure the watchdog period to 64 ms during initialization , then after exiting DEBUG mode, not feeding the watchdog does cause a reset as expected.

Why does the watchdog not take effect when the period is changed from INFINITE to 64 ms in NORMAL mode, even though the register write and the refresh both succeed?

Jason22_0-1785918605528.png

S32K344 RTD7.0.0

FS26 6.0.0

S32DS3.6.4

EB30.0

BR,

Jason

Re: S32K3 FS26 new WDG period not workHello,
Oh! I forgot to switch accounts when replying – Jason07 is my another account.
BR,
Jason
Re: S32K3 FS26 new WDG period not work

Hello,

Thank you very much for your reply.

The reason I set the watchdog period to INFINITE during initialization is that, according to the driver code, certain operations are only performed when the period is INFINITE – for example, closing INIT_FS during the execution of the Sbc_fs26_InitDevice() function, and calling Sbc_fs26_WdRefresh inside Sbc_fs26_ClearFaultErrorCounter to clear the fault error counter.

Jason07_1-1785986004068.png

Jason07_2-1785986074130.png

If I set the period to a finite value,  Sbc_fs26_WaitFailsafeRelease return E_NOT_OK inside Sbc_fs26_FsxbRelease, and the FS26 stays in the FS_STATES_FS0B_ASSERT state, unable to transition to FS_STATES_NORMAL_FS.

Jason07_0-1785985959468.png

BR,

Jason


Re: S32K3 FS26 new WDG period not work

Hello,

The watchdog does not become active because it was disabled when INIT_FS was closed.

Configuring WDW_PERIOD[3:0] = 0000 selects the Infinite Open Window. According to the FS26 watchdog specification, the watchdog window can be disabled only during the initialization phase, and the disabling becomes effective when the initialization phase is closed. A watchdog disabled in this way cannot subsequently be enabled in NORMAL mode by writing a finite value to FS_WDW_DURATION.

The successful register readback confirms that the new WDW_PERIOD field was written, and the incremented WD_RFR_CNT confirms that the refresh was accepted. These observations do not indicate that watchdog timeout monitoring was re-enabled.

Runtime period changes are supported when the watchdog was enabled with a finite period during initialization. Therefore, configure a finite watchdog period during INIT_FS, for example the maximum finite period of 1024 ms if a long initialization interval is required. After entering NORMAL mode, the period can be changed to 64 ms. The new finite period becomes effective after the next watchdog refresh.

This behavior also explains why the reset occurs when 64 ms is configured during initialization: in that case, the watchdog is enabled when INIT_FS closes.

petervlna_0-1785930476258.png

From safety perspective, infinite state is reached by watchdog disable, as the compare is in HW and flag will always rise on match.

Best regards,

Peter

Re: S32K3 FS26 new WDG period not work

Hello,

Based on the observed behavior, the FS26 watchdog monitoring does not appear to start after changing WDW_PERIOD from Infinite Open Window to 64 ms in NORMAL_FS.

The register write is successful, as confirmed by the readback value (0xB0CD), and watchdog refresh commands continue to be accepted, as indicated by WD_RFR_CNT incrementing. However, the absence of any watchdog timeout reaction after refreshes are stopped indicates that watchdog supervision itself is not active.


When the watchdog period is configured as Infinite Open Window, Sbc_fs26_NormalFSSequence() closes INIT_FS by issuing an immediate watchdog refresh. Likewise, Sbc_fs26_ClearFaultErrorCounter() clears the fault error counter using consecutive watchdog refreshes because there is no watchdog window timing restriction in Infinite mode.

When a finite watchdog period is configured, the driver follows a different path. Watchdog refreshes must be synchronized with the valid watchdog window, and the driver uses the watchdog timing mechanism (pfWdgNotification, timer synchronization, and Sbc_fs26_TimeWaitClearFault()) instead of issuing consecutive immediate refreshes.

petervlna_0-1786002507583.png


Tags (1)
No ratings
Version history
Last update:
Friday
Updated by: