While reading ATmega328P's datasheet, I came across the following statement.

The Port X output buffers have symmetrical drive characteristics with both high sink and source capability.

What does that statement mean?

  • 1
    \$\begingroup\$ Which part is unclear to you? \$\endgroup\$ – Wouter van Ooijen Jul 21 '14 at 10:11
  • \$\begingroup\$ @WoutervanOoijen: "output buffers" and "symmetrical drive characteristics" \$\endgroup\$ – Babu James Jul 21 '14 at 10:32

An output pin (GPIO) with both source and sink capability is one that can be used for driving a load up (towards Vcc) or low (towards ground). In other words, it is effectively a push-pull type output driver. The "high capability" means it can support a relatively low impedance load, providing "high amount" (40 mA per pin for ATmega328) of current from the output pin for driving a logic high output, and also permitting a high amount of current (40 mA again) to pass through the pin to the microcontroller's ground pin, when driving the output low.

This is useful for operating LEDs directly by the I/O pins, for instance:


simulate this circuit – Schematic created using CircuitLab

Not all microcontrollers can both source and sink significant amounts of current, which makes this a highlight feature for the Atmel devices.

The "output buffer" is the bit of circuitry that actually drives each output pin. From another answer on this site, the diagram below illustrates what a CMOS based output buffer conceptually looks like - there is one of these building blocks driving each output pin of the microcontroller.

Push pull CMOS

The "symmetrical drive characteristics" mean that the output buffer is equally good at driving the output pin high or low against whatever is connected to the output (within sensible limits). Complementary MOSFET (CMOS) uses P- and N- FETs of closely matched characteristics to achieve such "symmetrical" performance. The output pin is thus driven high as strongly as it is driven low.

|improve this answer|||||
  • 2
    \$\begingroup\$ Nice one, did make a novice understand the concept. \$\endgroup\$ – Babu James Jul 21 '14 at 10:47

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.