The EE Compendium

 

 

The EE Compendium is relocating to a new home!


The EE Compendium

The new site has been completely redesigned for easier navigation, and contains many new categories, including more microcontroller information and an expanded projects section. Please visit the the redesigned site and update your bookmarks. The new address is: http://ee.cleversoul.com/

 

 

Randy Rasa's Engineering Projects

These are short descriptions of some of the projects I've worked on in the last few years. I wish I had pictures of all of them, but I guess you'll just have to use your imagination ...

  • Power Supply Controller (PSC) - The purpose of this product is to handle the interface between a third-party commercial power supply, external lead-acid batteries, and a host fire alarm control panel. The PSC monitors the output of the power supply, switching between it and the batteries in the event of power loss or power supply failure. The PSC also manages battery charging and testing, providing battery status reports to the host panel. It also monitors the temperature of the power supply and PSC circuitry, turning on a two-speed fan if the temperature within the enclosure rises too high. The PSC communicates to the host panel via a proprietary protocol based on the SPI synchronous serial bus. The PSC operation is managed by a Motorola 68HC705P9, using software written with the ByteCraft 6805 C compiler.

  • Remote Data Acquisition Card - This was actually two very similar products, each with different interface circuitry, but sharing identical processor circuitry and common software. The card provides either five "Class A" (4-wire) or ten "Class B" (2-wire) inputs. These inputs may be connected to conventional smoke detectors, heat detectors, pull stations, or any device that uses a contact closure to indicate an alarm condition. The card monitors these inputs with an 11-channel, 8-bit serial ADC (TI's TLC540) and a Motorola 68HC705C4 microcontroller, reporting their status back to a host fire alarm control panel using RS-485 and a proprietary serial communications library (Cimetrics 9-Bit Network). The project included modifications to the host fire alarm control panel to add control and supervision of the networked inputs, and other related features. The software on the input cards was written with the ByteCraft 6805 C compiler.

  • Display Tester - A real simple little project using an Atmel 89C1051 to test a display board consisting of a 4-digit, seven-segment LED display, driven by a MAX7219, and a few discrete LEDs and pushbuttons. I wrote the code using Hi-Tech C for the 8051.

  • Remote Annunciator - This product provides remote annunciation for a fire alarm control panel. It uses a PIC16C65 to control up to 64 LEDs and a beeper, and read inputs from up to eight switch inputs and an 8-bit DIP switch. It communicates with the fire alarm control panel using RS-485 and a proprietary serial communications library ( Cimetrics 9-Bit Network ). The project included adding networking capabilities to the existing fire alarm control panel software, as well as designing an add-on RS-485 adapter card. The software on the input cards was written with the ByteCraft MPC C compiler.

  • Vehicle Locator System - The purpose of this product was to allow the tracking of vehicles using GPS (Global Positioning Systems) satellite data and cellular phones. I designed the hardware, which consisted of a Motorola 68HC11 processor, non-volatile memory, UARTs, and a modem. I wrote the software (in C) for the system, which received data from the GPS radio, logged it to an event history buffer in non-volatile memory, and communicated with the cellular phone transceiver. The system also communicated with a remote command-and-control station, which called periodically to download event data and to determine the system's current position. The unit also contained diagnostics which allowed the system to be fully tested during manufacturing or in the field.

  • Wireless Voting System - The purpose of this project was to design a system that the customer could use to conduct voting at their annual convention. Previously, they had used a wired system, which limited them to only certain locations, and restricted the delegates freedom of movement. The system used small, inexpensive radio transceivers to communicate between several base stations and about two thousand handheld voting units. The system requirements were that the communications be fast and reliable, and that the handheld units run off of a battery. The base station used a Motorola 68HC11, and the handhelds used a Motorola 68HC705. All software was written in assembler. In addition to designing much of the hardware and all of the software, I also designed the communications protocol, both between the base station and handhelds, and between the base station and a host computer that controlled the voting session.

  • Generator Display - This was a small project that monitored the output of a gasoline-powered electrical generator, displaying the generated voltage, current, and loading on a backlit LCD. The unit also tracked and displayed the system's operating time, and stored this value in EEPROM. This project used a Signetics 87C751 microcontroller.

  • Railroad Projects - I have worked on a number of railroad-related projects, including:

    • Radio Repeater - This product was used designed to improve RF communications between the rear and front of train in places where transmissions were marginal due to interference. The unit listened for incoming messages and re-transmitted them, based on certain conditions and filters. The unit also had an LED display that could be used to monitor the ID numbers of messages received. I designed most of the hardware (built around the Motorola 68HC11), and all of the software (written in C). The C source was written to be able to run on both the target system and on a standard PC. This allowed me to write and test the software while the hardware was still being designed and built.

    • Test Receiver - This product is used in Railyard control towers to monitor End-Of-Train radio transmissions. It allows the operator to view each message as it is transmitted, or to "lock on" to a specific message and analyze it. It also allows the operator to detect malfunctioning transmitters. It uses a Motorola 68HC11 processor, with code written in C. This program was also written to run on both the target system and a PC.

    • RLM (Receiver Logic Module) - This product handles the interface between the End-Of-Train radio and the Information Module. It receives incoming messages, checks them for errors using the BCH (Bose-Chaudhur-Hocquenghem) error-detection and correction protocol, buffers the data, and sends it to the Information Module. It also handles outgoing transmissions, receiving the data from the Information Module and adding in the BCH codes.

    • Information Module - This product was designed to be a user interface that allows an engineer to control and monitor both the End-Of-Train radio and voice radio. It uses two Rockwell 6501 microcontrollers to handle the user interface and communications. I designed some of the hardware and all of the software (written in assembler).

    • RCE Tester- This project used a PC-compatible laptop computer to monitor, analyze, and test railroad RCE (Remote Control Engine) equipment. The project required the design of a modem to communicate with the RCE. The software was written in a mixture of assembler and QuickBASIC, and included a custom script language that the customer could use to write his own test procedures.

  • Frame Grabber - The goal of this project was to design a logic board, using the standard PC-AT bus, that interfaced to a small CCD camera. Under computer control, the board captured a frame from the camera, buffered it in memory, and then transferred the image either to PC memory, or to an image analysis co-processor board. I designed much of the hardware, which consisted of interface logic and PLDs (programmable logic devices), and memory. I also wrote some of the PLD logic equations, and all of the PC interface software, which was written in C and assembler, and implemented as a library that the customer could use with QuickBASIC.

  • Panel Meters - The goal of this project was to design a series of industrial panel meters that could be sold commercially. The design consisted of a Motorola 68HC11 and a group of plug-in daughterboards that implemented the various interface functions (voltage, current, temperature, power, etc.). The meter was self-configuring, adapting its operation based on the hardware that was installed. I designed most of the hardware and wrote all of the software (in C).

  • Laboratory Instrument - This product was used in the laboratory analysis of chemicals. It controlled a trays of vials, and allowed the user to extract liquid from a specific vial or sequence of vials. It used a Motorola 6802 processor and a graphical LCD, and controlled a stepper motor. It had interfaces for RS-232, RS-484, and IEE-488 The software was written in assembler.

  • Weigh Scale - This product mounted on a grain truck, and was used to monitor the feed as it was dispensed, and allow the operator to set up and deliver a series of pre-programmed sites. The unit consisted of a main logic board (run by a Rockwell 6501), an analog board that interfaced to the load cells, and a display board that controlled a custom LCD (this also had its own 6501 processor). I wrote all of the software for this product (in assembler).

  • Motor Controller - This product controlled a small AC motor, based on the fluid level in a pipe. It was run by a Microchip PIC16C54, and its code was written in assembler.

  • Avionics - I have designed various meters and display for the avionics industry, most of which communicated using the ARINC 419 and 429 serial data bus, and were controlled by Motorola 6802 and 6805 processors and microcontrollers.

    Summary:

    • I've designed hardware and software for the following processors and microcontrollers:
      • Motorola 68HC11, 68HC705xx, 6802
      • Dallas 80C320, Signetics 87C751, Atmel 89C2051
      • MicroChip PIC16Cxx
      • Rockwell 6501AQ

    • I've used the following programming languages and compilers:
      • IAR C (68HC11)
      • ByteCraft C (68HC05 and PIC)
      • Intermetrics C (68HC11)
      • Motorola PASM Assemblers
      • Avocet Assembler (6502)
      • Parallax PASM Assembler (PIC)
      • Hi-Tech C (8051)
      • Metalink Assembler (8051)
      • Borland C/C++
      • DDS Micro-C
      • Microsoft QuickBASIC
      • Microsoft MASM
      • Borland TASM
      • HTML

    • I've used the following emulators and development tools:
      • Motorola EVMs (68HC11, 68HC05)
      • American Transdata Emulator (PIC)
      • Nohau Emulator (68HC11)
      • Signetics Emulator (87C751)
      • Rockwell Emulator (6501AQ)
      • TechTools UniROM ROM Emulator
      • HiTech "DryICE" 8051 Emulator


    This page is Copyright © 1997 by Randy Rasa.
    Last updated 02-21-97.