• AVR Freaks

Hot!_general_exception_handler at 50ºC; OK at room temperature, why?

Author
LeeDeng
New Member
  • Total Posts : 13
  • Reward points : 0
  • Joined: 2013/07/05 15:56:25
  • Location: 0
  • Status: offline
2020/02/07 22:31:35 (permalink)
0

_general_exception_handler at 50ºC; OK at room temperature, why?

We are using PIC32MX795F512L-80I/PT for our ultrasonic testing device with Ethernet communication to transfer the data to computer. Everything is working well in the room temperature up to 30ºC. However, some of them stopped working above 30ºC, and no one will work above 50ºC. We hooked up a PICkit 3 debugger and found that the code jumped to the following function:
 
// C30 and C32 Exception Handlers
// If your code gets here, you either tried to read or write
// a NULL pointer, or your application overflowed the stack
// by having too many local variables or parameters declared.
void _general_exception_handler(unsigned cause, unsigned status)
{
Nop();
Nop();
}
 
The temperature range of the chip is industrial grade and should work from -40°C to 85°C. I am not sure why 50ºC just kills the chip.
 
Hope somebody can help me to solve this problem.
#1

15 Replies Related Threads

    crosland
    Super Member
    • Total Posts : 1879
    • Reward points : 0
    • Joined: 2005/05/10 10:55:05
    • Location: Warks, UK
    • Status: online
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/08 03:41:46 (permalink)
    4.67 (3)
    Too little information. WHat's the clock frequency? What power dissipation do you calculate? How is the chip mounted? Any heatsink? Is it enclosed?
     
    More to the point:
     
    Have you read the data sheet?
     
    Do you understand the difference between junction temperature and ambient temperature?
     
    Do you understand thermal impedance and how to calculate the junction temperature at a given ambient temperature, depending on the power dissipation in the chip and thermal characteristics of the PCB, heatsink (if any) and enclosure?
     
    If the answer to any of the 3 questions above is "No" then you have some research to do.
     
    If you can answer "Yes" to all of them then I suggest you re-examine your calculations.
    #2
    JPortici
    Super Member
    • Total Posts : 923
    • Reward points : 0
    • Joined: 2012/11/17 06:27:45
    • Location: Grappaland
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/08 07:04:07 (permalink)
    4 (1)
    Also, maybe, incorrect cache / wait states configuration, that is working at room temperature but will not at higher temperatures
    #3
    LeeDeng
    New Member
    • Total Posts : 13
    • Reward points : 0
    • Joined: 2013/07/05 15:56:25
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/09 13:40:35 (permalink)
    0
    Thank you very much for your feedback. The clock frequency is 80 MHz. We tried a big heat sink and it still stops working. The chip was mounted in the normal way. Is there any other way to mount the chip? The board was tested in a convection oven without any enclosure.
     
    I read the data sheet and found the junction temperature and ambient temperature on the attached picture.

    Attached Image(s)

    #4
    LeeDeng
    New Member
    • Total Posts : 13
    • Reward points : 0
    • Joined: 2013/07/05 15:56:25
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/09 13:43:25 (permalink)
    0
    Thank you for your time to answer my post. May I ask how the cache / states configuration are affected by the temperature and how to adjust them?
    #5
    andersm
    Super Member
    • Total Posts : 2774
    • Reward points : 0
    • Joined: 2012/10/07 14:57:44
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/09 14:30:38 (permalink)
    0
    What exception are you getting? Have you verified that the rest of the device works at higher temperatures?
    post edited by andersm - 2020/02/09 15:14:00
    #6
    NKurzman
    A Guy on the Net
    • Total Posts : 18402
    • Reward points : 0
    • Joined: 2008/01/16 19:33:48
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/09 21:07:50 (permalink)
    0
    Because timings change with temperature. What is good at room temperatures may no longer work at higher( or lower) temperatures.
    If it’s the flash wait states, then instructions pulled from the flash may be corrupted. increase it by one and see what happens.

    The optimal value should be in the data sheet.
    It is related to the chip clock speed. Since the chip runs faster than the flash can.

    You may be able to use the on chip temperature sensor to determine if the chip is overheating.
    #7
    LeeDeng
    New Member
    • Total Posts : 13
    • Reward points : 0
    • Joined: 2013/07/05 15:56:25
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/09 22:04:26 (permalink)
    0
    Hi Andersm,
     
    cause = 0x50800818
    status = 0x00100003
     
    Thanks!
     
     
    #8
    LeeDeng
    New Member
    • Total Posts : 13
    • Reward points : 0
    • Joined: 2013/07/05 15:56:25
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/09 22:10:05 (permalink)
    0
    Mine is 0x18 ?
     

     
    post edited by LeeDeng - 2020/02/09 22:25:04
    #9
    andersm
    Super Member
    • Total Posts : 2774
    • Reward points : 0
    • Joined: 2012/10/07 14:57:44
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/09 23:50:36 (permalink)
    0
    The ExcCode field is bits 6..2 of Cause, so you have an instruction fetch bus error exception. RIPL (bits 15..10) is 2, so there is a priority 2 level interrupt pending, which may or may not be relevant. The EPC register will hold the address the CPU was trying to execute. Its content is going to be invalid, but in case of eg. a stack overflow you may be able to recognize it as data from your application. CPU register 31 ($ra) will hold the return address of the most recent function call, that can help you narrow down where the exception actually happened.
     
    Have you measured and monitored all power supplies and other parts that could cause glitches? Eg. some part that is already running hot at room temperature, or some passive where the value will change significantly with temperature can cause all sorts of weirdness.
    #10
    LeeDeng
    New Member
    • Total Posts : 13
    • Reward points : 0
    • Joined: 2013/07/05 15:56:25
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/15 14:34:54 (permalink)
    0
    We tried increasing and decreasing the wait state and hold time but no help.
    #11
    LeeDeng
    New Member
    • Total Posts : 13
    • Reward points : 0
    • Joined: 2013/07/05 15:56:25
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/15 14:47:58 (permalink)
    0
    We checked the temperature of all the components at room temperature of 20˚C. The highest temperature of the part is 31˚C. The most parts are 28˚C.
     
    We also tried 60 MHz clock instead of 80. The device works well.
     
    This is our second batch of the production: 200 pcs. The first batch of 100 pcs had no problem. We are going the replace the industrial temperature version with a V-temp temperature device PIC32MX795F512L-80V/PT to see any improvement. 
    #12
    Jim Nickerson
    User 452
    • Total Posts : 6566
    • Reward points : 0
    • Joined: 2003/11/07 12:35:10
    • Location: San Diego, CA
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/16 09:14:09 (permalink)
    5 (1)
    I think:
    If it fails at temperature it probably does not matter which exception is hit, you are fortunate an exception is hit.
    If it runs at a lower frequency the culprit is self heating on the chip.
    If the V temp version does not help maybe active cooling ( Peltier on heat sink ).
    #13
    nigelwright7557
    Super Member
    • Total Posts : 370
    • Reward points : 0
    • Joined: 2006/11/06 08:15:51
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/16 10:58:11 (permalink)
    1 (1)
    LeeDeng
    We also tried 60 MHz clock instead of 80. The device works well.

    Its not something as simple as wrong speed PIC ?
    Some parts have various speeds.
    #14
    crosland
    Super Member
    • Total Posts : 1879
    • Reward points : 0
    • Joined: 2005/05/10 10:55:05
    • Location: Warks, UK
    • Status: online
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/16 11:49:57 (permalink)
    5 (1)
    LeeDeng
    We checked the temperature of all the components at room temperature of 20˚C. The highest temperature of the part is 31˚C. The most parts are 28˚C.

     
    What did you measure? How did you measure the junction temperature of the PIC?
     
    We also tried 60 MHz clock instead of 80. The device works well.

     
    Since power dissipation and hence junction temperature scale with clock frequency I think you have your answer.
     
    Again, how did you measure the junction temperature?
     
    #15
    LeeDeng
    New Member
    • Total Posts : 13
    • Reward points : 0
    • Joined: 2013/07/05 15:56:25
    • Location: 0
    • Status: offline
    Re: _general_exception_handler at 50ºC; OK at room temperature, why? 2020/02/16 21:07:59 (permalink)
    0
    We measured the temperature of the top surface of the parts.
     
    I was trying to find the way to measure the junction temperature but couldn't find the answer and don't know if our chip has the built-in measurement feature. Would you please let me know how to do it?
     
    Thanks.
    post edited by LeeDeng - 2020/02/16 21:09:51
    #16
    Jump to:
    © 2020 APG vNext Commercial Version 4.5