| If you have ever done any electronics before | | | | outputs data to the bus. |
| you will probably be familiar with multiplexing but | | | | Charliplexing |
| charlieplexing adds a new dimension. It's a | | | | Charlieplexing uses the third state to disconnect a |
| technique commercially developed at Maxim by | | | | pin from a mesh of devices so no current flows |
| Charlie Allen hence the name but you can still use | | | | at that node and it's ideally suited for control from |
| the technique in your own circuits. | | | | a microcontroller since it's easy to change the |
| Note: The actual technique has been around for | | | | operation just by re-programming the |
| some time but Maxim is one of the first | | | | microcontroller. |
| companies to use it in a commercial chip. | | | | One of the uses of charlieplexing is to control |
| Multiplexing simply means sharing whether it is | | | | many leds using very few pins. LEDs are also |
| FDM Frequency division multiplexing | | | | diodes so reversing the voltage across an LED |
| TDM Time division multiplexing | | | | means no current will flow. If you connect two |
| WDM Wavelength division multiplexing | | | | leds to two output pins with the second diode |
| Of course the other form of multiplexing which | | | | connected the opposite way to the first one (and |
| every electronic engineer uses to steer signals | | | | using current limit resistors). Setting the output |
| around a digital circuit uses standard logic gates | | | | pins to 01 will turn on the 1st LED while setting |
| and although not as glamorous as FDM, TDM and | | | | the output pins to 10 will turn on the 2nd LED. |
| WDM it is a core technique for designing digital | | | | Now add in a third output pin and add two diodes |
| circuitry. | | | | connected between each microcontroller pin as |
| With a normal logic gate multiplexer you will have | | | | before. You now have 6 LEDs and by tristating |
| a minimum of two inputs that you want to select | | | | each microcontroller pin in turn only two output |
| and send to a single output controlled by a control | | | | pins are 'connected' i.e. You can control each LED |
| signal. | | | | individually. |
| The states of the output gates are as you would | | | | You have now controlled 6 LEDs using only 3 pins |
| expect either high (logic 1) or low (logic 0) but | | | | normally you would need 6 individual output pins. |
| charlieplexing recognizes another state: | | | | The formula for how many LEDs you can control |
| High Impedance. | | | | is: |
| Note: This is the third state in addition to 0 and 1 | | | | LEDs = N * (N-1) |
| so it is often called tri-state. | | | | - Two pins gives 2 x (2-1) = 2 |
| High impedance just means switching off the | | | | - Three pins gives 3 x (3-1) = 6 |
| output current circuit so no current can flow into | | | | - Four pins gives 4 x (4-1) = 12 |
| or out of the output pin. | | | | Advantage of Charlieplexing |
| Of course high impedance output logic gates have | | | | Very few pins control many LEDs. |
| been around for as long as digital circuits have | | | | Disadvantage of Charlieplexing |
| been used mainly for accessing a microprocessor | | | | Only certain sets of LEDs can be turned on at the |
| bus where each device is tri-stated to disconnect | | | | same time. |
| it from the shared bus while another device | | | | |