This is the third attempt at designing an extensible device programmer and it is currently a work in progress.

EMDP4 System

Introduction

EMDP4 stands for "Extensible Multiple Device Programmer, revision 4." Most other vendors tend to call these systems "universal programmers", but I feel that the word "universal" sets the wrong level of expectation, since there are many parts which can not be programmed on a "universal prorgrammer" for a variety of reasons.

The EMDP4 consists of the following over all sub-systems:

EMDP4 Base
The EMDP4 base takes commands downloaded from a host computer via either an RS-232 serial port or via a USB 1.1 port and programs the chip in a 40-pin ZIF (Zero Insertion Force) socket or via an ICSP (In-circuit Serial Programming) connector. Power is provided via 24VDC wall transformer. Customization is done vi customization plugs. The EMDP4 can live either on a bare board with rubber feet on the bottom, or in a box enclosure.
EMDP4 Plugs
The EMDP4 is customizable via "plugs". Each plug routes the appropriate power, ground, Vpp, and signals to the appropriate pins on the 40-pin ZIF. It EMDP4 plug has a unique ID. It is also possible for the user to forgo a plug and directly install connector wires plug socket. When the user does this, it is recommended that the EMDP4 checker be used to verify that the wires are properly inserted into the correct socket holes. The following plugs are available:
EMDP4 Checker
The EMDP4 checker is used when the user uses hookup wire to wire do signal and power routing instead of a prewired plug. The EMDP4 has a 10-wire ribbon cable that plugs into the EMDP4.

Requirements and Goals

The EMDP4 requirements are:

Standard/Open/Extensible
The EMDP4 system is designed around three open (i.e. published and royalty free) standards:
EMDP4 Hardware
The hardware is published and royalty free.
EMDP4 Software
Both the host software and base/checker firmware is published and royalty free.
EMDP4 Protocol
The communication between the host base/checker is open standardized.
The EMDP4 standards are designed to easily support the addition of new programming algorithms for new devices. A new device will typically only require the addition of an inexpensive rewiring plug for a preexisting EMDP4 base. There is no "give" on these requirements.

The EMDP4 goals are:

Inexpensive
A basic system can be assembled for less than $100 (US) and program a very interesting set of devices.
Hobbyist Friendly
A new plug can be bread boarded on .1 inch perforated board. The basic EMDP4 base uses no difficult to solder surface mount parts. Commonly available parts are used through out.
No Preprogrammed Parts
I suspect most people will opt for having somebody else preprogram the microcontrollers required for each EMDP4 base. However, there should also be a path that allows people to take bare unprogrammed microcontroller and get it programmed without having to beg for some time on somebody else's programmer.
Whether or not a given EMDP4 adaptor or base meets the goals above can be a bit more subjective than requirements.

Rationale

The EMDP4 is my forth design of an extensible programmer. Neither, EMDP1 nor EMDP2 nor EMDP3 made it past the design stage

The concept behind the EMP1 was that there would be a main host programmer board (Rev. D) and a bunch of adaptors, where there would be an adaptor for each basic microcontroller family. What I discovered is that the adaptor boards cost as much as the main processor board. The reason why was because the ZIF-40 socket is actually quite expensive.

The EMDP2 basically said let's just add a microcontroller to each adaptor board. Thus, the main controller board was little more than an RS-232 level converter and and programmable voltage output power supply. Again, the adaptors were still pretty expensive, so I was not very satisfied how this design worked out.

Ultimately, I realized that adaptors should not be designed around a particular microcontroller family, but instead around a package. Thus, there should be one adaptor for all parts that come in DIP packages, one adaptor for SOIC parts, etc. Each adaptor, needs to have a smaller connector that allows the bus signals to be routed to the correct pins on the appropariate package. I call these smaller rewiring connectors "plugs".

The other realization that was hammered into me is that newer parts are coming out that can not tolerate 5 volts. Thus, the entire system had to have a bus whose voltage could be reduced. This is accomplished by having two microcontrollers in the base where the first microcontoller operates at 5 volts and it can set the operating voltage of the second microcontroller.

The EMDP3 system is designed around a 37 pin D-connector which contains the bus. The bus has ground, 2 variable supply voltages and the rest are digital data.

I ultimately decided that the 37-pin bus for the EMDP3 was not going to work out very well. Each time I looked at the cost of the system, I concluded that 37-pin bus was not really saving any costs. I ultimately decided that each connector should probably have a programmer designed around the Zero Insertion Force socket for the device. Thus, the EMDP4 is basically, a redesigned EMDP3, but with the 37-pin bus removed.


Copyright © 2003-2007 by Wayne C. Gramlich. All rights reserved.