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?
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It only takes a minute to sign up.Sign up to join this community
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:
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.
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.