Maximum current on GPIO?


I already searched trough TI AM3358 TRM and BBB manual but with no success, so I’ll have to ask it here: what ist the maximum current one can pull out of an GPIO pin?

And does the CPU/the related pin die in case of short-circuit of a GPIO or is there an internal protection mechanism?



This question has been asked and answered before. There is a search box with a big blue button marked “Search” next to it. I suggest you use it.
The document you need is the processor data sheet. (SPRS717F) table 2.7




Source 6mA, sink 8mA, with the following pins limited to sourcing 4mA:

P9_19 gpio0[13]

· P9_20 gpio0[12]

· P9_24 gpio0[15]

· P9_26 gpio0[14]

· P9_41 gpio0[20]

· P9_42 gpio0[7]

So setting a GPI to HIGH just by connecting it to 3.3V directly would be a problem? I assumed GPIO-inputs are always high-resistance!?

BeagleBone Black System Reference Manual Rev C page 113| (in bright red font):

"There are several precautions that need to me taken when working with the expansion
headers to prevent damage to the board.

  1. Do not apply any voltages to any I/O pins when the board is not powered on.
  2. Do not drive any external signals into the I/O pins until after the VDD_3V3B rail is up.
  3. Do not apply any voltages that are generated from external sources.
  4. If voltages are generated from the VDD_5V signal, those supplies must not become
    active until after the VDD_3V3B rail is up.
  5. If you are applying signals from other boards into the expansion headers, make sure
    you power the board up after you power up the BeagleBone Black or make the
    connections after power is applied on both boards.
    Powering the processor via its I/O pins can cause damage to the processor."

Those kind of assumptions might kill your board.


This doesn’t answers my question. So to describe it more clear:

  • board/CPU is powered and running
  • GPIO is configured as input
    …so all preconditions mentioned in BBB manual are met.

Now when I want to set a HIGH signal to that GPI, can I connect it with BBBs 3.3V directly or is a resistor needed in order to keep this 8 mA sink limit?

Now when I want to set a HIGH signal to that GPI, can I connect it with
BBBs 3.3V directly


or is a resistor needed in order to keep this 8 mA
sink limit?

No. (You must observe the 8 mA limit, but connecting a GPIO to the 3.3V or gnd rails will not require anything close to 8 mA.)


A GPIO configured as an input will not draw substantial current from the line it's connected to. It is sensitive to the charge level on the line and will not draw current from it (exempting the gate capacitor charge-up). A GPIO that is set to OUTPUT a high signal is now a potential source of current. If you hook that up to the + end of a motor it will try to power the motor with the output. In that case you MUST insure that your circuit limits the current to a maximum of 6mA. The same is true if you OUTPUT a low signal. Hook that to the - lead on a motor and the + lead to supply and the CPU is now trying to absorb all the current from that motor and will go poof.

So if you were to connect directly to the positive supply and say somehow that pin ever becomes an output that is low you now have a dead short through the I/O pin and at best you'll fry that pin or its whole bank, you'll likely kill the whole chip. Since the I/O on these devices is programmatic I never like to connect a pin directly to the supply rails.

The gpio are push pull/pseudo open drain, so there’s a transistor/switch going from 3.3V to the pin, and a transistor going from ground to the pin. When you set the pin high, you’re turning on only the transistor to 3.3V, so it’s sourcing the current from 3.3V, through the transistor, out of the pin. When you set it low, you’re turning on the transistor to ground, so it’s sinking the current into the pin, through the transistor, and to ground. If you have both off (high impedance), there isn’t any significant current going anywhere (I think it’s some nA).

At boot time the respective Sitara pins become outputs high/low level as needed.
Then, please never assume your GPIO is tri-state.

In theory you may connect 3.3v power line direct to the pin if:

  1. you are sure it is not used at boot time as the output
  2. it is 3.3v domain power related pin.

Feel free to ground the pin if:

  1. you are sure it is never used at boot time as an output, and you never drive it High.

To live safe and feel happy always add pulling resistors, never connect pin to the VCC or GND dorectly.

Serge, I was talking about the pin driver circuit inside the package (something like this) not an external connection to 3.3V or ground, but I totally agree for external connections. Always make sure the current in and out of the pin, in any oops type configuration, will be limited to what the pin can handle.

hi Serge i totally agree with what you said