Eight-pin microcontrollers offer
numerous peripheral features. However, the maximum number of I/O pins
available is often limited to six, since
two pins would be required for the
chip's power supply. So, it can be challenging to design systems based on
these devices, especially if they involve
a significant display requirement.
For instance, controlling a large
number of LEDs is a problem with
eight-pin microcontrollers, unless you
resort to a method called "Charlieplexing." This idea was originally described
in Don Lancaster's August 2001 Tech
Musings (www.tinaja.com/glib/muse152.pdf) in addition to Maxim Integrated Products application note AN1880
(http://pdfserv.maxim-ic.com/en/an/AN1880.pdf).
In general, Charlieplexing allows N
I/O pins to control N*(N 1) LEDs. For
example, shows five pins of a
microcontroller connected to 20 LEDs.
In this Charlieplexed display, one of the
pins is an output pin set to logic 1 and
another pin is an output set to 0. The
rest of the pins are set as inputs in a
high-impedance state.
Thus, at any given time, only one of
the LEDs is turned on. After a suitable
delay, this LED is turned off by changing
the pin configuration and the next LED
is turned on. The rate at which each
LED is turned on must be more than 50
Hz to avoid any noticeable flicker. So, for 20 LEDs the overall display refresh rate
should be at least 1000 Hz.
Our application required a counter
with a maximum count of 200. We could easily have used a suitably complex microcontroller, but we decided to
try using the most inexpensive eight-pin
device available. We selected the Atmel
AVR ATtiny15. The counter input was
from a pushbutton switch, so only five
of the six I/O pins would be available
for the display. Because the counter
was meant for hexadecimal-literate
engineers, we decided to have a two-digit display with the count going from
00 to FF(Hex). Even so, fitting a two-digit display seemed difficult.
We used a Charlieplexed display to
arrange the LEDs in the required two-digit, seven-segment format, which would
serve our purpose (). We chose 3mm, high-brightness LEDs. Each segment of the seven-segment display consists of three LEDs set in parallel.
All resistors are 100-Ω, 1/4-W CFRs.
The peak current through the LEDs is
about 30 mA with a 5-V supply, but the
system works at any supply voltage
from 3 V to 6 V. The refresh rate was set
to 1000 Hz, derived from the ATtiny15's
internal system clock of 1.6 MHz. The
circuit can also be adapted to work with
a number of other ATtiny devices or
eight-pin PIC microcontrollers.
The control program for the ATtiny15
microcontroller for the counter application described can be downloaded .
Although our implementation is for a
simple counter, the system is expandable. The display can be increased to a
2-1/2-digit format. Also, many eight-pin
microcontrollers have a built-in analog-to-digital converter channel that can be
used together with a 2-1/2-digit display
to build a voltmeter. Similarly, the technique can implement a frequency counter with an auto-ranging feature.
A limitation with Charlieplexing is the
low duty cycle of the current through each LED. Since only one LED is on at
any given time, the duty cycle is
1/[N*(N 1)]. For 20 LEDs, the duty
cycle of current through the LEDs will
be a mere 5%. As the number of LEDs
increases, duty cycle decreases. So, to
maintain a particular average current
through the LED, the peak current
would have to increase proportionately.
At some point, the peak current would
exceed the LED ratings, and Charlieplexing would not be possible.
One other consideration—only microcontrollers that allow each pin to be
configured as an output as well as a
high-impedance input can be used.
Thus, a typical 8051 isn't suitable to
control a Charlieplexed LED display.
IDEAS FOR DESIGN WANTED
Send us your Ideas for Design.
We'll pay you $150 for every Idea for Design that we publish. In addition, this year's top design as
selected by our readers will earn an
additional $500, with two runners up
each receiving $250. You can submit
your Ideas For Design via:
• E-mail: dbs@penton.com
Or by
• Postal mail to:
Ideas For Design
Electronic Design
45 Eisenhower Dr., Suite 550
Paramus, NJ 07652
Go to www.electronicdesign.com for
our submission guidelines.