USB to Parallel Adapters for a DDS evaluation board

Biftheunderstudy

Senior member
Aug 15, 2006
375
1
81
I'm currently building a device which has 8 or so direct digital synthesizers from analog devices (AD9858 for those of you who are interested). The boards only have a parallel interface which makes talking to 8 of them at once difficult, also the software for them is a windows app only and I need it to work in Mandrake linux. The idea is that if we can use a USB to Parallel adapter for each of them and then to a USB hub it will make everything a lot easier. For one, only need one USB port. Two programming a device in Linux is a lot easier using labVIEW with USB than Parallel.

Any idea if these things:
a) work in linux
b) work for things other than printers
 

PottedMeat

Lifer
Apr 17, 2002
12,363
475
126
Why do you have to use the DDS 8 bit port - can you use a single USB microcontroller + 8 chip select lines + the serial SPI interface? Or do you need to switch frequencies very quickly?

I guess I'd check the USB-Parallel chip they use to see if they have linux drivers. I don't see why a USB-Parallel adapter for each wouldn't work as long as you have direct control over each I/O.

 

Biftheunderstudy

Senior member
Aug 15, 2006
375
1
81
Yeah, the frequency has to be able to switch quickly.

There are 8 individual DDS eval boards, each of which has a parallel port -- I need to be able to control all 8 on the fly with one piece of software.

I previously attempted a parallel control design using labVIEW but was met with stiff resistance (linux doesn't like giving permissions to parallel ports for some reason)
My current plan is to try to get them to run over USB so I can use labVIEW's built in USB tools.

The chip on the board has a series of registers which control the various functions of the device, these registers are programmed via control signals over the parallel port. The device also has a serial mode.

Right now I'm attempting to use a USB-Parallel adapter in windows using the software that came with the board. The result is that the software is looking for a com port or HEX address and the adapter has a USB controller mapped to location 0. I don't know where to go from here....further testing needed.
 

Modelworks

Lifer
Feb 22, 2007
16,240
7
76
Its really going to depend on how the boards are using the parallel interface.
If they are not doing any 'tricks' with the interface and are only using it strictly for data it should work.
The problem is that many projects that specify a parallel port often do very application specific task with the various lines.
Things like powering boards off the parallel port, using strobe lines to multiplex more devices, using the perror lines to switch logic.

What I would probably do is build my own usb to parallel interface by studying how the original software was controlling the lines.
A simple logic analyzer could be used to see whats going on. If you don't have one you can build one that would be good enough to do the job :
http://www.xs4all.nl/~jwasys/old/diy2.html

Then I would use a chip like one of the microchip pics that has usb interface on board to interface between usb and the boards.
Using one of the faster pics you could use one chip to control all 8 boards.


 

Biftheunderstudy

Senior member
Aug 15, 2006
375
1
81
From what I've read of the data sheet, none of the control lines are being used for funny business. Building a custom conversion chip is a bit out of the scope of the project..I do however have access to a logic scope. That being said, I know mostly whats being sent over each of the control lines.

My current problem is trying to find out what memory address the USB virtual printer port uses so I can tell the software where the USB port is.
 

phisrow

Golden Member
Sep 6, 2004
1,399
0
0
From what I've been able to find on the subject, your question is complicated by the fact that not all USB/parallel adapters are created equal, or even the same thing. Apparently, some USB/parallel adapters are designed to function as USB Printer devices from the perspective of the operating system. This probably makes life easier for the standard "home user with an inkjet" use case; but it means that the "parallel port" is wholly useless for devices that actually need a parallel port, not just a printer.

There are, however, said to be some adapter chips that do, or at least can, function as something closer to real parallel ports.
http://www.linux-usb.org/USB-guide/x532.html is one mention.
http://reboots.g-cipher.net/projects/lcd/index.html is an actual human's experience with the driver.

If you can get adapters using that chipset, you should be able to, at least, interact with the device at the level of the ppdev character device: http://people.redhat.com/twaugh/parport/html/ppdev.html I don't know if that is good enough for your application or not, I'm afraid. I cannot be entirely certain; but it looks as though USB parallel adapter devices do not, in any of these cases, have fixed memory addresses in the fashion of the traditional IBM PC parallel port.


You mentioned the eval boards having a serial mode: If your application allows, serial quite probably be less of a pain in terms of getting USB devices that actually work.

Hopefully some of this will help(or, at worst, explain why it can't be done).