Maximum source and sink currents on M430G2553

Looking through the datasheet there's a set of graphs that looks like what I want on page 25. I'm a bit confused as to what they mean.

For example, let's focus on the two graphs on the right which correspond to Vcc = 3v. I think the top graph is what would happen if you try to sink current with P1.7 and the bottom graph is what would happen when you try to source current with P1.7. I'm not entirely sure what these graphs are saying, though. Why would the pin voltage change? I thought the device was supposed to hold the pin voltages steady at 0v or Vcc when you output low and high respectively. Additionally, I can't seem to find a maximum sum current rating for all of the pins.

The project I'm trying to do specifically is to light groups of LEDs using multiple pins like this. This is my first attempt at using a micro controller outside of class and I'm rather new at this, so any help would be appreciated!

  • The graphs you sited from the datasheet are the V-I curves of the typical output pins of MSP430G2x53/G2x13. V-I curve shows the voltage verses current relationship of an electric element. The datasheet of the LED should have a V-I curve too. A resistor have a liner V-I curve V=R*I, where the slope R is the resistance of that resistor.

    In the case of using a resistor and a LED in series with P1.7 to sink 15mA, the calculation is as follows:

    a) According to Fig.7, P1.7 will drop 0.5V (at Vcc=3V, Ta=85C)

    b) According to the other article you sited, the LED they use will drop 1.9V at 15mA.

    c) The total voltage should be 3V, thus the resistor needs to drop 3-0.5-1.9=0.6V. This means R=V/I=0.6/0.015=40 Ohm

    In the case of sourcing 15mA:

    a) According to Fig.9, P1.7 will provide 2.4V (at Vcc=3V, Ta=85C)

    b) According to the other article you sited, the LED will drop 1.9V at 15mA

    c) Thus the resistor needs to drop 2.4-1.9=0.5V. This means R=V/I=0.5/0.015=33 Ohm

  • In reply to old_cow_yellow:

    Exactly what I needed, thank you!

    My only remaining question is do you know how much total current I can source or sink from all of the pins simultaneously? I've looked everywhere for that info and I can't find it in the documentation.

  • In reply to Andre Vazquez:

    Andre Vazquez
    how much total current I can source or sink from all of the pins simultaneously?

    This depends on the amount of the voltage drop accepted by you. I could find only one piece of information on Page 24 of the datasheet. It says that "The maximum total current, I(OHmax) and I(OLmax), for all outputs combined should not exceed ±48 mA to hold the maximum voltage drop specified." And what was specified? ±0.3 V at 3 V VCC and at 6 mA/pin. Since 48 mA is 8 times higher, one can say (as a thumb rule), that you can drive 8 outputs simultanously. However, this may not be true if you go far from this 6 mA value...

  • In reply to Istvan Cserny:

    That makes sense. This might seem kind of silly, but what would happen if I sourced current from some pins, and sunk current into others? Could I theoretically negate that voltage drop and circumvent the limit if the net total current is near 0? I'm sure there's some hardware maximum the pins and micro controller are able to withstand.

  • In reply to Andre Vazquez:

    Andre Vazquez
    Could I theoretically negate that voltage drop and circumvent the limit if the net total current is near 0

     Well there is no free lunch. You could in theory safely source 48mA and Sink 48mA but the result would not be 0 mA.


  • In reply to Istvan Cserny:

    Besides the fact that the voltage drop increase will increase with increasing current (the dependance is not linear, there's a poitn where a minimum current increase will result in a huge voltage drop), there's another limiting factor: power dissipation.
    Dissipated power is current * voltage drop. (and this is independent of sink or source)

    If you have 0.3V drop on 6mA per pin and draw 6mA from 8 pins, this is 16mW power. Not too much. However, if current rises, voltage drop also rises (and much faster) and the total power on the por tpins will eventually exceed the total chip maximum power dissipation (resulting in a chip temperature above limit).
    On 15mA per pin (and guessed voltage drop of ~1V), you're at almost 120mW.

    Even worse, the heating is applied at a small, concentrated area of the die (where this ports drivers are) and the total junction temperature at this point might be exceeded even if the total chip temperature is still in teh allowed range. This will melt the port pin drivers.

    The MSP is very hard to kill, but if you overload its pins for a longer time, it will eventually die.


    Time to say goodbye - I don't have the time anymore to read and answer forum posts. After falling behind by two months (900 threads), there's no point in continuing. See my bio for details.

    Before posting bug reports or ask for help, do at least quick scan over this article. It applies to any kind of problem reporting. On any forum. And/or look here.
    If you cannot discuss your problem in the public, feel free to start a private conversation: click on my name and then 'start conversation'. But please do so only if you really cannot do it in a public thread, as I usually read all threads. And I prefer to answer where others can profit from it (or contribute to it) too.