Home arrow Support arrow Forums

Luminary Micro Forums

usfee

Fresh Boarder
Click here to see the profile of this user

2007/01/13 15:45

Can't Software Reset a LM3S811

I am trying to issue a software reset on a LM3S811 using the attatched code. I believe that the oscillator has implimented the errata notice by placing the PLL into bypass, but I still can't issue a SW reset. I also tried the library function approach with SysCtlReset() but it gets locked in the while loop. Any insight would be greatly appreciated.

Thanks,
Jake


Code:

  /* oscillator reconfig for software reset           0000|0111|1000|1110|0011|1010|1100|0010    0x 0    7    8    E    3    A    C    2    - Disable Auto Clock Gating    - Set SYSDIV to Divide by 16    - Disable SYSDIV    - Clear USEPWMDIV    - Set PWMDIV to Divide by 64    - Power Down PLL    - Disable PLL output    - Set PLL MUX to BYPASS    - Disable PLL verification    - Set main oscillator crystal to 6.0 MHz    - Set OSC soource to MAIN    - Disable Internal Oscillator verification     - Disable Main Oscillator verification    - Disable Internal Oscillator    - Enable Main Oscillator  */ #define OSC_SETTINGS_FOR_RESET (*((volatile unsigned long *) 0x400FE060)) = 0x078E3AC2 #define REQ_SW_RESET (*((volatile unsigned long *) 0xE000ED0C)) |= 0x00000004 if (SOMETHING_HAPPENS) {     OSC_SETTINGS_FOR_RESET;     REQ_SW_RESET; }

login or register to reply

magnuslundinse

Gold Boarder
Click here to see the profile of this user

2007/01/13 16:08

Re:Can't Software Reset a LM3S811

Hi

When writing to Application Interrupt and Reset Control Register you must also supply VECTKEY (0x05FA) to bits [31:16]

Code:

  REQ_SW_RESET (*((volatile unsigned long *) 0xE000ED0C)) |= 0x05FA0004



You can also test the VECTRESET , 0x05FA0001, this resets the system and works even when the clock is PLL. As far as I can understand this is a harder reset than the SYSRESETREQ, but I does reset the system and it works.

Regards,
Magnus

login or register to reply