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
|