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. 

  •