microcontroller with usb host port?

Hello everybody,

I'd like to display pictures from a webcam on a small display. The cheapest webcams are USB; so I'd like to use a microcontroller to get the images off and send them to a display.

I've already found several ic's with usb slave functionalities; but are there any with a host port?

I've already read about the zaurus 6000; but with several hundred ? it's a bit expensive.

I'd prefer 8051 or compatible, but I'm willing to learn other microcontrollers as well.

Thank you for your help!

Regards,

Phil

Reply to
p.marek
Loading thread data ...

p.marek wrote: : Hello everybody,

: I'd like to display pictures from a webcam on a small display. : The cheapest webcams are USB; so I'd like to use a microcontroller to : get the images off and send them to a display.

: I've already found several ic's with usb slave functionalities; but : are there any with a host port?

: I've already read about the zaurus 6000; but with several hundred ? : it's a bit expensive.

: I'd prefer 8051 or compatible, but I'm willing to learn other : microcontrollers as well.

Every USB host controller needs a controll stack. It will be quite a big deal to program that stack...

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
 Click to see the full signature
Reply to
Uwe Bonnes

I looked at a few 8051 parts with USB, and the impression I got was that they simply could not be a master, no matter how much effort one is willing to put into programming them.

I would like to develop a product that can get input from a USB keyboard (being fast enough to handle a USB mouse would be icing on the cake) using a low-cost 8-bit uC (8051, Z80, or 6502 preferred but I can work with anything). I am willing to put in a lot of effort developing firmware if it gets my unit cost down. Does anyone have any suggestions for an appropriate device?

--
Guy Macon
Reply to
Guy Macon

As I've stated here before, my personal impression of USB is that its inventor went out of its way to make sure it was nearly impossible to use with anything less than a full-blown PC as the host. I.e. USB is, at its very heart, not so much a data link but a clever plot to make sure Intel can continue to sell PC processors 'til kingdom come.

No standard 8051 will suffice to replace that PC designed into the very heart of USB. A very high-end derivative (e.g. the DS80C400, a.k.a. TINI) might have the horsepower, but even then, the cost of developing all the necessary layers of software would be prohibitive.

Bottom line: you don't want to develop your own USB host protocol stack. If you do it nevertheless, you'll need more horsepower than your average 8-bitter to do it.

--
Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.
Reply to
Hans-Bernhard Broeker

On 22 Nov 2004 04:34:35 -0800, snipped-for-privacy@marek.priv.at (p.marek) wrote in comp.arch.embedded:

The only shipping microcontroller that I know of with a USB host controller built-in is Atmel's AT91RM9200, a 180MHz ARM 9 part. It has 16KB RAM and no flash on-chip. The host controller is USB 1.1, not 2.0.

The USB protocol was deliberately designed to be very uneven. By that I mean that most of the hardware and software is on the host side, as little as possible on the peripheral device side. This is so that small peripheral devices like mice could be as inexpensive as possible.

The result of this is that in addition to the host controller device, whether it is built into the micro or not, you need complex USB host driver software. The Atmel part above can run Linux, but I do not know if there is a Linux driver for it's USB host controller.

--
Jack Klein
Home: http://JK-Technology.Com
 Click to see the full signature
Reply to
Jack Klein

Bear in mind that many USB keyboards and mice will also speak PS/2 as they are supplied with simple adaptors which are just pin converters.

Reply to
Mike Harrison

Jack Kle>The USB protocol was deliberately designed to be very uneven. By that

Do you think that it might be feasable to make a "man in the middle" system that goes between a USB keyboard and a PC? I am currently developing a device that does that for the purpose of adding features needed by the handicapped (sticky keys, fumble keys, etc.), and will probably throw in an optional Dvorak conversion just because I can. My design assumes a standard PS/2 keyboard. I have never done any work with USB; does it lend itself to a system that does simple modifications to the data stream without having its own host protocol stack?

formatting link
*appears* to have an adapter that will act as a USB host, but I rather suspect that somehow the keyboard stops acting like a USB device and starts acting like a PS/2 device...

Reply to
Guy Macon

If all you want to interface to is a keyboard (or lowspeed devices), you may be able to do it bit banging the usb interface. Some guy claims to have done it:

formatting link

The OP wants a full speed device, much more a problem. I don't know if an 8051 could keep up with the data from a camera, much less handle a usb host interface too.

The Ubicom Ip2k can do USB host, but a LOT of software would need to be done to manage misc devices. And you would still be in device driver hell where Vendor's buggy usb device problems get worked around by a windows driver.

I looked at doing a reverse FDTI system with a Ubicom IP2k ie. serial to USB host. The problem is that it is a lot of work and without serious volume the price would be high.

Regards, Steve

Reply to
Steve Calfee

Have you thought about the code and data set sizes. Most webcam devices prefer their data to be sent then sent tio display, and you may have to keep a full image ready to transfer to the display. Most webcams are QVGA (Quarter VGA) resolution of 320 x 240 giving 75KB of data storage before you start doing anything else with it. Worst still you may have to buffer more than one images worth if the webcam sends the data as a compressed image file format.

The code and data space for USB hosting is NOT trivial, especially with all the enumerators and device handling cases you will need for all the possible supported cameras. Especially as the webcams are going to be replaced with new models every two months at the SLOWEST rate.

I don't think most 8051 derivatives have easy memory handling of this sort of data sizes and the potential code sizes required. You may find one with a fast enough clock, but I feel this is better suited to a cheap 16/32 bit cpu.

--
Paul Carpenter          | paul@pcserviceselectronics.co.uk
    PC Services
 Click to see the full signature
Reply to
Paul Carpenter

there any with a host port?

bit expensive.

AT91RM9200 running Linux will do what you want. May even be a driver for USB cameras...

Atmel has an Embedded USB Host, the AT43USB380. This will run the USB host stack on the chip, and the USB profile will run on a low end micro. The part has a programmable 8/16/32 bit peripheral interface so it can interface to lowly 8 bitter. The API for the host stack is Atmel proprietary, and only the API to the profiles are released. Unfortunately, I do not think that Video is supported at this time. Since the library is delivered in binary form, then you also need a supported architecture. Today this means AVR or ARM. Supported profiles today are HID, Mass Storage and Printer. Serial might be around soon.

If you use a typical Webcam, then realize that a VGA picture is 307,200 pixels. You need to be able to address a significant amount of RAM to store that and it is a little tough on an 8 bitter.

The Mass Storage code will fit into about 64 KB on an AVR.

You might be better of getting a camera module and interface to an FPGA also containing the LCD display. AT91K40 FPSLIC?

--
Best Regards
Ulf at atmel dot com
 Click to see the full signature
Reply to
Ulf Samuelsson

Feasible: proably, but hardly worth the bother. Essentially all operating systems worth worrying about that will run on the PC of your "man in the middle" already have pure software solutions for such stuff. I.e. why bother trying to do a man in the middle in hardware, when XP already has the necessary functionality?

--
Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.
Reply to
Hans-Bernhard Broeker

Here the combination of the ATmega128 and the AT43USB380 might work. You may need to have a Hub as well. (AT43301) to interface to several units

There is a USB client as well on the AT43USB380.

--
Best Regards
Ulf at atmel dot com
 Click to see the full signature
Reply to
Ulf Samuelsson

Because many blind people are using DOS. Because someone using a mouth stick may wish to change the BIOS settings on his PC. Because an NT system may have two users, one of whom uses a Dvorak keyboard and both of whom want to login using the keymapping they like. Because it is a royal pain in the ass to install many operating systems using a Dvorak keyboard. Because *someone* is keeping DvortyBoard (Dvorak keyboard that looks like a Qwerty to the PC) in business. Because OS-X doesn't do the keymapping for Japanese keyboards correctly. Because some corporations lock down Windows in such a way that it is impossible to change the keymapping. Because Knoppix Dvorak users get tired of changing the keyboard in Qwerty at every boot.

Reply to
Guy Macon

hmm SoCs : broadcom BCM 4702/4712/BCM4704P for example, but its an evil company

Pozdrawiam.

--
RusH   //
 http://randki.o2.pl/profil.php?id_r=352019
 Click to see the full signature
Reply to
RusH

Cypress Semiconductor CY7C67300 (EZ-Host), CY7C67200 (EZ-OTG), Apparently Arrow don't have stock, but their price is US$8.25 ea

Reply to
dmm

formatting link

Looks good. Supports low speed and full speed, but not high speed. Then again, nothing reasonable that you hook to iy can keep a high speed USB pipe full...

Reply to
Guy Macon

"Jack Klein" a écrit dans le message de news: snipped-for-privacy@4ax.com...

EZ-Host chip from Cypress is another cheaper but less powerful alternative.

Friendly yours,

--
Robert Lacoste
ALCIOM - The mixed signal experts
 Click to see the full signature
Reply to
Robert Lacoste

Hi Phil! I'm also into 8051 based USB controllers. I suggest you to go for AT89C5131 USB controller from ATMEL. If interested to have further conversation, plz let me know. thanks & regards, vasu (Srinivasa Reddy Muly)

Reply to
vasu

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.