IEEE 1284 (parallel port) slave to USB

Hi,

i need to find a chipset that converts from parallel slave port protocol to USB. does this exist?

you may say 1284 is a dying market. but unfortunately, some ppl are still using it.

so the idea is, my PC still has the DB25 parallel port output. and this can be connected to my peripheral which offers parallel slave port on centronics connector. inside this peripheral, there is parallel-to-USB chipset that translates the IEEE 1284 data to USB.

I tried google, but mostly I find just some cables or IEEE 1284 on fpga thing... I prefer a real IC than FPGA.

if parallel-to-USB doesnt exist, then maybe parallel-to-local_bus_interface??

thanks...

Reply to
delario
Loading thread data ...

You need to clearly specify what you want to do.

For example,

1) PC with a USB port controlling a parallel printer (buy it off the shelf).

2) PC with USB port controlling some other parallel gizmo that possibly sources data (tricky - probably build it using a USB I/O chip, also watch out for latency which can kill bitbang or conversational turnaround applications)

3) PC with parellel port running USB device(s) (basically you need an embedded computer with USB host mode, and software to talk to the PC over the parallel port - possible fallback for trivial, slow tasks, use the SPI to USB host adapter and bitbang the SPI)

4) PC with parallel port acting as a USB slave (this is basically #2 only with the parallel wiring swapped around).

Reply to
cs_posting

Hmmm, I think his request was pretty clear.

Parallel to USB.

Does not exist by itself.

Creating your own using a micro with a USB host port can be done.

Microchip has a PIC24F family with a parallel port as USB, cut you need to write your own code.

Microchip has code available to get these peripheral devices working.

don

Reply to
don

ol

In which direction? And who's the boss (of the USB)? That's what he failed to specify.

Reply to
cs_posting

ocol

It is clearly your #3:

3) PC with parellel port running USB device(s) (basically you need an embedded computer with USB host mode, and software to talk to the PC over the parallel port - possible fallback for trivial, slow tasks, use the SPI to USB host adapter and bitbang the SPI)

You can do it with a single usb host chip with enough pins for parallel interface. The reasoning is questionable. This device is only useful for PC with parallel port but not usb port. Does anyone make such PC?

Reply to
linnix

i thought my example was quite clear.

anyway, to an average joe's it's like connecting PC's LPT1 port to a printer's centronics connector.

so, i'm making this 'printer' which has centronics slave connector. but inside this printer, there's chip-x that converts the ieee 1284 data coming FROM the PC to USB.

now i'd think that USB would have to be USB device, because source is PC and destination is 'printer'. but do correct me if I'm wrong...

so does chip-x exist??

thanks

Reply to
delario

delario schrieb:

Since "printer" is a device, chip-x has to be the host.

Not as a single, ready-to-use chip. You'd need something like a Freescale iMX.25 with USB host support running Linux. USB Host is very complicated and expensive.

--
Mit freundlichen Grüßen

Frank-Christian Krügel
Reply to
Frank-Christian Krügel

but

coming

PC

sorry, but I think u're missing the point.

i looked at iMX25. though it has USB host & device, how does it take the ieee 1284 data coming FROM the PC? I still need the chip-x that translates the ieee 1284 parallel data FROM the PC to USB D+/-

Reply to
delario

You connect the 1284 to the uC's general-purpose I/O pins, then program the uC to read those pins and process the data.

Depending upon the exact requirements, you may get away with a smaller uC such as a PIC24.

However you do it, you're going to need to be able to customise a USB stack. You aren't going to find a chip which will do what you want without custom firmware.

Reply to
Nobody

uC

that's alright. in fact, either freescale iMX or Atmel SAM9 will be the embedded CPU.

so let me clarify: from this uC (like PIC24) which converts the ieee 1284 parallel data from PC to USB, is the USB signal connected to the embedded CPU's USB host port? or USB device port?

personally, i'd think it's device port because the data flow is from PC to the embedded CPU. but correct me if I'm wrong, and please provide some explanations... ^_^

Reply to
delario

o

You are using usb priner, right? PC -> parallel -> uC -> usb -> printer In that case, il's usb host. If not, I have no idea what you are trying to do.

Reply to
linnix

delario schrieb:

A USB device can only respond to queries. You'll need a host port to generate USB requests.

The connections always go from USB Host (rectangular plug) to USB device (square plug).

--
Mit freundlichen Grüßen

Frank-Christian Krügel
Reply to
Frank-Christian Krügel

Maybe you should clarify your requirements. I think that we're all operating on the assumption that you want something like this:

8 data lines USB Host + control Port USB USB DB25 DB25 | | 'A' 'B' +------+ | | | +------------+ | | | +-----------+ | | v V V | iMX or | V V V | USB | | PC +----o o----------+ SAM9 or +-----------o o----+ device | | | | PIC24 | | or hub | +------+ +------------+ +-----------+

A USB device provides a device port which needs to be plugged into a host port. On any USB bus, something has to be the host, and that something is presumably your interface.

Reply to
Nobody

You are trying to reason out which is should be based on the data flow, but it doesn't work that way. Instead, there's a simple question that determines which your chip-X needs to be:

What's on the other end of the USB cable?

If the thing on the other end is a usb device, your chip-X will have to be a USB host.

If the thing on the other end is a usb host, your chip-X will have to be a USB device.

It's true that the USB host controls the bus, but that doesn't mean that the USB host has to determine when there's data available. There are many slaves that are data sources (keyboard, mice, RF digitizers, etc) - what happens is that software on the host periodically polls the device and asks "do you have anything for me?"

Reply to
cs_posting

Just to be different, here's another idea to throw into the mix.

Let's assume that your PC runs a USB-capable OS but doesn't have USB hardware for some reason. And the software you want to run will happily talk to a USB printer, if you had the ability to attach such a thing.

You could attach an ISA USB card (they do exist) or a local bus USB chip to the parallel port, arranging it with a series of multiplexers and registers (or a CPLD containing the same) to fabricate enough of a local bus to keep it happy. Or perhaps easier just use a microcontroller with USB host and suitable firmware to receive data via the parallel port.

Then write a driver for your PC's OS that registers this new interface as a USB host controller port, and does the job of translating USB host commands into parallel port writes that your microcontroller can understand. So you're simply forwarding USB packets back and forth between different formats.

The advantage of this approach is that all the complex USB host stuff is done on the PC, and effectively you just make yourself a completely functional USB port that happens to use the parallel port to pass the data.

Theo

Reply to
Theo Markettos

yes, that is the correct data flow...

I first thought that the uC will act as the USB host master and the printer will act as USB slave device.

after all, if this USB printer is connected to PC, PC will be USB host master and printer will be USB slave device.

I guess I'm wrong then?

Reply to
delario

Yes

So, the uC will be acting host on behalf of the PC.

Incorrect (uC as device) in previous message. Correct here.

Reply to
linnix

So to clarify, what I want to do is something like this:

8 data lines USB Host + control Port USB USB DB25 DB25 | | 'A' 'B' +------+ | | | +------------+ | | | +-----------+

| | v V V | chip-x | V V V | USB |

| PC +----o o----------+ uC +-----------o o----+ device |

| | | PIC24? | | SAM9 etc |

+------+ +------------+ o +-----------+

| |

Reply to
delario

actually, just wondering. would this also be possible?? even when data flow is COMING FROM PC???

8 data lines USB Dev + control Port USB USB DB25 DB25 | | 'B' 'A' +------+ | | | +-----------+ | | | +----------+ | | v V V | iMX or | V V V | USB | | PC +----o o----------+ SAM9 or +-----------o o----+ Host | | | | PIC24 | | or hub | +------+ +-----------+ +----------+
Reply to
delario

ort =A0 =A0 =A0USB USB

=A0| =A0 =A0 =A0 'B' 'A'

=A0| =A0 | =A0 =A0+----------+

=A0 =A0 =A0V =A0 V =A0 =A0| =A0 =A0USB =A0 |

=A0 Host =A0 |

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| =A0or hub =A0|

=A0 =A0 =A0 =A0 =A0 =A0 =A0+----------+

I am not sure what you are trying to accomplish here. Aftee you figure out your data flow, you can try this usb (host, device or OTG) to pin header board. There are 28 signals plus power and ground (you provide in host mode). You can use a 26 pins parallel cable (left justified), since the board can treat all grounds (13) as signal as well..

formatting link

ps: gerber files included in link, so just order the pcb and parts and happy programming.

Reply to
linnix

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.