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