Hi All
We are doing some reliability testing and have identified a potential issue when testing on the MIMXRT1020EVK with regard to the DCDC converter.
The test consists of starting code that configures the DCDC to allow operation at 500MHz (setting 1.25V), running further code testing USB device operation and commanding a SW core reset so that the test repeats every (approx) 2s.
Typically after a few hundred such cycles the DCDC converter stabilising check spins for a long time, causing WDOG3 (used to monitor such issues) to fire and a further reset to be executed, after which it continues again normally. When the test is run for 2500 cycles the issue is seen maybe 10..15 times (to give an idea of its frequency).
The code is
DCDC_REG3 = ((DCDC_REG3 & ~DCDC_REG3_TRG_MASK) | DCDC_REG3_TRG_1_250V); // increase the DCDC voltage from default 1.15V to 1.25V
while ((DCDC_REG0 & DCDC_REG0_STS_DC_OK) == 0) { } // wait until the DCDC output stabilises
If WDOG3 timeout is set to a high value (like 30s) the hang is noticed and the attached debugger can be paused (it is in the while loop). The core registers show that the DCDC_REG0_STS_DC_OK was '0' when it was last checked but when the DCDC_REG0 register is viewed it is displayed as set.

Although the debugger can read registers, single stepping no longer works so it may be that the issue also has an effect on some other operation so it can't be known for sure that the DCDC stabilised and the code could continue or not.
The definition of the flag shows that the stabilisation is HW dependent:

but there is no further information about what is expected.
Since this happens on the MIMXRT1020EVK it may also be circuit design dependent and not happen on all HW.
Comments are welcome since this is very reproducible and somewhat worrying (although the WDOG3 does seem to always allow recovery after a delay).
Regards
Mark
For i.MX and Kinetis stock availability see https://www.utasker.com/Shop/semi.html