Signal impedance in digital circuits

Signal impedance

You might be reading this post out of context, it is supposed to be a branch from other posts on this blog.
All posts labeled bits and pieces are rough writings, possibly direct copies of outdated logs. And are subject to frequent changes. 

What it is:

Since we're interested in Digital circuits, a lazy definition of Impedance would be resistance! In other words, the amount of current opposition a circuit would have when voltage is applied across it's terminals.
The concept of Impedance is usually studied in Analog circuits, where you would say that a certain circuit has an Impedance amplitude of (number), and an Impedance Phase of (angle), which means that if we are to connect a voltage/current source across this circuit's terminals, or connect this circuit as a voltage/current source across another circuit's terminals, then the 'resistance' of this circuit would be equal to (number), and the current would lag the voltage by a phase of (angle).

In DC, we would only regard the amplitude part of the Impedance, and treat it as if it's just resistance, because the phase would be zero in a steady DC signal. How is this useful in the context of interfacing processors to components you say? Well, check out the following example.

Simple Input/output example:

Lets take the scenario where your processor has a GPIO pin connected to a voltage source, for the purpose of taking voltage readings from this voltage source and performing some logic based on the voltage level received, now, the voltage reading your pin receives from this circuit depends on both the Input Impedance of this GPIO pin, as well as the output Impedance of the voltage source circuit, lets say the highest voltage level this circuit (the voltage source) produces is 3v, with an Impedance of 1KΩ, and lets assume you have your GPIO pin configured with an Impedance of 20KΩ . to calculate the highest voltage level your input pin will see:

seen voltage = source(v) x Input(Ω) / ( input(Ω) + source(Ω))
 = 3v  x 20KΩ /  (20KΩ + 1KΩ) = 2.86v

The voltage dropped 0.24 volts because your input pin has an Impedance of 20KΩ and the voltage source circuit had an impedance of 1KΩ. Now here's a catch, if you are to lower the impedance of your GPIO pin (by means of setting some register values) your voltage would see more of a drop! whether it is better to have a high impedance in your system's inputs or not depends on your application, specifically, power requirements, but we're not about to discuss that here.

To sum it up:

In the above example, the GPIO of the processor was an input, and the external circuit was a voltage source, if you reverse the situation, and have your pin configured as an output that drives some circuit, you should still be able to follow the same concept, your output pin would have an impedance just like the voltage source circuit had one. It is generally more practical to measure the voltage values you would want your system to achieve, calculations are good to get you an initial value.

Additional resources:

Input and Output Impedances of Resistive Circuits