Keywords: USB, LPT, parallel, parallel port, printer port, converter, adaptor
USB2LPT — overview
USB2LPT, List of successfully tested programs
This list should grow with appropriate user feedback…
Attention: Using USB2LPT with programming devices may lead
to wrong or bad programmed chips!
The reason is lengthening of the programming pulse due to
longer parallel port access emulation time. The result depends on|
If the length of programming pulse is important (e.g. for correct
programming in mass production), USB2LPT should not be used.
Furthermore, programming software should not be installed onto
too fast computers. Depending on software quality, this may lead to
too short programming pulses.
- whether the PC software or the programming device
creates the programming pulse
- whether the chip requires timely exact pulses or not.
In general, ISP chips (newer micro controllers, or JTAG interfaces),
serial EEPROMs, and flash memories are excluded.
Attention 2: Although using USB2LPT with programming devices
is obvious, it is generally not recommended.
Programing times are much too long to get ready.
At the top I measured that the GALEP software needs some minutes(!)
for programming the smallest PIC (12F508).|
PCMCIA parallel adapters do not have this disadvantage.
However, most ExpressCard adapter won't work.
There is also a list of unsuccessfully tested applications:
- AVRDUDE (Command-line driven programmer for Atmel AVR, ATmega)
In most cases you should use
-P lpt1 for specifying port address,
even when Windows XP' device manager lies and says „LPT3“.
AVRDUDE uses only 3 fixed port addresses for the names:
Speed: about 5 % (ATmega16), 16 IN operations per bit
lpt1 = 0x378
lpt2 = 0x278
lpt3 = 0x3BC
(Freeware programmer esp. for PIC, ATmega, serial EEPROMs)
- The INI file must be modified to get PonyProg to work: change „AutoDetectPorts=NO“!
- Xilinx iMPACT (JTAG programmer esp. for Xilinx CPLD and FPGA)
- Built-in automatic port detection fails, therefore iMPACT needs the following environment variables:
Where can I set environment variables under 2k/XP?
set XIL_IMPACT_ENV_LPT_BASE_ADDRESS=378 (according to setting of USB2LPT in Device Manager)
set XIL_IMPACT_ENV_LPT_ECP_ADDRESS=778 (always LPT_BASE + 400h)
Start→Settings→Control Panel→System→Enhanced(?)→Environment variables
- ispVM System (use new driver), for ispLSI1016E (CPLD)
same performance as for true parallel port
- ispLEVER (ispVM system, from
Lattice), good performance!
- All of (my)
h#s programs (of course!)
- Willem Eprom 0.97ja
Report by Paul Baumann (translated):
In Device Manager, properties for USB2LPT, tab “Emulation”,
groupbox “Redirection”, all three checkmarks must be set.
And LPT enhancement set to EPP 1.9
I think, the checkmark at “Debug Register” is sufficient,
and presumably SPP, if ECR is set to „unidirectional“.
(ECR default setting when shipped is „bidirectional“ = PS/2 Mode.)
- SP12 (Programmer for Atmel AVR,
- PIC programmer software from www.sprut.de
- Antenna analyzer by(?) Gerd Koetter (see here)
- MSP430 programming via msp430-jtag
- Discolitez Deluxe32 – Note also:
- There is a plugin
available for normal USB→printer adapters that works for 8 outputs.
- For 32 outputs, there is a much-easier-to-use DeluxeUSB solution.
- GALEP-4 (GALEP-3 not tested),
but only with this patch, but not recommended because ultra-slow
- DataIO 2700 with acceptable 8× more time.
Follow link to see what to do more.
- Xeltek SuperPro Z, it is not very fast, reading a 2732 takes about 20 seconds, while reading a 27C020 takes a few minutes…
Environment: Windows 2000 under VM-Ware's Fusion running on MacBook Pro dual processor, allocated 500 MB RAM for W2k.
- Debug Register Trap ON (without this you get a 'Communications Error')
- Read_Port_Uchar… doesn't matter
- Use write-back for Out… doesn't matter
- Synfox frequency synthesizer via I²C
Environment:Win XP in Parallels Desktop 3.0 Virtual Machine on Mac OSX 10.5.7 on MacBook Pro
- Linrad release 3.15, for radio amateurs, see here
- PowerSDR and SDR-1000 for radio amateurs
Low-Speed is fully sufficient for this application!
One amateur has posted
problems with crystal-less version 1.6
and populated the 12000 kHz crystal with 2x 22 pF 0603 capacitors,
flashed the 1.5 firmware and was happy.
New (for Win64): A replacement PortTalk.dll
is available that redirects I/O to USB2LPT while that's still not working
on driver (i.e. universal Ring0) level.
This very simple DLL can be seen as a reference implementation for the
USB2LPT DeviceIoControl API.
- Melexis TH7122 and MLX71122 (software settings: LPT2, 0x278,
reported by Jon GrosJean <jgrosjean_at_ieee.org>)
- Wild GIF12 (Leica card reader)
- Analog Devices: AD9834.exe, the demo program for their DDS generator.
Note that this stupid program requires an old-style parallel port.
PCI and PCIexpress cards don't work, and USB2LPT doesn't get detected.
In both cases, strange error messages occur.
Moreover, this program requires “.” (dot) as decimal delimiter,
otherwise, much-more strange behaviour and error messages occur.
I have written a (much more improved)