Home || About || Blog || HTML || Journal || Links || Phillies || Squeak || Tech121
technology.121: Microcontrollers and Embedded Micro-electronics
technology.121.0: Christopher W Hafey (chris) Sat 24 Dec 05 08:53
+---------------------------------------------------------------------------+
| |
| _ |
| _ __ ___ (_) ___ _ __ ___ |
| | '_ ` _ \ | | / __| | '__| / _ \ _____ |
| | | | | | | | | | (__ | | | (_) | |_____| |
| |_| |_| |_| |_| \___| |_| \___/ |
| |
| _ _ _ |
| ___ ___ _ __ | |_ _ __ ___ | | | | ___ _ __ ___ |
| / __| / _ \ | '_ \ | __| | '__| / _ \ | | | | / _ \ | '__| / __| |
| | (__ | (_) | | | | | | |_ | | | (_) | | | | | | __/ | | \__ \ |
| \___| \___/ |_| |_| \__| |_| \___/ |_| |_| \___| |_| |___/ |
| |
| |
+---------------------------------------------------------------------------+
Embedded microelectronics. Construction of new types of computing devices.
Revisitation of some old types of those devices.
technology.121.1: Christopher W Hafey (chris) Sat 24 Dec 05 10:12
I once saw a device that could be described as follows:
A piece of plywood eighteen inches wide by perhaps 14 inches, set in a
vertical plane, as to make a front panel. Mounted on the panel were eight
incandescent bulbs -- small ones, operating on perhaps 12 volts DC. They
were called pilot lamps, and had spring-loaded bayonet fixtures to hold
them (each bulb has two small round tangs sticking out the sides of it,
like the bolts on Frankenstein's Monster's neck).
The lamps were in a single row, evenly spaced.
Next to and below them was a telephone dial -- the round kind you put your
finger in, and traced around a circle, to dial the phone. It was
spring-loaded, and had a finger stop at about the four o'clock position.
I was invited to dial a single digit number, so I did. As soon as I
released my finger from the stop (I dialed a 7, maybe) -- the dial sprung
back (counter-clockwise) to the neutral position, but this took a short
while to complete -- there were gears (or something) in there that slowed
it a bit.
As the dial worked its way back to neutral, something I'd never seen
happened.
The lamps on the panel started glowing, but not all of them at once;
instead, they'd blink on and off like Christmas tree lights sometimes do.
Moreover, I could see there was some sort of a pattern to it -- that it
wasn't just dumb blinking, but some interrelationship existed between all
the lamps as they alternately turned on and off. This all happened pretty
fast, and I wanted to see it again! I fooled with it for a while, and
began to discern a pattern:
1. OFF OFF ON
2. OFF ON OFF
3. OFF ON ON
4. ON OFF OFF
5. ON OFF ON
6. ON ON OFF
7. ON ON ON
That was crazy! But it was neat. And it would do it in a way that was
entirely predictable.
Now the truth is, I don't know if this ever really happened. I don't
remember a thing about it, other than I knew all about the .. the user
interface I just described. I don't know if I saw it in a magazine, or if
someone had brought this thing to school -- or what. The memory is gone
of how I was exposed to this machine, but I am sure I understood all about
it.
Well, not everything -- it has bothered me for many years as to the very
simplest way to construct an identically-functioning machine, just like
the one I remember. I've learned many ways to fake the same effects, but
the charm of it .. the original .. that's peculiar to the prototype I
'saw'.
All I can think of today is that the person constructing this machine must
have used transistors (and not too many of them) and just a handful of what
are called 'passive' components, such as resistors and capacitors (which
even today are the building blocks of many kinds of electronic circuits).
TODAY I am constructing a similar machine. I do not have a proper phone
dial, but I can simulate that with a standard computer keyboard, or in
any number of ways. The main feature will be the lights, which in this
case will be colored light-emitting diodes, that have nice optical lenses
on them to enhance their presence (the lenses spread the light a bit and
one type, especially, gives a nice rounded appearance -- the light is
diffused throughout a 3/16" half-sphere of translucent red plastic -- the
so-called 'optics' of the single LED).
The machine has 32 of them .. the LED devices .. on its front panel. It
is being constructed out of an apple crate I bought from bookcrates.com
(I have about fifteen of their crates). The crate is turned on its side
(as if to make a bookshelf out of it) and occupies the left side of my
workstation. I took two pieces of white pine shelving and fashioned the
front panel out of them (it's a bit thick). As it turns out these crates
are the exact dimension as 19" rack-mount .. a nice bonus; it means I can
design for that form-factor and eventually transplant the insides to an
aluminum rack-mount enclosure.
I've worked out the details and have implemented already, several so-called
'peripheral' devices, including a real PC-AT keyboard, a 40-character by
2-line LCD (liquid crystal display), and have started construction of a
6-digit 7-segment LED display (like many digital alarm clocks use). Each
thing has to be considered, a schematic drawn, and then the wiring and
other construction has to take place before it's realized in a form that
others can appreciate (or at least interact with).
Between the keyboard and display, I've created a tiny word processor on
the device -- all the PC-AT keyboard keys perform functions as one would
expect; backspace moves to the left and erases; cursor arrow keys navigate
the text without doing violence to it, and all the rest. The function
keys are currently 'mapped' to execute programs I've written for the
machine. For example, F5 invokes a 2-line calendar program for the
current ISO week:
+----------------------------------+
| Mo Tu We Th Fr Sa Su CW December |
| 19 20 21 22 23 24 25 51 2005 |
+----------------------------------+
and shift+F5 invokes the calendar for the week after this (current) one.
There's a clock chip in the machine (I had to wire it up and hook it up
to an 'iic' bus .. a 2-wire interface) that keeps the correct, current
time, and it is also a 4-year calendar and knows what day of the week
it is. I've worked out how to display hours, minutes and seconds of
the current time, on the LCD, in a pleasing way .. but have not yet
worked out the details to display (or set!) the year, month or calendar
date. When I do, the calendar invoked with F5 will then track by itself;
right now I fake it by programming it (anew) once a week!
I found the 7-segment LED display to be a bit tedious to rig; there are
an awful lot of connections to make to get up to 6 digits displayed on
the front panel. The displays themselves are simply 7 LEDs configured
into a single plastic module, and shaped in a way that the segments, when
lit, resemble numbers:
a
---
b | | c
| d |
---
e | | f
| g |
--- .
So to get a 7, light up segments a, c and f. There's also a decimal point
segment, so in fact it's an 8-segment display, but traditionally it is
called a 7-segment display to indicate its special use in representing
numerals in various computing devices.
Right now, I have the entire front-panel torn down to the wood -- I needed
to rework the wood to fit in both the 32-LED 'binary' display as well as
the 7-segment display (6-digits). The 6-digit 7-segment display was taking
far too long to complete, so I decided to do the binary display in the
interim, and made one more refinement -- I split the pine shelving for the
front panel lengthwise, to get two narrower panels out of it. That took a
while because I did it by hand, starting with an x-acto knife, and when
I'd grooved it deep enough, began with a (back-cut?) saw .. the kind they
sell with mitre box saw sets (I don't have the mitre box). I strapped the
wood across my knees with a belt, and worked the saw back and forth in the
groove, until it was nearly all the way through (at least 45 minutes work).
Then I finished on a table, so I wouldn't cut into my blue jeans.
I also used the saw in reverse, pulling on the end of the blade opposite
of where the handle was, towards me; closing one eye and keeping the saw
blade so the light fell on both sides exactly evenly. It came out pretty
good; both pieces stand on edge without falling over, which is my basic
test for 'square' in a hand cut.
What makes the whole electronics system go is a plastic package the size of
my smallest fingernail -- all the programmable computer-like circuits are
inside that package (which costs about six dollars today). Getting that
package mounted on a substrate so that all the wires that lead from it can
be connected-to -- that proves to be more of a problem. The soldering
techniques required, and the fabrication of the circuit board it is
mounted on -- those tasks are beyond me today (I'm looking into options
on how to proceed). Instead I bought a completed module from a vendor;
what they do is mount the chip on a postage-stamp-sized circuit board, with
lots of pins (like the pin-headers a computer hard disk connects with).
That gets plugged into a backplane that distributes the signals to the
other parts of the system; all these things are done on a scale that the
hobbyist can work with, without special tools or techniques (though any
one task still seems a bit tedious to me).
I haven't decided where I'm going with any of this; the initial point was
to learn to connect a few peripherals to the microcontroller chip, and to
program it efficiently (it has a 16,000-character memory in that fingernail-
sized chip!)
The chip is the silabs C8051F310 ( www.silabs.com ) and it is an 8051
variant ( www.8052.com .. not a typo; apparently that's how they decided to
name that domain). The 8051 was introduced by Intel, I believe, quite a
long time ago; it is a well-known industrial chip and is still (in its
myriad of variations by many vendors) very much in use today.
technology.121.2: Earl Crabb (esoft) Tue 27 Dec 05 23:28
photos?
technology.121.3: Christopher W Hafey (chris) Fri 30 Dec 05 23:12
<response to #2>
not yet. Maybe in the spring.
HTML 4.01 Transitional validation URL for this page
CSS validation URL for this page
Solar X-rays:
Geomagnetic Field:
September 1, 2007
Copyright © 2005, 2006, 2007 Christopher W Hafey
md5sum for everything up to here: --->
... appears, below.
$ head -388 index.html | md5
eadd758f5532a436cc0c295776deb67e