This is one of my pick-up / put-down hobbies. I go through phases of renewed interest (often when I want a device to do a particular thing, or when a new component piques my interest) for a period then leave it for a time while I get on with something else.
Most of the devices I make are based around Microchip's PIC family of processors. These are small, standalone chips that are fully programmable and form the comtrolling element in something bigger.
The devices I use are all from the 8-bit range, which is a nice balance of (low-ish) power, low-ish) cost and ease of use. They're also the only range that's widely available in the UK:
| 16c84 |
(This is quite an old device. It's been superceded by a Flash memory versiom, 16F84. However since I have a stock of the older part, I'm using these up). Being eeprom based this is a handy device for experimenting with. The turnaround time on new software versions is negligible as I don't have to wait for the UV eprom to erase. |
| 12c508/9 or 12f683 |
Nice device for small "black box" circuits and so cheap (less than £1 each). Limited to 6 I/O pins but it doesn't need a crystal |
| 16c74 |
I've only used this beastie on a couple of projects. It is a 40 pin device with 8 on-board analog inputs (though they are only 8 bit) and a built in UART which save a few bytes of code. |
| 18f4550 |
One of the high-end microprocessors. This one has a lot of very flexible I-O features, including a USB interface that I'm starting to familiarise myself with. It can also be programmed in C which makes things easier. |
There are also some design pieces I have written.The first of these is about
some ideas for using LEDs as more than just a simple indicator in projects.
Anyway, that's enough rambling. Here are the projects, feel free to help yourself. If you do make any major improvements or have a better way of implementing something please don't keep it to yourself
Stepper Motor Controller using a 12c509. There are two versions here, one using a START/STOP button and a DIRECTION button. The other version uses RS232
12 bit 8 channel RS232 A - D convertor using a 16c84 and a AD7858 ADC. This is meant as a home/lab instrument to interface to a PC
Multi-purpose I/O Similar to the 12 bit 8 channel thing above. This one uses a 16C74A and is only 8 bit resolution, but it provides some digital inputs and outputs. There is also a 32 bit pulse counter and a 32 bit microsecond counter that gives the time interval between samples. Interface is RS232 for connection to a PC. There is also some linux software to drive this.
Small 4 channel 12bit A-D converter with an RS232 output
An updated version of the Multi-purpose I-O board. Like the original, this uses the (now obsolete, but I have some left over that I wanted to use up) 16C74A. It has multiple analog ports, which are oversampled to give 12-bit resolution. Programmable digital I-O ports, with the ability to change outputs at pre-programmed times, measure the number of input changes between readings and output square-wave tones. The board also has a 32-bit frequency counter (good to 20MHz) input, a PWM output, serial I-O - altered from the original with more functions and the ability to drive two types of motors: R/C servos or stepper motors, depending which version you choose.
A dual power supply with full voltage and current display, that sends output measurements to an RS232 link 10 times a second
A speech recorder using just 2 I.C.s - a ISD4004 recording chip and a 16c84 that controlls it via SPI