Hi,
I’m seeing very unusual behavior with the hardware TRNG on a Teensy 4.1 and I’m trying to determine whether this is a silicon issue, a marginal analog condition, or something configuration-related.
Summary of the issue:
If I heat the MCU (for example using warm air), once the internal temperature reaches approximately 36°C or higher (measured with TEMPMON), TRNG immediately starts working and ENT_VAL begins to assert normally.
Below ~36°C:
This strongly suggests temperature-dependent analog behavior inside the TRNG (ring oscillators / noise source), possibly a marginal noise amplitude at lower temperatures causing the internal continuous test not to pass.
Questions:
Any insight would be greatly appreciated.
I’m seeing very unusual behavior with the hardware TRNG on a Teensy 4.1 and I’m trying to determine whether this is a silicon issue, a marginal analog condition, or something configuration-related.
Summary of the issue:
- Two Teensy 4.1 boards
- Same firmware
- Same CPU frequency
- Same environment (no external hardware connected)
- Same silicon revision (SRC_SBMR2 = 0x27 → Rev A)
- TRNG works immediately at room temperature (~22–25°C)
- MCTL reads ~0x00002602 at startup
- ENT_VAL appears normally
- At room temperature, TRNG does not generate entropy
- MCTL at boot: 0x00000202
- After setting TSTART: 0x00003302
- ENT_VAL never sets
- ERR and FCT_FAIL remain 0
- Clock gating (CCM_CCGR6) is enabled
If I heat the MCU (for example using warm air), once the internal temperature reaches approximately 36°C or higher (measured with TEMPMON), TRNG immediately starts working and ENT_VAL begins to assert normally.
Below ~36°C:
- No entropy
- No error flags
- Digital control bits behave correctly
- TSTART sets
- But ENT_VAL never appears
- ENT_VAL appears
- TRNG behaves normally
This strongly suggests temperature-dependent analog behavior inside the TRNG (ring oscillators / noise source), possibly a marginal noise amplitude at lower temperatures causing the internal continuous test not to pass.
Questions:
- Has anyone seen temperature-dependent TRNG startup behavior on RT1062?
- Is there any known errata related to TRNG and temperature?
- Are there any documented configuration steps beyond SWR + TSTART required to fully reinitialize TRNG after reset?
- Could this be related to marginal silicon variation within spec?
Any insight would be greatly appreciated.