Typical 68HC11 project
A digital readout for machine tool encoders was completely redesigned from the ground up. The software planning, architecture, and implementation was done completely by Mib Software using the desired feature set specified by the customer. The user interface, key sequences, and the table driven code implementation were all done by Mib Software for a customer 1500 miles away.
The end unit interfaces to quadrature encoder "scales" which measure up to three axes of displacement, with standard resolutions of .0001 inches. Custom resolutions and rotary (angular) display are programmable from the front panel. The CPU is Motorola 68HC11, with 64K of external EPROM and 32K of RAM. The membrane keypanel is used to allow reliable operation around metal chips and shavings present in machine shops.
The display is high-readability LED, driven from latches and row drivers fed from 68HC11
SPI output. RS232 output and input (for remote operation) is provided as a standard interface. It is also used for system test and debugging. Configuration at time of manufacture is performed from the front panel or through RS232 interface.
The software (except for time-critical interrupt service routines) source is in C. A completely functional prototype was constructed for demonstration and proof of concept in Windows. Here is the screen shot, which closely matches the color scheme of the final unit:
There are several similar front panels also supported. The overlaid arrows at the bottom of the screen are custom controls which are used to simulate axis movement when not connected to hardware.
Cross platform prototyping for embedded systems
Cross-platform prototyping is a powerful technique which allows the use of better development and debugging tools, as well as demonstration of hardware alternatives which do not currently exist. In this case, the Windows software can function as a keyboard replacement, allowing automated test software to verify code changes and updates - the "test" menu. Specific features and bugs can be noted with the "Annotation" feature - which is convenient for "marking your place" when operating within one of perhaps one hundred individual prompts and screens of the user interface.
As the end of the project was nearing, it was apparent that the remaining features would not fit in the available memory. A complete code review was performed to determine where savings could be realized. This resulted in successfully fitting all requested features in the required space without resorting to complex EPROM bank switching. (Although some on-the-fly switching of internal HC11 registers is performed to use a 32K ROM and a 64K EPROM in the same 68HC11 16 bit address map.) One major savings was replacing the standard C floating point modules (for sin/cos/atan which were needed for features) linked in by the compiler. These were replaced with versions that had higher accuracy and smaller footprints - saving several K of memory.
Contact Mib Software if you are interested in discussing 68HC11 projects or development and use of C/Windows prototypes for embedded systems.
Up to Education and Experience
Up to Mib Software home page
You are reading from the Mib Software Pages
Copyright 1997-2002, Forrest J. Cavalier III, Mib Software
RR4 Box 4110 Saylorsburg PA 18353
Voice: 570 992 8824