Embedded systems design
I designed quite many microcontroller-based systems.
I even built a microcontroller - hopefully soon
I'll have time to physically test it by programming it into an FPGA.
I started with the 8051 family (80C51 and 80C552), and then moved to Atmel's AVR
microcontroller family (90S2313, 90S8414, 90S8535).
Here is a list of some of these designs:
- EPROM Emulator
Meet EMU2.2 32/64, my EPROM Emulator, built around an 80C51.
It was a commercial grade design, built for both fun and for commercial
purposes.
Even though the design was pretty cool, the market management was bad, so it
was a financial failure.
Here are the schematics (PDF,
25 KB) and
the documentation (PDF, 91 KB).
- 1/1000oCelsius Resolution Thermometer (90S2313)
I designed and built this thermometer around a funny idea. As far as I know, nobody
measured temperatures this way.
Quartz crystals have a low, but non-zero temperature coefficient. On the
other hand, quartz has superb quality factor and time stability.
By measuring the thermal drift of the oscillation frequency of a
quartz crystal, one could build a thermometer with amazingly good characteristics (resolution,
accuracy, repetability/stability).
The only impediment is the need for a reference frequency generator.
In fact, the reference needs to be so good, that it raises the cost and
complexity of the initial design with a few orders of magnitude, compromising
the idea.
My solution is rather funny: the "reference" frequency can be done with another
quartz crystal, having similar, but not identical thermal
behaviour, thermally coupled with the first crystal. One can then build
a frequency meter that has the time base generated by one of the crystals, and
the input generated by the other one. The output of this frequency meter is, with a very good
approximation, only a function of temperature. Only a calibration is needed initially.
Most importantly, no internal voltage/current/frequency/etc references are
needed. Thermometer's output is only a function of the material contants of the
quartz, which are notably stable in time. Another nice feature is its (almost) all-digital design.
No sensitive analog components are needed, except for the oscillators themselves.
I was routinely measuring temperature differences of 1/1000oCelsius.
While the thermometer was sitting on my desk, it was able to thermally detect whether or not I was
sitting at my desk, at a distance of ~25cm from the sensor, by measuring variations in temperature
due to the thermal radiation emitted by my body.
- Microcontroller Network
I defined a complete set of protocols that I implemented (software and hardware)
in a microcontroller network. The users in the network could interchange commands
and data in a master-slave, half duplex link over RS232. The physical layer of
the RS232 was slightly modified to permit up to 256 devices at the same time.
The hardware implementation consisted of two microcontroller-based systems (slaves),
and a PC (master). The two slaves were based on 80C51 and 80C552. The 80C51 slave was actually an
EPROM emulator providing the program memory for the 80C552 slave.
The 80C552 slave was a complex analog interface module, with analog current/voltage inputs/outputs.
The master application (on a PC) was uploading 80C552 code in the 80C51 slave, then
making analog measurements through the 80C552 slave. The test application was measuring
transistors characteristics (both FETs and bipolars).
- Data Acquisition Systems (80C552, 80C51 and DAC08, 90S2313
and AD571, 90C8535)
- DDS (Direct Digital Synthesizer) System (90S2313)
By synthesizing the phase of a signal (generated through a DAC08), I built
a generator that could output an arbitrary shaped signal whose frequency
could be set up with a resolution better than 10-3Hz, at a frequency of up to 1 MHz.
- Other digital/analog designs include a stepper motor controller, alphanumeric LCD controllers (a
few of my microcontroller designs had alphanumeric LCD displays), etc
- Some analog designs : audio pre/power amplifiers, a low power microwave
transceiver (10GHz band, a few mW power - horns/modulation/demodulation/...), miscellaneous sensors -
optical, IR, microwaves, sound, magnetic, etc