|
Site of Jakob Selbing
[Main]
[Astronomy]
[Electronics]
[Music]
[Gallery]
[Scuba diving]
[Guestbook]
| |
Here's some of my later projects:
Interface card for Cypress' CY7C68013 USB microcontroller
This
is a rather simple project. Cypress Semiconductors manufacture a microcontroller
called CY7C68013. It is based on a 8051 processor, and has a lot of special
functions and built-in peripherals, the most interesting one being its USB
interface. I wanted to buy one of these for a bigger project, which I'm working
on with a friend of mine. This project is supposed to result in a CCD camera for
astronomical purposes. We wanted a USB interface on the camera so I decided that
using the CY7C68013 would be the easiest way. Why? Well, developing software for
the controller is VERY easy. The code is written on a PC, then downloaded to the
CY7C68013's internal 8 kB SRAM through the USB interface. No hassle with EEPROM
burners or slow Flash memory!
However there is one problem using the CY7C68013 - there is no DIP package
version available, only TQFP, SSOP and QFN. Not your first choice for homebrew hardware development exactly...
So I wanted to make a interface card
that would make it easier to connect the controller to other electronics, and
also hold some necessary components like crystal and voltage regulator.
Soldering the controller would be the critical part; you probably figured out
that these packages are designed for industrial mouting, not to be hand soldered. The TQFP package, with a mere 0.5 mm
pitch, is almost impossible to solder by hand. I once tried soldering a 64-pin
TQFP, and it wasn't easy, especially since the tin on adjacent pins tends to
melt together due to surface tension. The SSOP, with 0.64 mm pitch, is MUCH
easier to solder (even though it requires a good soldering pencil, 0.3 mm
diameter solder tin and magnifying glass). The circuit is fairly simple. It
contains the controller, a crystal with two capacitors, two LEDs with series
resistors, some decoupling capacitors, a LE33 voltage regulator, a 24C64 I2C
serial EEPROM, and a USB connector type B. I made some mistakes in the original
schematic, you might have spotted that in the image above. The only thing I had
problems with was the crystal capacitors. Their value was rather critical, so I
had to use 10 pF instead of 33 pF. General PWM
charger
This
was a project that I started mostly because I wanted something to do. Charging
NiCd and NiMH cells is rather easy to do. You just make a current flow through
the cell, in reverse direction. When about 150% of the cell capacity has flown
through the cell it is fully charged.
This
charger works with PWM, so that it outputs short pulses of current of about 1.2
Amps. This is said to make batteries better in some way. It is based on an Atmel
AT90S2313 microcontroller. A current regulator generates 1.2 Amps nominally. A
transistor in series with the regulator switches the current on and off to
accomplish the desired average current (adjustable between 5 and 1226 mA). The
charger also has a heat sensor that can be connected to the cells that are being
charged. If the cells get overheated the charger stops and waits until they have
cooled down, and then continues charging. The charging time is adjustable
between 1 and 48 hours.
By using the ADC I've written about below, I
could test my charger to see if it improved the battery's performance. Here's
a diagram that clearly shows that it actually did. It seems like the
internal resistance is decreased, and the overall capacity is increased. In this
test I used a small light bulb to discharge the battery. A slower discharge
might show further improvements. 8 bit ADC with RS-232 serial
output
For
the purpose of measuring the discharge rate of batteries, and other things, I
built this simple device. It is simply an ADC (Texas Instr. ADC0809) connected
to a PIC16C84. The PIC makes 500 conversions per seconds and outputs them
through a serial cable. I wrote some simple software in C++ that reads the data
from the serial port and plots it on the screen. It also saves the data to a
file, so that I can import it in e.g. MATLAB. Here's
an example (from the section above).
ALWAYS UNDER
CONSTRUCTION |