High temperature shutdown T4.1

sicco

Well-known member
I'm exploring highest ambient temperature for a T4.1 system. With LEDs on the 5V and 3.3V rails, I can see that above ~75 deg C the 3.3V rail shuts down, while 5V rail stays on. Question: is that because the LDO itself goes into thermal shutdown, or is there code in the background that senses the CPU chip temperature and then sets the LDO EN pin low as a precaution when the CPU gets too hot?

I've lowered CPU speed from 600 down to 150 MHz, that gave an extra 5 deg headroom before thermal shutdown.
The application does draw some extra current from the 3.3V LDO, maybe 100 mA max. And there's a uSD card fitted in the Teensy that is actively being written to.
Should I maybe go for another external (switching) LDO?
I was aiming for a max T_ambient up to 90 deg ish.
PS the LDO on the T4.1 is the 8 pins NCV8186A. Would the TLV75733 boards be any better?
 
The LEDs have 1k series R.

I'm still not clear if the Teensy CPU, when it sees it's temperature is getting too high, does or does not disable the LDO (and then continues in some deep sleep mode when is has Vbat). Does it? And if it does, is that behavior enabled at startup by default, or only when enabled?
So my same question again: when I see that 3V3 disappears, is it for sure the LDO that decides to power off because its silicon gets hotter than 160 deg C, or is it the CPU?
 
when I see that 3V3 disappears, is it for sure the LDO that decides to power off because its silicon gets hotter than 160 deg C, or is it the CPU?

You could get a clearer picture by watching the PMIC_ON_REQ test point while it happens.

1710862209489.png


1 volt or higher means the CPU is asking the 3.3V regulator to be on. If the 3.3V power shuts off while PMIC_ON_REQ is 1V or higher, you can pretty well conclude that's the regulator shutting itself off.

But if PMIC_ON_REQ goes low, you can conclude the CPU told it to turn off. (or the RT1062 chip has no power at all)

You might also watch VDD_SNVS_CAP. That's the power management power supply. It should normally be 1.1V. If PMIC_ON_REQ goes low, seeing 1.1V at VDD_SNVS_CAP can confirm the RT1062 does have power needed to drive PMIC_ON_REQ to at least 1.0V.


Might also be worth mentioning Teensy 4.1 is built with the commercial temperature range RT1062 chip....
 
Last edited:
I did as suggested. But the picture is not getting clear to me yet...

I have a system in a test oven that ramps up from room temperature to 85 deg C. I display the result of
tempmonGetTemp(), so what the CPU believes the RT1062 chip temperature is. When that approaches 90 deg C, I see the LDO EN pin dropping from 3.3 to almost zero. But I still do not know if that is because of:
a) code in the T4.1 that says it is getting too hot so let's panic and shut down, or,
b) the LDO deciding it is getting too hot, so shut down the 3.3V rail - which then also leaves the RT1062 without juice to maintain 3.3V on the LDO EN pin.

As it's happening close to 90 deg C, I'm leaning towards believing this is a consciously controlled Teensy code act. Is it? And if so, where can I find documentation on how and when this is set? I looked at tempmon.c in \AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4 but that suggests all possible action is commented out??:

Code:
void Panic_Temp_isr(void) {
  unused_interrupt_vector();
  //IOMUXC_GPR_GPR16 = 0x00000007;
  //SNVS_LPCR |= SNVS_LPCR_TOP; //Switch off now
  //asm volatile ("dsb":::"memory");
  //while (1) asm ("wfi");
}
Any hints?
 
But I still do not know if that is because of:
a) code in the T4.1 that says it is getting too hot so let's panic and shut down, or,
b) the LDO deciding it is getting too hot, so shut down the 3.3V rail - which then also leaves the RT1062 without juice to maintain 3.3V on the LDO EN pin.

It's safe to assume case A.

Case B isn't how the hardware works.

As I tried to explain in msg #4, the RT1062 will use power from VDD_SNVS_CAP (which should be 1.1V) to drive PMIC_ON_REQ (a.k.a. the LDO EN pin) in the absence of 3.3V power. If you are still suspicious or unclear about what's happening, I would again suggest also monitoring VDD_SNVS_CAP so you can confirm whether the RT1062 has power available to actually drive VDD_SNVS_CAP to at least 1.0V.
 
Thanks for this.
So when it is case a), then where can I find and maybe tweak the code / parameters that make it do what it does now?
Was I looking in the wrong place with that commented-out-code that I quoted?
 
You can alter the alert/panic temps in the core files:

Change this at your own risk.
I have set my panic to over 100c for a product that sits in direct sunlight (and is the only reason it gets so hot, rarely) and it's survived thus far.
 
As it's happening close to 90 deg C, I'm leaning towards believing this is a consciously controlled Teensy code act. Is it? And if so, where can I find documentation on how and when this is set? I looked at tempmon.c in \AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4 but that suggests all possible action is commented out??:

Code:
void Panic_Temp_isr(void) {
  unused_interrupt_vector();
  //IOMUXC_GPR_GPR16 = 0x00000007;
  //SNVS_LPCR |= SNVS_LPCR_TOP; //Switch off now
  //asm volatile ("dsb":::"memory");
  //while (1) asm ("wfi");
}
Any hints?
It's not all commented out - it calls unused_interrupt_vector() which (ultimately) restarts the Teensy.
 
Back
Top