Is there a prebuilt stack to support USB MSC available?
USB Mass Storage Device Using a PIC MCU http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en024394Posted on: April 17, 2008, 08:26:01 08:26 - Automerged
Thank you Mr. Angor
But your reffered doc does not addresses the goal of the project.
USB interfaces are everywhere today, with low cost flash memory drives and all kinds of USB peripherals readily available. But these are very much focused on the PC market. Attempt to make use of these peripherals in the 8- and 16-bit embedded market and you'll find that implementation, cost and power consumption become major considerations. Part of this is due to the embedded controllers that are used in such systems. Devices such as the PIC family of controllers from Microchip are widely used with a broad range of memory densities and peripherals, but they lack the interfaces, resources and performance to incorporate a USB host controller.
A VNC1L Vinculum controller IC provides the interface between the PIC as the system controller and a USB 2.0 full-speed port. This allows a USB flash memory drive connection, for example, to be used with a minimum of implementation time and overhead but it is costlier.
We need any alternate idea to achieve the simmilar goal at minimum cost.
You must remember that asside from the raw circuit support, you simply need more horsepower (MIP, RAM, etc..) to support the USB hosting functions then is managebly feasible with the 8 & 16 bit uCs.
ie. You not only have to worry about the circuit support for plugging in a USB slave device, but you have to provide firmware support for full support of the USB class, AS WELL AS support for reading and writting to FAT, FAT16, FAT32, NTFS.
Have you ventured into the development of your own Raw software to open, read, and modify a file located on a FAT partition? If not.. trust me, the MS FAT system requires alot of uC instructions to deal with. And it's just plain "not fun".
If you want to interface 8 & 16 bit PICs with USB drives, there are quite a few options out there. DOS-On-Chip, Vinculum, etc.. which off-load the FAT file interfacing from having to be done by your PIC. Leaving your PIC to focus it's processing on the real purpose of the application intended.
If you want both, a PIC, onboard USB host capable of firmware to support hosting complex USB device slaves - then develop your project around a 32 bit PIC, and your hands become un-tied.http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en534213