Parallel port replacement??

I have test gadgets built over the years that interface via the parallel port. Addressed at 0x378. Printer ports are going away. Is there an adapter that plugs into usb to make 'em work again? I have three usb printer adapters that install as printer devices. Can't find any way to access them. Have another that says thinks it's lpt2, but can't access it via 0x278.

Any affordable device that actually emulates a real hardware parallel port? Or drivers to let me read/write the adapters I already have via VB6. Been googling for days without success.

Thanks, mike

Reply to
spamme9
Loading thread data ...

On 03/01/2009 03:34 AM, spamme9 sent:

Hello Mike:

Is the computer a laptop/notebook, desktop or otherwise?

Pete

--
1PW  @?6A62?FEH9:DE=6o2@=]4@> [r4o7t]
Reply to
1PW

All of the above. If it makes a difference, I'll take what I can get. Windows 2000, Visual Basic 6 is my favorite operating/development system for this kind of stuff.

Reply to
spamme9

No. The USB-parallel adapters generally work okay to connect to a parallel printer but you're likely out of luck if you've been doing bit-level access, particularly if there are any timing constraints.

You need a real hardware port. There are adapter cards for ISA- and PCI- bus desktops and PCMCIA ("PC Card") adapters for laptops that have a good chance of working (the PCI almost certain, PCMCIA more chancy).

Another option, especially if these are unique gadgets (or you otherwise have access to the full IDS) is to roll your own adapter, USB to microcontroller (or possibly USB to 232 converter to UART to microcontroller), and let the micro handle the parallel data transfer.

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

These work with bitbashing and will drive a JTAG interface, but very slowly... (1/100) so may suit. Most/all commercial USB to parallel won't/can't support bit bashing/bidirectional stuff. Alternative is to buy a PCI card that supports LEGACY addressing. That may work as well....

Reply to
TTman

t?

Not really the main reason I am answering: To a limited degree, if your programs are MSDOS, you can use DOSEMU under Linux to do the printer port stuff. You have to set the configuration to not spool the printer to do it.

The main reason: You can also use the serial port to do some of the same sort of things with a little extra hardware. There is a fairly simple trick that I have used in the past for this sort of problem.

You need a one shot chip a flip flop and an NAND.

Level converted RS-232 signal -----+------------------ ! ! ! ---- ! ---- -O!TRIG! --!D Q!---Output bit ! !--+----------!> ! ---- ! ---- OS ! D-FF ! ------------------------------ ! ! ------ +--------------! NAND ! ! ! !------ +--------------! ! ! ! ------ ! ! ---- ! ------ ---O!TRIG! -----! NAND ! To NAND invert ! !--- ! !------ and level ---- ! ----! ! shifter ! ------ ! ------ ---! NAND ! ! ! !---- Input bit------! ! ------

You send 0xFF and 0x00 to set and clear the flip-flop and watch the received for the middle bit of the received byte.

It works well for simple CD4000 series logic things. You can take the power for the circuit from the RS-232 hand shake lines. I have a more complex version that does many bit in and out but there is no way I am going to be able to ASCII art it. The more complex version decodes to shift bits into a shift reg and cause a latch and combines the multiple inputs with a mux.

Reply to
MooseFET

Most wireless "print server" devices have parallel ports.

So it goes without saying that you could easily take an old computer and simply make a Linux based, net secure (linux, of course), file and print server out of it, and put it on your wired local network. There are mini PC cases out there that would be perfect for such stuff..

Reply to
StickThatInYourPipeAndSmokeIt

eBay search on "pci printer card" returns 131 auctions. As little as $10. Bob

Reply to
Bob Engelhardt

Its not the hardware that is blocking you, it is most likely the OS and the USB protocol. 2000, Xp, Vista all deny low level bus access. There are workarounds available for bit bashing , but as you have found, most card drivers are "virtual" and do not allow access to the bus. USB does have a low level hardware IO scheme for bit banging but it is rarely accessed.

Try making a adapter by using AVR USB by Ojective Development corp or go to serial using something like ELtima's "Advanced Serial Port" drivers and a USB to 232 adapter.

Steve

Reply to
osr

LPT2 is not always 0x278. But the main problem is probably the OS restriction on direct port access.

If you have a "real" parallel port, you might get the software to work under a Windows OS by using

formatting link
"DosBox" may also help.

But it might be a real challenge to get a USB virtual port to work with your gadgets. If they are your own design, then you can probably make an adapter using a USB PIC, which is probably easiest to set up as a virtual serial port. You will need to modify your software, but maybe keep the hardware intact.

Paul

Reply to
Paul E. Schoen

Hello Mike:

For your desktop computers with unused PCI card slots:

HTH

Pete

--
1PW  @?6A62?FEH9:DE=6o2@=]4@> [r4o7t]
Reply to
1PW

A cheap network print server?

Reply to
ingvald44

Thanks, guys, for the input.

But I really did ask the question I wanted answered. I have lots of options to buy hardware. I know how to access the parallel port addresses. Soon, I just won't have the port addresses to access.

What I want is a simple, cheap, universal solution that works on whatever I plug it into...like the parallel port did.

A usb/parallel dongle IS a USB-enabled processor. It knows how to address its ports. The driver can make it do that. It's just the undocumented windows driver that's in the way. I was hoping someone had input on how to hack the driver to give me access to that capability. Surely I'm not the only one wanting this capability. Learning a little, or a lot, about the usb port couldn't hurt. I don't mind breaking the windows usb printer capability to achieve this.

mike

Reply to
spamme9

On two related subjects...

  1. I've been using inpout32.dll, which can be found easily online. It's a short driver allowing user level port access.

  1. What is the bus speed of a PCI parallel port? For instance, this computer has no ISA bridge; everything is PCI or higher, including LPT1, COM1 and COM2. What is the ultimate speed of this type of port? Is it still 8MHz (or less) as it was on the ISA bus?

Also, since I'm running this in Windows, how do I know how anything is synchronized, or even serialized? (I have only one processor core, so I would assume it's serialized; I don't know what multitasking will do with it though.) If the port does its bit-bashing at 8MHz, then when the driver says "OUT DX,AL", the processor is going to be waiting a couple thousand cycles while the I/O responds. Does it wait and perform other tasks in the mean time? Does it just WAIT? Does it go into a series of caches, filtering down, in order somehow (not just per port, but across ports, since entering data on 378h, then latching it on 37Ah does appear to be working correctly), eventually arriving at the port hardware? It eventually must wait on recieved data (in order, i.e. at least a full 500ns later) when input is requested. How does it handle that?

Now, I'm only poking a few thousand bits with my little parallel port program, so speed is not an issue, but that of course is beside the point -- I wanna know!

Tim

--
Deep Friar: a very philosophical monk.
Website: http://webpages.charter.net/dawill/tmoranwms

"spamme9"  wrote in message 
news:ppuql.350$gm6.150@nwrddc02.gnilink.net...
>I have test gadgets built over the years that interface via the
> parallel port.  Addressed at 0x378.  Printer ports are going away.
> Is there an adapter that plugs into usb to make \'em work
> again?
> I have three usb printer adapters that install as printer
> devices.  Can\'t find any way to access them.
> Have another that says thinks it\'s lpt2, but can\'t access it via 0x278.
>
> Any affordable device that actually emulates a real hardware parallel 
> port?
> Or drivers to let me read/write the adapters I already have via VB6.
> Been googling for days without success.
>
> Thanks, mike
Reply to
Tim Williams

a real hardware parallel port, or a virtual machine.

do you have the source for your PC software? it seems to me you will need to switch to using the parallel port access method provided by windows there should be some way to ask for the pins to be toggled and read etc...

Reply to
Jasen Betts

The FTDI232BL usb uart chip can also be used for general-purpose I/O

12 I/O lines IIRC. may be worth considering.
Reply to
Jasen Betts

For many applications that used the parallel port, a USB parallel port solution simply will not work. Not an undocumented driver issue, not hackable, not possible. The packetized nature of USB and its non- deterministic timing mean that things like, e.g., a PROM burner that depended on precise signal timing between a host and device just will not function on the other side of a USB port.

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

Some place along the line code was inserted in window's interpreter to intercept mov dx,AL if a permission semiphore was not set someplace else. Details on how that is defeated are very sparse. But since the ISA bus is no longer there, and everything goes through bridge chips or USB host chips, all the old IN and OUT commands are pretty much meaningless. You have to be like a GOLD level microsoft developer club member to even start to get the data on how to do that, plus be a member of the PCI bus alliance or whatever. So unless you buy a completed IO card from Computer Measurrments or National Instruments or the like, you are up a creek.

With the VISTA compliant security stuff being added to Windows drivers, attempts to hack the bus, if detected , with a non approved driver or hardware can result in system slowdown or shutdown. This was conceived as a form of content protection for the greedy Hollywood/Nashville entertainment types. This level of security is even supposed to go up the video monitor chain with digital video packets. Its cost the board companies 10's if not 100s of millions of dollars to upgrade and get their drivers/hardware approved for Vista. Vista hardware is supposed to be designed with no active data traces on the outsides of the PCI cards to prevent content hujacking.

Self coded, Low Cost, Real time control on a non linux PC platform with controlled latency is, sadly, pretty much dead, unless you just pass data to a external processor. I don't know how to do it in Linux.

So find your self a x86 based PC104 form factor board that supports legacy tools, if you read the ads in Circuit Cellar, they are

200-400$ or so in Q1. Let me know if you find a easy to use one as I still have my DOS tools.

THANK YOU, Mr Gates. (read that very sarcastically)

Steve Roberts

Reply to
osr

Yes.

Mmm... not really. The Microsoft DDKs are available freely, as is the USB spec. The "official" source for the PCI spec requires being a member (stupid), although there are plenty of unofficial copies floating around, and books that are little more than a re-hashing of it. (You also do need to start ponying up money if you want to get your drivers digitally signed by Microsoft or use the USB logo.)

I suppose there's some truth to that, but in 2009 to suggest that using a printer port under a heavyweight OS like Windows for bit-banging I/O in a potentially time-sensitive manner is just a poor solution anyway.

It does. HDCP is alive and well these days -- Vista won't playback, e.g., Blu-Ray movies at full resolution without this sort of "end to end" encryption.

HDCP is a superset of HDMI, but the particulars of it are proprietary (although many unofficial sources have most pieces of it avaialable, and there are "HDCP strippers" readily available too).

That's a bit of an exaggeration... If you're just doing a little I/O board, you're talking some thousands of dollars... might exceed $10k if you haven't already thoroughly debugged it and need to go through multiple testing cycles. True, video boards are going to be more -- probably five digits.

It's dead because it's really not such a hot idea to take a 3GHz CPU that can only run that fast due to massive pipelining and caching and then try to use it to, e.g., crank out a serial bitstream at, e.g., 1Mbps with tight-timing -- it makes much more sense to add some more hardware, perhaps a processor, etc. to do that. Gates are almost free these days!

---Joel

Reply to
Joel Koltner

These have parallel ports. Nice item too. Perfect for the task even!

formatting link

Reply to
Archimedes' Lever

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.