LPC^2 stands for Low Parts Count LPC programmer. It is a programming cable connected between a
PC parallel port and a PCB containing a LPC flash SST49LF020. There are no PCB to make and
difficult components to find. It would even let you reuse the PCB containing the LPC flash on the
Note: This hardware is not compatible with CheapLPC nor Milk.exe. :(
goto LPC^2 Rev 2
Rev. 1 Schematic
Note: This version only work with some PC. Use Rev. 2 for better compatibility.
There are 2 versions of the schematic depending on the connector gender
on your PCB. It turns out that
the physically wiring for a male and female IDC (Insulation Displacement Connector) are different. The
odd pins and even pins are swapped !!
Programming cable schematic is for female header on your LPC PCB (untested)
The LPC PCB is wired up with the schematic like Cheapmod. I have added a 0.1uF across the +3.3V and Gnd for decoupling the power.
I personally prefer to have the female connector on the motherboard and male connector on the daughter card. When the daughter
card is not in place, there are less chances of shorting out pins. It is also a bit cheaper (or easier) this way as the male version of the
IDC is a lot more expensive and harder to find. Unfortunately, most mod chips seems be built the other way.
LPC^2 uses the PC parallel port in SPP mode. The signals /Init, /Select, /AutoFd, /Stb are used as bi-directional signal for driving
the LDA[3:0] data lines while D[2:0] are used for driving the control signals. Since Lclk is driven by a push-pull signal (D0), it
should be fast enough without having to add a couple of inverters in series to clean up the clock edges.
The 5V <--> 3.3V conversion is done with 470 ohms series resistors
to keep the cost down and do without the funny schottky diodes.
The excess voltage is shunted by diodes inside the flash to its power rail. I measured 0.425mA on the 3 control lines on mine.
Worst case current: (5V-3.3V-0.6V)/470 ohms = 2.12mA.
The current on LDA[3:0] lines are even less. In theory you could remove
them, but I have decided to leave the 470 ohms in place just
in case the PC parallel port is incompatible with LPC^2. Afterall a PC motherboard and LPC flash are a lot more expensive to replace
than the cost of 4 extra resistors.
Bill of material for programming cable
|7||470 ohms resistors (1/4W)|
|3"||16 conductors Ribbon cable|
||16 conductor IDC connector|
||Heat shrink tubing 1/16"|
||DB-25 Male connector, solder cup|
||3.3V regulator or supply|
Bill of material for mod chip PCB
||SST 49LF020 (non-'A' version)|
||32-pin PLCC socket|
||16 pin header|
Useful construction tips:
LPC^2 programming cable and LPC PCB
Note: Green heat shrink tubing - 3.3V regulator (LM1117-3.3V SOT223 surface mount part)
LPC^2 programming cable and LPC PCB.
LPC PCB installed.
CheapLPC The original LPC programmer
Cheapmod LPC mod
Rev 0.0 First release
Rev 0.1 LPC sync code to handle wait states on LPC bus
C source code for MSDOS (rev 0.0)
C source code for MSDOS (rev 0.1)
This is for running in DOS or Win95/Win98 DOS shell. (Not compatible with WinNT/2000/XP)
MS DOS Executable (rev 0.0)
MS DOS Executable (rev 0.1)