Hardware

Typically we do circuit designs as well as design,  layout  and route printed circuit boards.  We have the capability to procure material  from various distributors. We also have the capability to install through hole and surface mounted components on boards to achieve a finished board.  Components are frequently installed on both the top and bottom of circuit boards.

The process also involves testing the finished boards.  This may include programming of any FPGA's that may be on-board as well as downloading programs to flash memory.  

In some cases, test rigs are needed to simulate inputs and outputs.

Pspice simulations are sometimes done to evaluate certain sections of a design and other simulation tools may be used to evaluate VHDL code. 

We have a number of tools available to test modules and systems.

Software

The majority of the code we write is for use in real time environments where timing is critical.  To the extent necessary, assembly code is used.  Platforms are for the most part embedded microprocessor based units.  Typically the applications are interrupt driven and do not use a 3rd party OS.  Code is compiled to run directly on the processor core.  In most cases there is specialized IO involved,  be it parallel data or serial protocol. 

Writing such real time applications requires knowledge of specialized ASIC's and other vendor specific interface modules as well as knowledge of the processor being used.  Usually this requires extensive initializations (setting up registers) and procedures to handle data transfers.  DMA transfers are often used.  A special proprietary operating system was written for our telecommunications product.

The development process typically requires the use of a debugging environment as well.   Whether an ICE or some other device such as a background mode debugger with associated debugging software is used, the process is one of evaluating performance and making adjustments to achieve optimum performance.

Sample7Other programming tasks involve desktop PC's and graphic user interfaces.  For this requirement, we use Microsoft development tools such as Visual Basic and Visual C++.  MCi subscribes the the Microsoft Developers Network subscription (MSDN Universal) and renews it annually.  Most of these applications operate in the user mode,  however we have also written driver applications that operate in the kernel mode.  We have recently switched to Microsoft Visual Studio .Net as our main development tool for windows based applications.

Some applications that we have written operate as NT style services.  These run in the background and perform a specialized service and usually do not involve a user interface.

 

 

 

Tools

Hardware:

Cadence PCB layout and capture tools (previously OrCAD)
Xilinx Foundation development tools for FPGA's
 

Software:

Microtec C code compiler for the Motorola Coldfire
Avocet  C code compilers for Zilog processors
Microsoft Visual Studio .NET and 6.0
MSDN Universal Subscription

Equipment

Hardware:

Vision Engineering Mantis Stereo Optical Inspection System
Pace Soldering/Desoldering Station
Tektronix TDS3052 DPO
HP Logic Analyzer
Fluke multimeter
Wavetek Signal Generator

Software:

 PC's running Windows 95, 98, 2000, XP and NT
Needam's EPROM programmer