Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 19 of 19

Thread: Teensy 4.1 - CPU Heat Limits

  1. #1
    Junior Member
    Join Date
    Jan 2021
    Location
    Washington State
    Posts
    1

    Teensy 4.1 - CPU Heat Limits

    Just started testing a 4.1. I've written a very simple program to monitor CPU temp. It reports temp once a sec and blinks the LED for ,5 sec. I've always used the guideline that CPU temp should be around 40C at idle and not to exceed 80C for any period of time. Using the 4.1 and my program I have to throttle the 4.1 down to 150mhz to maintain 41-42C, at the standard 600mhz it's running at 54-55C. Second over clock (816mhz, max without cooling) results in 69-70C. During these tests the Teensy was just hanging in free air on it's usb cable in a room at 72F, restricting air flow (upside down on table) pushed the temp passed 80C.

    With the test program I consider the Teensy to be all but idling but the temp has little or no room to support a task.

    So
    1. What is max temp for the 4.1?
    2. Has anyone looked at cooling, and what where the results?

    I'm going to put a heat sink on it tonight to see what happens.

  2. #2
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    13,724
    Moving air is better - but a tape on heat sink is good for a couple of degrees - and both in combo best. More pins and soldered/plugged to something adds more ways to take heat out like moving air does from the whole of the small PCB.

    There was some focus on this - but no set answer - on T_4.0 beta thread IIRC and other with FRDM board and feedback from that user - perhaps another thread.

    With higher overclocking ( cooling required ) - the heat spikes faster than can be seen with sudden lockups under 60 degrees as I recall. That was with a simple heat sink and no fan driven air here. I got a desk fan but didn't do any real testing after that other than confirming text line 1 above.

    Reading the NXP docs the 600 MHz is already outside ideal long life - the 528 MHz speed is the sweet long life spot they recommend for spec usage. Anything over that bumps voltages and adds heat a shortens life to some degree.

    If you want to build a table of data points - maybe run through it at 528 MHz and that should be a good baseline/limit. If added cooling stays in that range then perhaps that is closer to spec for reliable long life.

  3. #3
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany
    Posts
    8,220
    There is a document about this:
    https://www.nxp.com/docs/en/nxp/appl...es/AN12253.pdf
    I'm not sure if it need a registration @ nxp, but here's a diagram:
    Click image for larger version. 

Name:	2021-01-08 22_38_28-Start.png 
Views:	87 
Size:	103.7 KB 
ID:	23160

  4. #4
    Senior Member
    Join Date
    May 2015
    Location
    USA
    Posts
    845
    3 years life at 600 mhz - that could be a problem.

  5. #5
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    23,972
    Yes, indeed, the moral of this story is you need to do something (or simply avoid doing certain things) to keep the internal temperature below 95C if you want the chip to last more than 3 years.

  6. #6
    Wow, it looks that stepping down to 528 MHz would considerably increase the its lifespan. That joined to the lower power consumption makes me consider stepping down to 528 MHz. How remarkable would the performance reduction be? Are there any benchmarks comparing the performance at different clock speeds?

  7. #7
    Member KD0RC's Avatar
    Join Date
    May 2019
    Location
    Colorado, USA
    Posts
    79
    Very interesting discussion... I just moved my clock speed down to 528 MHz, and for my application (provides buttons and knobs for a Flex SDR radio), I see no difference in performance. Since my gizmo is not likely to be on more than a few hours a day, it should last for eons. I did not see anything in the referenced document about running at even lower speeds like 450 or 396 MHz. Any insight as to how much additional life expectancy could be expected at these or even lower clock speeds?

    Len

  8. #8
    Senior Member
    Join Date
    May 2015
    Location
    USA
    Posts
    845
    My guess is that at 450 mhz, it will last a very long time. And most applications won't notice the slower speed.

  9. #9
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    23,972
    Quote Originally Posted by KD0RC View Post
    Any insight as to how much additional life expectancy could be expected
    Yes. Use the InternalTemperature library to check the actual temperature inside the chip after your program has been running for quite some time. Do this measurement with your project as it will be installed, especially if you're putting it inside a sealed enclosure.

    Then look at the graph on msg #3. Find the temperature you measured on the X axis and look at where the curve intersects that X (temperature) position. If the temperature you measured is below the range of either of those curves, maybe imagine a linear extrapolation of them beyond the range the graph shows, or just know you're nowhere near the range of hot temperatures where lifespan is short.

  10. #10
    Senior Member
    Join Date
    May 2015
    Location
    USA
    Posts
    845
    In many cases, one could include this in their idle loop, which I understand reduces power/heat more than slowing down to 450 mhz.

    asm volatile("wfi");

  11. #11
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    13,724
    Quote Originally Posted by jonr View Post
    In many cases, one could include this in their idle loop, which I understand reduces power/heat more than slowing down to 450 mhz.

    asm volatile("wfi");
    Use "wfi" with testing care - unlike the T_3.x's - there are no regular waking interrupts - so it can sleep until one comes along. The normal systick interrupt doesn't trigger to WAKE like on the 3.x's

    Monitoring the temp is good - but that temp sensor not necessarily reading at the peak hotspot - so as noted above when overclocking - it can pass 50 degrees then lock up. Application to normal speeds using lower voltages would not be as likely to act in that unexpected manner, but just for ref.

    The lifetime wear is also related - like the speed - to the voltage needed to achieve that speed. The voltage selection used to support that speed.

    See :: uint32_t set_arm_clock(uint32_t frequency) in file (arduino)\hardware\teensy\avr\cores\teensy4\clocks peed.c

    It starts at 1.15 volts - bumps up to 1.25 over 528 MHz - and goes higher above that - and dips to 0.95 V under 240 MHz
    Code:
    ...
    	// compute required voltage
    	uint32_t voltage = 1150; // default = 1.15V
    	if (frequency > 528000000) {
    		voltage = 1250; // 1.25V
    #if defined(OVERCLOCK_STEPSIZE) && defined(OVERCLOCK_MAX_VOLT)
    		if (frequency > 600000000) {
    			voltage += ((frequency - 600000000) / OVERCLOCK_STEPSIZE) * 25;
    			if (voltage > OVERCLOCK_MAX_VOLT) voltage = OVERCLOCK_MAX_VOLT;
    		}
    #endif
    	} else if (frequency <= 24000000) {
    		voltage = 950; // 0.95
    	}
    ...

  12. #12
    Senior Member
    Join Date
    May 2015
    Location
    USA
    Posts
    845
    OK, I checked and some notes:

    T4 with a small heat sink attached
    It runs about 45C (far far different than the graph)
    Slowing from 600 to 528 is only a couple of degrees cooler
    wfi makes no difference

    Code:
    extern float tempmonGetTemp(void);
    Serial.print( tempmonGetTemp() );
    Serial.println("C");

  13. #13
    Member KD0RC's Avatar
    Join Date
    May 2019
    Location
    Colorado, USA
    Posts
    79
    Thanks for the information. My Teensy is indeed in its permanent location in an enclosure. I will add some code to look at temps over the course of a day. Even when in heavy use, the MCU is mostly just looking for button pushes, encoder updates and ethernet traffic. I doubt it is getting too hot, but it will be interesting to see what it does.

  14. #14
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    13,724
    Quote Originally Posted by JotaEfe13 View Post
    Wow, it looks that stepping down to 528 MHz would considerably increase the its lifespan. That joined to the lower power consumption makes me consider stepping down to 528 MHz. How remarkable would the performance reduction be? Are there any benchmarks comparing the performance at different clock speeds?
    Paul's github has benchmark repository for T_4.0 test does as posted on the product page at 600 MHz - ( they may e linked there as well? ) - you could download the sketches and run them - coremark and another encrytion calc sketch.

  15. #15
    Member KD0RC's Avatar
    Join Date
    May 2019
    Location
    Colorado, USA
    Posts
    79
    My T 4.1 has been running non-stop for a little over 10 hours in a 70-ish degree F room. At 528 MHz, it ran about 58 deg C. At 150 MHz it looked to stabilize around 54 deg C (not too scientific - I did not wait long for the temp to stabilize, I just marked the value when it stopped changing). 600 MHz took it to 61 deg C. So I think I will leave mine at 528 for this application.

    The life expectancy shown in the NXP documentation talks about Junction Temperature. Is that the same as (or reasonably close to) the internal temperature returned by the library functions, or is there a factor that needs to be applied to get to Junction Temp? I am thinking of the thermocouple-on-a-heatsink problem where the thermocouple measures cooler than the actual transistor junction temp due to the effects of the heatsink and the distance from the device to the sensor.

    Len

    Edit - fixed spelling

  16. #16
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    13,724
    Internal temp can rise and fall quick at times esp with OC - but stable runs can take some time to heat the whole PCB metal sandwich - and anything soldered or attached.

    Wondering about junction temp and temp measure - did a brief search on phone : rs-online.com/designspark/every-wonder-how-internal-mcu-temperature-sensors-work - perhaps NXP has similar ...

    There is at least one 'temp measure element' in there. Every one of the MANY transistors is composed of junctions making the MCU. It is a point measure of some area(s) on the chip. As noted above with higher OC rates the chip will shutdown before it can report a high temp reading with last showing 50-60 somewhere in long ago notes.

  17. #17
    Quote Originally Posted by defragster View Post
    Paul's github has benchmark repository for T_4.0 test does as posted on the product page at 600 MHz - ( they may e linked there as well? ) - you could download the sketches and run them - coremark and another encrytion calc sketch.
    Thank you defragster, I missed that link to the sketch. In case anyone is interested, I have run the CoreMark sketch on the Teensy 4.0 and the Teensy 3.6 at different speeds and these are the results:

    Click image for larger version. 

Name:	Teensy benchmarks.PNG 
Views:	47 
Size:	31.2 KB 
ID:	23184

  18. #18
    Senior Member
    Join Date
    Apr 2014
    Location
    Cheltenham, UK
    Posts
    165
    Just thought I would add a different graph of your (JotaEfe13) data.
    Click image for larger version. 

Name:	T3.6 T4 Benchmarks.JPG 
Views:	31 
Size:	24.7 KB 
ID:	23188

  19. #19
    Nice, BriComp. It is very interesting viewing it that way. I hadn't realized the progression in the T4 was perfectly linear.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •