LPC^2.2 (Low Parts Count LPC programmer rev. 2)

Introduction
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. The component count is kept to a
minimum.

Note: This hardware is not compatible with CheapLPC nor Milk.exe. :(

Goto Rev. 1 hardware (Historical - for reference only)

Rev. 2 Schematic

Note
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. Unfortunately, most mod chips seems be built the other way.

Theory
LPC^2 uses the PC parallel port in SPP mode. The 5V <--> 3.3V conversion is done with 1K ohms series resistors to keep the cost down and do without funny schottky diodes. The excess voltage is shunted by diodes inside the 74HC244 to its 3.3V power rail. A 1K resistor is connected across the power rail to help to dissipate this current. Signals Lclk & /Lframe are buffered.

Worst case current: (5V-3.3V-0.6V)/1Kohms = 1.1mA.

On the LAD[3:0] lines, the 1K series resistor also handles the bi-directional data transfer. D3 to D6 is driven to LAD[3:0] and is buffered and fed back to the status lines (/Error,SelectIn,PaperEnd,Ack) on the parallel port. The LPC flash can override the logic level at LAD[3:0] when it is in output mode (by sinking current to ground).

Worst case current: 5V/1K = 5mA

A green LED is used as to reduce the voltage from 5V to about 3V for the programmer. This is not a real regulator and it will simply drops whatever voltages you have by 1.9V or so. The LPC flash operates between 3.0V to 3.6V.

I measured a 3.17V output on my LPC^2.2 for a 5.03V input. If the voltage is too low, use a red LED (~1.7V drop). Some people have suggested using 2 new AA batteries as a replacement for the +3.3V source. In this case, the 1K resistor and the LED can be removed.

Bill of material for programmer
QTY Part
8 1K ohms resistors (1/4W)
1 74HC244 Octal Buffer
1
0.1uF capacitor
1
47uF 10V capacitor (or higher)
1
DB-25 connector, solder cup
1
Green LED
1 16-pin header/socket

Photos

LPC^2.2 (Front)

LPC^2.2 (Back)

Links:
CheapLPC    The original LPC programmer
Cheapmod     LPC mod

History
 
Version Description DOS GUI
0.0 First release Y
0.1 LPC sync code to handle wait states on LPC bus Y
0.2 LPC^2 rev.2 hardware support Y
0.3 - Exe
0.3 - Src
Code restructured for both DOS & Win32 GUI
Win32 GUI - debug/delay/I/O port address not implemented (yet).
Y Y
0.3a - DOS
0.3a - GUI
0.3a - Src
Win32 GUI - Separate task for LPC, delay implemented, abort operation.
DOS - Minor menu structure changes, <ESC> aborts operation
Y Y

Executable
Please use userport.zip to run the following in Win32.  Setup to allow for 0x378-0x37F  I/O address access.

Debugging