Implementing USB master mode in Firmware

This is a somewhat hack-ish question but maybe this is the right place.

First off, is a limited scope but fully firmware USB Host / Master feasable?

By limited scope, I mean that this Host will only be able to recognise / interact with specific USB devices and endpoints. eg. Only USB memory sticks.

The application in mind is requiring offline / removable storage and the USB memory stick is the ideal candidate but the cost of a full USB Host controller IC is prohibitive in respect of the cost of the application requiring it.

Or rather, I ask the EE forum, where could one look to find some  low level USB protocol and data frame specifications so that a USB host can be created that speaks to USB memory sticks only?

The processor in mind is a small-ish PIC 18F.
PIC18F252 with pretty much all the serial port hardware / timers that should be necessary. At about 20+ MHz, I feel this should be enough to handle the protocol parsing and processing load.

Other MCU suggestions are welcome within reason of course...
but cost is the limiting factor otherwise a commercial USB host would have been used...

ps: The project is a media playing device using USB memory devices.
pps: It's not for a commercial application, just a "hobby" one.

Who is Participating?
ddenuConnect With a Mentor Commented:
Doing a little searching I found this app note:

It sounds like it could suit your purpose.

Gosh the full usb controller is a processor based asic. If you ask for a sample, you can get a couple for free. Not exactly prohibitive cost.
You will still need to write some code to ignore unwanted usb devices when inserted.
To find what to do you will need to study datasheets for the controller you get.
Actually an embedded USB host would be a cool thing. Lots of simple USB drives exist, ie foot switches, signal lamps,data loggers etc. that could be integrated.

As far as I know the PIC devices cannot function as hosts on the USB, only as slaves.

Do we have sources for the usb host ASICs?


Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Glen A.IT Project ManagerCommented:
Well, it's been a while since any comment has been made and it's time to cleanup this TA.

To the Questioner:  If one of the experts here answered your question, please accept that answer, or split points among experts if it's appropriate.

Experts, please leave any closing recommendations here within one weeks time so a final recommendation can be made - No comment means you don't care!

I'll check back and leave my final recommendation to the Cleanup TA in one weeks' time.

EE Cleanup Volunteer
kongfrAuthor Commented:
Sheeow this one slipped my mind actually.

It's actually a challenge to to find / develop a fully software USB Host solution and the comments of "Just get a sample IC" demonstrate no sense of adventure in my earnest opinion....

OK to Dave, who seemed to be the only one geniunely interested in the possiblities, I will award the points.

By the way, the App note you referred to w.r.t. the USB "On-The-Go" peer to peer tech was not quite the thing I was looking for.
I had seen that it before from the Philips website and I decided against that since you've got to buy something, you're using money to solve a problem....lack of challenge.
Besides that, once you do it in software AND it's open source, then it's yours forever.

So 125 points to Dave for trying to help.
I still think it's possible so the hunt continues.

Did you ever made it work? Speak to a USB memory stick without a USB HOST ?

Also, what is your email?

Best regards,

Dear kongfr
Even your question about USB in host mode was made some time ago, I would like to try to made some contrubution on this matter.
Also I am develooing a data-logger using   PIC18F8720 with 32 Mb flash memory on its side.  The intention is to download (read and Write ) data from a flash memory stick and its data to downloaded intyo a PC (Windows  OS)

I fpund a nice chip from Cypress SL811HS able to be used as interface between the PIC and the stick memory working on dual role (Host or peripheral).  The manufacturer publish source code but I am not too sure if it is enough.
Even when I started today with this project and I have installed my fisrt chip on the board, I did not started yet with the programing and experimentation.  Cypress published soem source code for  initialization, but I am not too sure what protocol to be idea.
I hope that this bring some light into the matter.
Good luck
JORGE (Pretoria- South Africa)
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.