Maker Pro
Maker Pro

USB interface design

R

Richard Hosking

Jan 1, 1970
0
I am looking to design a USB interface with the following specs

controller for low level control of downstream devices
Free/cheap software/hardware to program controller
I/O 3 8 bit ports or thereabouts
No hubs or other peripherals required
Cheap/freely available controller in small volumes, though hardware
cost is less important than ease of realization, as volumes will be
low.
Controller flash programmable

I have no particular allegiance to any manufacturer, but have used Atmel
micros in the past for several projects. I use Linux tools now for most
of my work, though this is non electronic applications and is not
mission critical. I am not yet up to speed with the PC side programming,
though I guess I can learn if this is not too complex.
Multichip solutions are not out of the question, but one chip would be
better.

Anyone have any ideas as to the best solution to fit these parameters?
Is this likely to be beyond hobbyist level capabilities?

Thanks
Richard
 
R

Roger Hamlett

Jan 1, 1970
0
Richard Hosking said:
I am looking to design a USB interface with the following specs

controller for low level control of downstream devices
Free/cheap software/hardware to program controller
I/O 3 8 bit ports or thereabouts
No hubs or other peripherals required
Cheap/freely available controller in small volumes, though hardware
cost is less important than ease of realization, as volumes will be
low.
Controller flash programmable

I have no particular allegiance to any manufacturer, but have used Atmel
micros in the past for several projects. I use Linux tools now for most
of my work, though this is non electronic applications and is not
mission critical. I am not yet up to speed with the PC side programming,
though I guess I can learn if this is not too complex.
Multichip solutions are not out of the question, but one chip would be
better.

Anyone have any ideas as to the best solution to fit these parameters?
Is this likely to be beyond hobbyist level capabilities?
If you are talking about a smart USB controller, I'm afraid the answer is
'forget it'.
The cheapest simplest solution to this, would be one of the minature
'matchbox' PC units.
The problem is that a USB controller (host), has to do all the control of
the slave units. This involves having a USB controller, USB 'stack', and
then the device drivers for every device. You are talking probably
something like 20 man-years of code to write this for a reasonable range
of devices...
If instead you are just talking a 'slave' device, then the easiest
solution, is something like one of the FTDI parallel modules, talking to a
micro.

Best Wishes
 
R

Richard Hosking

Jan 1, 1970
0
This looks ideal - no sense reinventing the wheel. Also has driversfor
Linux which I want. Has anyone had any experience with this module?

Thanks
Richard
 
R

Richard Hosking

Jan 1, 1970
0
It wouldnt be easy I suspect - depends on your expertise.
It looks like the intricacies of USB mean that it will be encessary to
use some prearranged system. I did a DDS board with the AD9854 - it
looks the FDTI 245BM could drive that direct as there was no micro on
board and it needed 8 bits of data. It did need a fair bit of
initialization though. I have been trying to write a Linux driver
program for this board - making slow progress

Richard
 
C

colin

Jan 1, 1970
0
Hal Murray said:
Is this what you are looking for?
http://www.dontronics.com/giga.html

--
The suespammers.org mail server is located in California. So are all my
other mailboxes. Please do not send unsolicited bulk e-mail or unsolicited
commercial e-mail to my suespammers.org address or any of my other addresses.
These are my opinions, not necessarily my employer's. I hate spam.

looks good, i think i might end up using something like this, there was an
articale in electronics world some time ago with similar sort of device dont
know if it was the same.

anyone know what type of cable is used for usb ? is it utp etc, or similar ?

i realy want to use one of those advanced programable frequency synthesizers
but programing them means an on board micro or at least shift registers/ dip
switches etc wich i cba with just atm, .. im thinking maybe this device
would let me do it but wld it be particularly easy ?

or is there a realy realy simple micro dev system or other even means ?

Colin =^.^=
 
H

Hal Murray

Jan 1, 1970
0
http://www.dontronics.com/giga.html
Has anyone had any experience with this module?

Only second hand. It worked fine.

It's setup to look like a serial port so standard USB/serial
drivers are all you need. I assume there is another layer
of documentation telling you the magic strings to read/write
the pins.
 
H

Hal Murray

Jan 1, 1970
0
anyone know what type of cable is used for usb ? is it utp etc, or similar ?

It's "USB" cable. I've never seen the connectors available for
do-it-yourself use. (I haven't looked very hard.) The cable itself
is pwr, gnd, and a twisted pair for data. Shielded.

Ask google. You will get many hits for buyint the cables
online.

Beware. There are "A" and "B" connectors. A for the host end
and B for the device end. (Cameras often use mini-B)

i realy want to use one of those advanced programable frequency synthesizers
but programing them means an on board micro or at least shift registers/ dip
switches etc wich i cba with just atm, .. im thinking maybe this device
would let me do it but wld it be particularly easy ?

You get 24 GPIO pins. You can wiggle them any way you want. Maybe
not very fast.
 
C

colin

Jan 1, 1970
0
cool, im curently managing to avoid using a counter in my pll to generate
two 30mhz (aprox) signals that are 32khz apart, by comparing the beat
frequency and comparing this to an 32khz signal from a crystal oscillator
rather than dividing them both by some long but fairly close binary number.
luckily i found that i cld get two 30 mhz crystal oscilators close enough to
pull into lock. (using a 10m in 3rd overtone and selecting from a bag of 10)
but i need <1ps resolution averaged over a few seconds. main obstacle atm
seems to be system noise/interference in other parts of the ciruit.

i was looking at using the sa7025, the AD9854 looks like it does a lot more
then i need, i think all it needs is the 2 numbers to divide from and the
prescaler etc not hard to work out, but the hard part would be feeding those
numbers in, i did think about using a hanfdfull of shift registers and loads
of dip switches lol, but if it was simply a case of puting them into a file
and copying it to say com3 wld be pretty straight forward.

maybe i shld get a micro development system but wld take quite a while to
chose an efective one and get up to speed on it.

Colin =^.^=
 
H

Hal Murray

Jan 1, 1970
0
maybe i shld get a micro development system but wld take quite a while to
chose an efective one and get up to speed on it.

Microchip has a starter setup for $36. "PIC Kit"
(Search for PICKit at Digikey.)
It only covers a few of their small parts, but it's a great
way to get started.

Atmel's STK500 is $79. Covers many/most of their AVR line.

I haven't tried their fancy compile/debug options. I use
raw assembler level and a scope or LEDs for debugging.
 
R

Richard Hosking

Jan 1, 1970
0
Further to this post
After a bit of research (thanks for the replies), I have firmed up the
specs a bit

I want a fairly fast data rate (20MBit/S would be ideal though the
standard USB 1 datarate of 12 MBit/S wouild be acceptable)
Data format will be isochronous, with the peripheral providing data to
the USB interface in serial format
Also need a bit of micro capability to initialize a peripheral - I guess
this could be done via the interface
The FDTI chips look like a good choice for simplicity of use except for
a lower datarate and no micro
Another suggestion was the TI TUSB3210 but no free tools
Is there any device with cheap/free tools like the Atmel AVR series yet?
All the Atmel devices have lots of peripherals I dont need
I guess most users would be professional developers..

Richard
 
H

hamilton

Jan 1, 1970
0
Richard said:
Further to this post
After a bit of research (thanks for the replies), I have firmed up the
specs a bit

I want a fairly fast data rate (20MBit/S would be ideal though the
standard USB 1 datarate of 12 MBit/S wouild be acceptable)

Can not be done. The overhead will limit you to about 8Mbit. If
your lucky.

I think you should purchase a kit of any kind and verify what
needs to be done on the PC side as well. Again if your lucky and
good at PC programming and have a fast machine, you may get 8Mb.

If you have a USB hard drive, you can time that to see if you
can reach 12Mbit.

Many USB interfaces say they are USB 2.0, but they are not.

Good luck, you will need it.
 
A

Adrian Jansen

Jan 1, 1970
0
If the FDTI chips you are talking about are the ones with USB - to - 16 bit
parallel lines, then the throughput is nothing like 12 Mbit/sec. The USB
interface will transmit a max of 8 bytes per data frame in that mode, and
two of those are the port lines. Data frames are sent at 1 msec intervals.
So your effective throughput is 2 bytes per millisec.

--
Regards,

Adrian Jansen
J & K MicroSystems
Microcomputer solutions for industrial control
 
I

Iwo Mergler

Jan 1, 1970
0
Adrian said:
If the FDTI chips you are talking about are the ones with USB - to - 16 bit
parallel lines, then the throughput is nothing like 12 Mbit/sec. The USB
interface will transmit a max of 8 bytes per data frame in that mode, and
two of those are the port lines. Data frames are sent at 1 msec intervals.
So your effective throughput is 2 bytes per millisec.

The FT245/FT232 uses bulk transfers, 64 bytes per block,
two of which are status. You can reach about 8MBit/s peak transfer
rate, but not sustain it.

With Windows, we had to use 8MBytes of FIFO memory to reliably
sustain 5MBit/s transfer rate.

Kind regards,

Iwo
 
Top