This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Program failure at 80+ degrees

Hello,

I was hoping to hear your opinion about a serious problem I have - it is either I solve it or reduce my LPC2478 CPU speed from 72[MHz] to 64[MHz] (11% loss. The problem does not seem to be occurring at lower MHz settings). I posted about this in the past but it was a long time ago.
When I place a controller in an environmental chamber and increase the temperature to 80+ Celsius degrees, I often see data abort exceptions, and sometimes I get the impression that the PC takes a hike (even the firmware LED that blinks every 1 second becomes irregular for a while before it stops). The program is launched by a boot loader and has a lower level supporting firmware layer that handles some interrupts (not all). I also see that if RTX is not started at all (but the application hangs in a "for (;;)" loop instead, hence the bootloader and firmware layer were/are involved, but the application is idle) - the system never crashes! I have excluded, as far as I could tell, the roll of external memory or RTX in this situation. However, I still suspect RTX a little (even though my test programs never crashed).
My question: did you ever encounter such a situation? Where do I look best? can this be the result of a misbehaving peripheral? NXP have confirmed the LPC2478 is not the reason.

Parents
  • As promised, I have an update that might interest operators of a LPC2470/78 using the LCD controller. I have found that:
    1. lowering the CPU clock speed to 64[MHz] at 80+ degrees seems to stabilize the system. There are no additional legal PLL settings between 72[MHz] and 64[MHz] that support USB, I'm afraid.
    2. This code

    AHBCFG1 &= ~1 ;
    AHBCFG1 |= (3<<12) ;
    AHBCFG1 |= (4<<16) ;
    AHBCFG1 |= (2<<20) ;
    AHBCFG1 |= (1<<24) ;
    AHBCFG1 |= (5<<28) ;
    

    when placed in main() {the data sheet does not specify that these fundamental settings are disallowed in application code and indeed they work}, will put the LCD in the most preferred position to access the AHB1 bus. This prevents image jitter and distortion when doing time consuming drawing on the LCD at 64[MHz].

Reply
  • As promised, I have an update that might interest operators of a LPC2470/78 using the LCD controller. I have found that:
    1. lowering the CPU clock speed to 64[MHz] at 80+ degrees seems to stabilize the system. There are no additional legal PLL settings between 72[MHz] and 64[MHz] that support USB, I'm afraid.
    2. This code

    AHBCFG1 &= ~1 ;
    AHBCFG1 |= (3<<12) ;
    AHBCFG1 |= (4<<16) ;
    AHBCFG1 |= (2<<20) ;
    AHBCFG1 |= (1<<24) ;
    AHBCFG1 |= (5<<28) ;
    

    when placed in main() {the data sheet does not specify that these fundamental settings are disallowed in application code and indeed they work}, will put the LCD in the most preferred position to access the AHB1 bus. This prevents image jitter and distortion when doing time consuming drawing on the LCD at 64[MHz].

Children