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.

TMS320F28069M: F28069M GPIO Failure

Part Number: TMS320F28069M

Hello, 

I was using F28069M GPIO pins for reading the value of a switch but after a while the microcontroller broke and gets hot. The method I was using was pulling up the specific GPIO and selecting it as an input and then reading the current value of the GPIO. I read in some of the forums that the internal pull-up of the F28069M is kind of active and is different with using a resistor, so I'm afraid that I've short circuited the GPIO and it caused the failure!! The circuit I used and the codes are as below, it worth mentioning that I've been using the same circuit for dozen of other microcontrollers and never had a problem like this.

 



  • Hi Milad,

    Milad said:
    The method I was using was pulling up the specific GPIO and selecting it as an input and then reading the current value of the GPIO.

    Did you use an external resistor as pull up? If yes, what was the value and at what voltage level was it pulled up to?

    Regards,

    Gautam

  • Hi Gautam, No, I'm only using the internal pull-up of the F28069M for the GPIO(as written also in the code above). I'm pretty sure that this was the cause of the failure of my microcontroller.
  • Milad said:
    Hi Gautam, No, I'm only using the internal pull-up of the F28069M for the GPIO(as written also in the code above). I'm pretty sure that this was the cause of the failure of my microcontroller.

    How're you so sure? The currents are in micro amps, refer:

    TMS320F28335, GPIO internal pull up/pull down resistor values - C2000 microcontrollers forum - C2000...

    e2e.ti.com
    Other Parts Discussed in Thread: TMS320F28335 , TMS320F2808 I did not find it on the datasheet. Does anybody know the internal pull up or pull down resistor

    Can you explain what exactly you feel might've gone wrong?

    Regards,

    Gautam

  • because I start testing this feature in a PCB which I made and I'm using it for 2 months without any problem, I activated this feature for a Dip-switch and then the micro failed! That's why I'm very skeptical.
    The currents are in level of micro amps, but it doesn't mean that it can not hurt the GPIO unit.
  • Milad said:
    The currents are in level of micro amps, but it doesn't mean that it can not hurt the GPIO unit.

    Until you try to sink or source currents excessive of 4mA!

    Milad said:
    I activated this feature for a Dip-switch

    You didn't mention this before. Can you share the circuit diagram of this section? How is this dip switch connected to the GPIO?

  • the Schematics of my circuit is in my first comment, plus the code...
    imagine the GPIO54 is pulled-up internally and I wanted to read it's value when the DIP switch is pressed.
  • Now it makes sense! Sorry for missing the info. No series resistor for current limit?  

    Here's the reference circuit:

  • Thanks for the circuit, This is what I was a little bit afraid of(using extra components), but the question remains is why the current is not limited by the internal pull up resistor? in this case what's the usage of internal pull up resistor in F28069M? because in any case we have to use some sort of external resistors, and this is what I don't like to make my PCB bigger and bigger.
    Regards
  • Milad,

    I wouldn't expect the internal pulls to be damaged from a direct connection to VDDIO or VSSA.

    It could be that one of the GPIO pins is accidentally configured to output mode and sees a short to GND through the switch while outputting high.

    One experiment that you can try is to replace the DIP switches to GND with some resistors around 5kΩ in value.

    If the GPIO is configured correctly (input mode with pull-up), you should never see the voltage on the pin get over ~1V.

    If you see VDDIO, then the pin is actively driving out.

    Values between ~1.5V and VDDIO would lead me to suspect that there is some electrical damage to the GPIO.

    -Tommy

  • Thanks Tlee for your wise answer, yes that was the problem, and the pin I was working with was configured as output in the code mistakenly and it cost me 20 Euros :) but anyways the circuit is fine and with only Internal pull up everything is fine.
  • Milad,

    I'm glad that you were able to identify the root cause.

    Thanks for letting us know the resolution.  It will help many others with similar problems.

    -Tommy