This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Tiva C series Brown Out Interrupt Not Working

Other Parts Discussed in Thread: TM4C1237H6PM, TM4C1237E6PM

Hi ,

I am trying to configure the Brown out interrupt on the following device:

Tiva C series TM4C1237H6PM

I have configured Brown-Out Reset Control (PBORCTL) register such that BOR0 bit is "0" and BOR1 bit is "1". I have also enabled the brown out interrupt in system control register. The code snippet is below:

/* Configure the Brownout reset */
SysCtlBrownOutConfigSet(SYSCTL_INT_BOR,0);

/* Enable the Brownout interrupt in sysctl*/
SysCtlIntEnable(SYSCTL_INT_BOR)

I order to test the configuration i am using a regulated DC power supply to reduce the voltage to the controller to 3.02V +-90mv in order to trigger the BOR0 event.

I have an interrupt handler registered at the System Control (PLL, OSC, BO) entry in the interrupt vector table.

I have enabled a break point in the above ISR and upon reducing the voltage from 3.2V to 3.02 i hope to see the controller trigger the Brownout interrupt but that is not the case , on further reducing the voltage to 2.88V the controller resets.  

Am i missing something here?

IDE: Code Composer Studio v5.4, Debugger : XDS 510 USB emulator.

  • Hello Aman,

    Which version of TIVAWare are you using?

    Regards

    Amit

  • Hi Amit,

    I am using Tivaware V1.0. I also noticed that the SysCtlBrownOutConfigSet() API is not available in this version. I therefore took it from Stellarisware (revision 9453 ).

    I have also checked the latest Tivaware 2.0 and found the API missing.

    Regards,

    Aman

  • Hello Aman,

    In that case I would be needing the following info

    1. Which Board are you using for TM4C. Is it the EK or DK or a custom board

    2. If a custom board then how are you powering the device. A schematic of the board would help

    3. Can you send the register content from 0x400FE000 to 0x400FE0FC

    4. If possible please share the code including the startup_ccs.c

    Regards

    Amit Ashara

  • Hello Amit,

    I've been hunting for any resolution to this problem or example to setting BOR on TM4C1237E6PM.

    Please provide an example. What Aman has suggested as an example won't work on the TM4C1237E6PM because there is no 'delay' field in the PBORCTL register. Furthermore, there are two brown-out levels BOR0 and BOR1.

    Please reply. We have to use this capability if it is actually working and documented as working.

    Hint: There is no proper reference to the sysCtlBrownOutConfigSet() in the Peripheral User's Guide (see attached).

    Thanks,

    Kevin

  • Hello Kevin,

    Thanks for pointing it out in the document. I will try to get it fixed for the next release.

    The setting of the register for BOR0=0 and BOR1=1 while valid may not work as the Reset trip point is close to VDD_POK falling edge.

    Regards
    Amit
  • Amit

    thanks for the prompt reply. I can see from other comments not to use the higher threshold. Are you saying not to use BOR at all? It's not in the errata.

    Otherwise, please provide a correct example to be clear.

    Thanks!!

  • Hello Kevin,

    The higher threshold must not be used for reset but can be used for interrupt. Which comments mention that it cannot be used?

    Regards
    Amit
  • A note of caution, we disabled the BOR on our board because it appeared too sensitive to noise. It has a very short input filter.

    Robert
  • Thanks Robert. We really appreciate you sharing your experience.

    Kind regards,

    Kevin

  • Amit,

    I'm not taking the time to find the other comments, but you can see that Robert replied below.
    The issue is this was a big time waster. There is no delay factor on this chip, but the driver is
    written so as to support it (which is an error). There is no errata to not use the higher BOR level
    although I can see that the default when setting BOR up is to use the lower level. If it's not working
    then it must be in the errata. So, please fix the drivers and fix the errata.

    Kind regards,

    Kevin
  • Hello Kevin,

    If the Upper threshold is set for reset and the lower threshold for interrupt, then as the voltage falls, the reset will occur earlier than the interrupt. I do not see why an errata is needed for the same.

    Regards
    Amit