I'm using the TI TMS320F280049C microcontroller.

While testing its GPIO behavior during power on/off, I found a high to low transition on GPIO pin, on every power on/off.

I'm checking the waveform on the GPIO pin of the microcontroller itself.

I have used the same code provided by TI for GPIO initialization (C2000 examples)

// Initialization code as follows
GpioCtrlRegs.GPAPUD.bit.GPIO3 = 0;   // Enable pull-up on GPIO3
GpioDataRegs.GPASET.bit.GPIO3 = 1;   // Load output Latch
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0;  // GPIO3 = GPIO3
GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;   // GPIO3 = output

Waveform during power on/off:

scope plot

  • 1
    \$\begingroup\$ And.... what is your question? \$\endgroup\$ – Tyler Aug 29 at 12:59
  • \$\begingroup\$ Do you have Brown out reset BOR or voltage monitoring section enabled in teh MCU? If yes, what is the level? \$\endgroup\$ – Umar Aug 29 at 14:10
  • \$\begingroup\$ Why is your init code setting high when your desired/default level seems to be low? \$\endgroup\$ – Chris Stratton Aug 29 at 14:13

There is an advisory in the errata sheet for this behavior.

enter image description here

Errata: TMS320F28004x Piccolo™ Microcontrollers Silicon Revisions B, A, 0


Can you see the 3.3V line falling low steeper? The MCU is still running normally until that point. Normally there will be Brown Out Reset(BOR) Section of internally. This section monitors the voltage constantly. When the voltage drops below the preset threshold, the MCU will be kept under Reset. The reset will only be cleared when the 3.3 V line again raises by a certain level. The hysteresis will be too less if it is internal to MCU.

From the datasheet you have linked: The Hysteresis (guard band) is way too less but cant expect more from built in BOR.

enter image description here

enter image description here

Below is only an example to explain what BOR is.
enter image description here

  1. You turn off the supply
  2. The 3.3V start falling down (capacitors are acting like buffers),but still MCU is running drawing high current.
  3. BOR resets MCU.
  4. Current drops
  5. the 3.3 V voltage temporarily raises up again
  6. MCU comes out of reset and starts running reason (point in time where you see pulses) but fails immediately due to fall in voltage
  7. The voltage level is just enough to clear BOR but it can't sustain high current demand
  8. This can happen a few times until the voltage Level (When MCU is under reset) is no more able to clear the BOR.
  9. The MCU stays under reset permanently
  10. The 3.3V now falls slowly now. Notice the change in the slope before and after the pulses.

If assumed reason above is true please use a external Brown out Reset IC. It keeps the MCU under Reset sufficiently long so that these kind of glitches won't appear. It also has other benefits.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.