Temperature measurements

Hi team,

I’m working closely with a customer that has some doubts regarding how the temperature sensor works and what kind of temperature ranges the module can tolerate and how we can assure some maximum safe values.

I’ve been constantly checking the imx-thermal.c source code plus our developer site reference to Thermal Management, however, as the customer made some additional tests I would like to check with you.

I’ve already explained to the customer that we test normal behaviour under a 85ºC environment - temperature chamber (in Colibri iMX6ULL IT’s case), so that we can guarantee that under a 85ºC environment the module works without issue. I’ve also explained to them that even though the SoC can tolerate higher temperatures overall, the ideal maximum temperature is 85ºC. Anywhere higher than that can damage the module. Kindly confirm this or add more information that you see fit, as the customer is concerned that in a 85ºC environment the temperature of the module would likely raise in that case.

Regarding the tests, the customer placed a temperature sensor (Thermocoupler) on top of the SoC and made some tests:

In a 60ºC environment, they turned on the module (in the prototype casing) and the temperature measured by the thermocoupler was 75ºC while the value measured by the internal sensor ( cat /sys/devices/virtual/thermal/thermal_zone0/temp ), read 95ºC, making a 20ºC difference between exterior and interior of the CPU/SoC. This raised some questions:

  1. Is this temperature difference correct/normal/intended/expected? What are our comments in this regard?

  2. Acording to an additional temperature sensor in the casing, the temperature inside the case is about 65ºC while the SoC temperature sensor read 95ºC, a 30ºC difference. Our line of reasoning is that if, instead of 65ºC, the casing reads 85ºC as a constant value inside and what we assume to be the temperature module (and what we state as a maximum safe value), the value would quickly raise up to 115ºC (throttling/turning off depending on the values on the imx-thermal).
    Is there any way we guarantee a 85ºC as a maximum safe value, how we can measure that, and if there is any way on preventing to surpass that temperature apart from the SoC failsafe methods?

  3. What does the 85ºC exactly mean and how it works as a guarantee for the customer that it is a safe temperature to work with (inside a casing, etc.) given that during operation temperature would likely increase if there is not enough cooling?

Thanks and regards,

  1. Yes, due to thermal resistance it will be always a difference between die temperature and SOC surface temperature when SOC is powered. Actual difference depends on power consumed by SOC and ambient temperature. The 20C in case provided is typical.
  2. SOC die maximum working temperature is 105C. So if we have a thermal solution which can keep SOC and other component surface temperature below 85C we can guarantee SOM functionality.
  3. “Naked” SOM can be overheated even at 20C ambient temperature. So customer should provide a thermal solution to keep SOM surface under 85C.

Hi Alex, thanks for the response. So is really about “Keeping the board below the 85ºC mark”, not really that the board can work up to that (unless you offer the cooling to keep it that way). In that case, I’m curious then how we test our products in our temperature chamber to test in that 85ºC environment. Do we add any cooling solution for that point?

After discussing with the team, these are the answers.

Horw: The test inside the climate chamber is more or less the same for all Colibris. We run a set of benchmark tests while we cycle through the whole temperature range. So at max temp we test all the same stuff as at ambient temperature.
The temperature of the SOC will rise above 85°C but they are also rated for higher temperature, the 85°C is there for the other parts and to give a margin for the SOC to heat up under stress.
The iMX6ULL IT has issues dissipating enough heat on its own and we see it overheating above 80~83°C, as to performance with some form of active or passive cooling I can not say because we have not tested this.
In theory I guess we tell the customer that the module is safely operating at 85°C which it is, the iMX6ULL in this case just makes sure it stays safe by powering off because the SOC reaches critical temperature…

Question: So we actually test and stress modules under the maximum temperature (in this case 85ºC). This would likely increase the temperature of the SoC (no problem, as the SoC admits up to 105ºC). However, that increase would also affect the rest of the module that is only up to 85ºC. How do we manage that? Since if there is no cooling solution (or not good enough), the ambient temperature remains 85ºC enough time, and the SoC is above that mark, the SoC would spread the heat to rest of the module and increase the temp above the 85ºC. Or do we stress enough so that the critical point of the SoC is reached, the module is turned off and the module is not damaged (even though we surpassed the 85ºC mark in the rest of the module). I’m very interested of this point of the “above the 85ºC mark in the SoC and an ambient temperature of around 85ºC”

Ambient temperature is never a guaranteed value, it always depends on the conditions. The only value that matters (and is guaranteed by the manufacturer and Toradex) is the junction temperature (also called die or silicon temperature). For SoC, this temperature limit is 105°C. Also the other components (RAM, Flash, Ethernet, etc) have similar maximum die temperatures. It is important that these die temperature are never exceeded. Using a device outside of the maximum die temperature could lead to unexpected behavior and in worst case can damage a component.

What does now ambient temperature actually mean? Ambient temperature describes the maximum environment under certain conditions. Component manufacturers normally specify these conditions. These conditions normally not directly applicable to our modules, since we have the components mounted much closer to each other. This means for example that the SoC is heating up also other components.

How do we specify then the ambient temperature? We are testing the modules in our temperature chamber up to 85°C. The temperature chamber has a lot of airflow inside which makes sure everything is at the same temperature. For modules with higher consumption, we add even further fans on top of the module or on a heatsink. At the end, we have a lot of airflow which makes sense, that all the components get the same 85°C ambient temperature just around them.

If a customer has less airflow, he has either reduce the maximum ambient temperature or create another cooling solution. At the end, the customer needs to make sure the maximum junction temperature is not violated.