We are using LM3S5956 controller with IAR tool chain in our project. We are facing an issue regarding brownout interrupt handling.
We are observing a continuous reset in our system. The brownout bit is always set in the "reset cause register(RESC)" which indicates the cause of reset is brownout.We are acknowleding this by using"SysCtlResetCauseClear(SYSCTL_CAUSE_BOR)" funtion.
By default the PBORCTL register has zero which allows for generate an interrupt on occurence of brownout event.
We have enabled the brownout interrupt using "SysCtlIntEnable(SYSCTL_INT_BOR)" function & made an entry at "System Control (PLL, OSC, BO)" in the interrupt vector table.
The interrupt service handler for brownout interrupt includes the code for switching on a led.But we did not observe the led glow.
Has anyone tried to capture the brownout reset? Please let us know if we have missed any steps.Any reference to document or sample code in this regard will be of help.
Are you able to catch the brownout with the debugger still attached? If so, are you able to set a breakpoint on the brownout interrupt handler?
Are you able to capture a scope trace of the brownout event? If so, it would be helpful to see a trace of the voltage and the GPIO signal connected to the LED.
--Bobby
No we are not able to catch the brownout interrupt with debugger attached. We tried to capture the GPIO signal but it was of no help.
Is it possible to generate both brown interrupt & reset also?
We are able to observe a reset due to brown out even though we have not enabled that option. This we can say because we are switching on a red LED if the
reset is caused due to brown out.
We wrote an application that glows a blue led if brownout interrupt occurs & red led when the reset cause is brownout. We never observed the blue led glow.
--Deepak
How is the brownout condtion being generated? What is the voltage level dropping to?
There are two ways by which we are generating the brownout condition.1. Connecting a load to our system and the operating voltage is around 3.5 volt. The system can be either in hibernate or completely switched off. when we power on, there is a dip in the Vcc line and the system gets into continuous loop of resets.2. There is no load connected to the system.We start decreasing the voltage starting from 3.3V to less than 2.9V.
In either case the granularity used to decrease the voltage is 1/100th of a volt.The voltage level is dropping to less than 2.9V.
One more information the glitch on the Vcc line is around for 2 milliseconds.
Have you read the errata? What is the revision of your device?
Hi Deepak,
So finally did you get the brown out interrupt work, with or without debugger attached?
Regards,
Leon