Embedded Systems...
Doing embedded systems development? Our
consultants have years of experience in real-time application development,
microprocessor-based hardware development (Intel, Motorola, Hitachi), analog
hardware development, EED/CAD software (Protel, OrCAD), and in assembly and C
programming. If you are looking for a consultant that understands the whole
picture all the way from the hardware, through the device-drivers up to the
application development we may be able to help you out.

Past embedded projects
In-house hardware design of a LS/FS/HS USB Protocol
Analyzer. Logic design in Altera Quartus II 7.1. The hardware utilizes a
Cyclone II FPGA which receives USB link data via an NXP ISP1505 ULPI-compliant
USB PHY. The FPGA encodes the data before it is buffered in an SDR SDRAM. The
data is then sent to the Host PC via a Cypress FX2LP USB Controller for further
analysis. PCB Capture/Layout using Altium Designer. Signal Integrity, EMC/EMI,
Prototype assembly, board bring-up, manufacturing etc. Technology: Digital FPGA
Design, SDRAM Controller, USB. Environment: Quartus II, Altium Designer,
Modelsim, Oscilloscope, Logic Analyzer, Spectrum Analyzer etc.
Designed and implemented a SAS driver for the LSI
SAS 1064 Controller on the Nucleus RTOS. Implemented application-level API that
included all standard SCSI commands. Supports dual-port SAS drives. Implemented
SATA over SAS on the controller via STP (SATA Tunneling Protocol). Technology:
C/C++, Nucleus RTOS. Environment: Mentor Graphics Edge debugger.
Design and implementation of a PIC-compatible RISC
CPU IP Core described here. Designed in an
datapath-controller architecture. Implemented in Verilog. Environment: Altera
Quartus II 6.0, Mentor Graphics Modelsim 6.0c.
Texas Instruments TMS320-based Signal Processing
Programming. Signal conditioning from industrial sensors. Technology:
C/Assembly. Environment: TI Code Composer.
Designed and implemented ATA disk drivers for the
Nucleus RTOS. Supported both ATA and Vendor-specific commands. Technology:
C/C++, Nucleus RTOS. Environment: Mentor Graphics Edge debugger
Specification, design and implementation of a BSP
(Board Support Package) for a custom CPU board using the Atmel AT91RM9200
ARM-based micro-controller. The BSP included device drivers for five on-board
four-channel Oxford Semiconductor OX16C954 UARTs as well as drivers
for various on-board peripherals. Brought up the CPU board with the use of
logic analyzers and oscilloscope. Made various prototype hardware patches.
Technology: ARM Assembly, C/C++, Nucleus RTOS. Environment: Mentor
Graphics Edge debugger, Oscilloscopes, logic analyzers.
Hardware design of the PCI Dump Switch Card
described here: http://www.summitsoftconsulting.com/DumpSwitchCard.htm.
Analog and Digital circuit design. State machine implementation using both
discrete gates as well as a 16V8 PLD. Used WinCUPL to implement the PLD state
machine code. Schematic and layout work was done in Protel. Prototype assembly.
Technology: Analog/Digital design, PCI-bus. Environment: Protel, Oscilloscopes,
WinCUPL.
Design and development of a network stack for the
Nucleus embedded RTOS. Also developed several client and server applications
over the network stack that allowed an embedded application to communicate with
various WIN32 services provided by a PC on the other side of a USB link.
Technology: USB, Networking. Environment: Visual C++, Mentor Graphics CodeLAB.
Hardware and software design of an USB-to-telephone
converter. Used for interfacing telephones to standard PCs via USB port.
Hardware design, electronics schematics, PCB layout and prototype building.
Used DirectSound and DirectInput for low-latency streaming sound and control.
Used Microsoft TAPI for call-control in test applications. Technology: USB,
Electronics CAD applications (Protel), COM. Environment: Visual C++,
oscilloscopes and other normal HW development tools.
Development of a Windows CE application in VB/C++
which was used for tracking time and expenses on Palm and Handheld PCs. ActiveX
components were developed in ATL. Database programming via ADO on CE and PC
platform. Synchronization of databases between the Windows CE device and the
desktop platform. Technology: C++/ATL, ActiveX, COM, VB, Environment: Visual
Basic, Visual C++, Windows CE 2.0.
Design and development of an embedded Micro
controller system. Design and implementation of a pre-emptive real-time kernel
for it. (Round robin scheduling, pre-emptive time slicing, Semaphores, msg
queues, timers and more). Design and development of a multithreaded real-time
application for the device. HW Technology: Flash memories, USB controller,
UARTs, Hitachi H8 CPU, PLDs, emulators and Logic Analyzers. SW Technology:
Operating system implementation, real-time programming.
Windows CE WIN32 application development for an
embedded medical device. Low-level Windows CE system programming of flash
memories, Real time clock and other system functions. Technology: Microsoft
Windows CE 2.0. Environment: Microsoft Windows CE Embedded Toolkit, C++.
Hardware/software development of a distributed
multiprocessor system consisting of 15 CPU boards that controlled an automatic
paper testing system. This system communicated with a data analysis system
implemented in Delphi 2.0 under Windows NT. Measured data was stored in a MS
SQL-server 6.5 or Borland Paradox. Technology: Programming in a real-time
operating system and direct to the hardware in C and Assembler. Emulators and
Logic analyzers.
System and application programming of a Windows CE
based portable medical data acquisition device. Subprojects included: 1)
Specification and development of Windows CE device drivers for data
acquisition, 2) Windows sockets communication over infrared link (IrDa), 3)
Application programming using WIN32API, Visual C++ and MFC for Windows CE.
Environment: Windows CE, C, C++, Embedded toolkit for VC++.
Microcomputer design and development of an embedded
DC-motor controller. The motor controller was based on a Intel 80196CA CPU
which controlled the position and speed of the DC-motor. Technology: A mixed
environment with a real-time operating system and direct programming of the
hardware in C and Assembler. (IAR and O´Tool). Emulators, debuggers and logic
analyzers.
Development of a Logical Analyzer targeted to run in
MS-DOS. The application was used as the interface for a logic analyzer, which
sampled data from a microprocessor system. The communication with the sampling
hardware took place via a parallel ISA interface board. Functions for
disassembling sampled data (Motorola 6800 format) and for searching for data
pattern as well as trigging sampling at predefined data pattern were
implemented. Technology: MS-DOS, Borland Pascal.
|