Re: USB to parallel converters

From: Nate Lawson <nate_at_root.org>
Date: Mon, 21 Jun 2010 09:53:12 -0700
Message-ID: <4C1F98F8.40405@root.org>
Anders Carlsson wrote:
> While I have no practical experience of USB to parallel converters, I
> wouldn't expect much from them. Recently I bought two cheap USB to RS232
> converters: one HL-340 based and one PL-2303 based. I managed to get the
> HL-340 to speak to a serial EPROM programmer, but failed miserably to
> use both with C2N232I which was my intended use. I have looked up the
> matter and there are several factors such as choice of chipset, whether
> the adapter also have voltage level converters onboard, of course
> drivers and more. Since not even serial communication seems to be
> possible to "get right", I think you can look for a long while to find a
> USB adapter that better simulates a parallel port.

Short answer: USB/LPT adapters will not work for driving hardware.
PCI/cardbus/expresscard adapters may work, depending on their design.

The USB bus is high latency, high bandwidth. The onboard LPT port is low
latency but less available in laptops or modern PCs. The USB bus works
on a packet basis and is more like a network than port. To send a single
bit, you actually have to send ~10 bytes and transmission of those bytes
starts on a ~1 ms boundary.

If you connect a USB/LPT adapter, the host PC will send data to it over
USB and thus has the above limitations. Hobbyist hardware connected to
the LPT port depends on microsecond-accurate bit twiddling, which just
isn't possible over USB.

Beyond this, your USB/LPT adapter likely won't be compatible with the
in/out IO port programming model unless the BIOS supports this mode. I
don't know much about support for this, but usually you have to go
through the Windows kernel API and your programmer code may not support
that kind of LPT access. So even with the right adapter, your code might
not work without rewriting it.

A PCI or cardbus (PCI over external pins) adapter gets mapped into the
BIOS as if it is an onboard device. So you have more chance of success
that way.

> Then again, there may be some people with experience of the X-series
> cables, connected to modern computers via USB adapters. I know a few
> years ago it was pretty much hit and miss if you tried to wire up e.g.
> an XE1541 via a USB adapter.

Depending on the speed of the external device, you might get away with
it. An IEC device speaking the normal protocol is quite slow and the
handshaking allows the host to set the IO rate. So it may work. However,
speeder modes or parallel transfers will not work.

I created the xum1541 adapter for supporting high speed and parallel IEC
devices. What it does is transfer an entire command to the
microcontroller, which then twiddles the bits of the IEC bus at high
speed and transfers the data back over USB. This works fine.

http://www.root.org/~nate/c64/xum1541/

We're continuing work on getting a custom board made for this so those
who can't solder can have this device also. However, no ETA yet on when
it will be available.

-- 
Nate


       Message was sent through the cbm-hackers mailing list
Received on 2010-06-21 17:00:27

Archive generated by hypermail 2.2.0.