USB mass storage class

Started by supriya albal March 8, 2010
I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
Is it necessary for me to write ADC readings in FAT file format in FLASH?
--- In l..., supriya albal wrote:
>
> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
> Is it necessary for me to write ADC readings in FAT file format in FLASH?
>

Interesting question! At first glance it would seem like the only way to implement a mass storage device is to actually have a mass storage device like an SD card. Your 2148 code just provides a linkage to a FAT file system on a storage card.

However, I suppose you could create a virtual file system in code. The code would fetch data from and represent it as a file.

Given the available FAT file systems for the 2148, I don't know why you would want to take the long way around. Among other things, if you stored the data in a FAT filesystem on an SD card, you could simply use the card to transfer the data with sneakernet.

Good sample code for this at www.jcwren.com/arm

Richard

--- In l..., supriya albal wrote:
>
> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
> Is it necessary for me to write ADC readings in FAT file format in FLASH?
>
There is no one right answer to this. If you plan to insert the SD card later on into the PC (even for debugging) then it does make sense.
However, if you want to keep your data proprietary then you can format it as you wish and manage your own file system. Either approach has its merits.
For communication you could always do a VCOM driver to port the data or HID. Does not have to be mass storage unless you want it to "look" like a DOS file system to your PC client app.

> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.

If your data acquisition device works stand-alone from PC, MSC (Mass Storage Class) is a good choice. But if it collects data under connection to a PC, MSC is a wrong option. In this case, send the data directly to the PC over USB using one of these classes.
- Vendor-specific class
- CDC
- HID (for low transfer speed)

As for real-time data transfer, MSC is barely acceptable for PC --> device direction,
but for device --> PC direction, MSC is the worst choice.

Tsuneo

--- In l..., supriya albal wrote:
>
> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
> Is it necessary for me to write ADC readings in FAT file format in FLASH?
>

> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.

If your data acquisition device works stand-alone from PC, MSC (Mass Storage Class) is a good choice. But if it collects data under connection to a PC, MSC is a wrong option. In this case, send the data directly to the PC over USB using one of these classes.
- Vendor-specific class
- CDC
- HID (for low transfer speed)

As for real-time data transfer, MSC is barely acceptable for PC --> device direction,
but for device --> PC direction, MSC is the worst choice.

Tsuneo

--- In l..., supriya albal wrote:
>
> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
> Is it necessary for me to write ADC readings in FAT file format in FLASH?
>

--- In l..., supriya albal wrote:
>
> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
> Is it necessary for me to write ADC readings in FAT file format in FLASH?
>
There is no one right answer to this. If you plan to insert the SD card later on into the PC (even for debugging) then it does make sense.
However, if you want to keep your data proprietary then you can format it as you wish and manage your own file system. Either approach has its merits.
For communication you could always do a VCOM driver to port the data or HID. Does not have to be mass storage unless you want it to "look" like a DOS file system to your PC client app.

--- In l..., supriya albal wrote:
>
> I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
> Is it necessary for me to write ADC readings in FAT file format in FLASH?
>

Interesting question! At first glance it would seem like the only way to implement a mass storage device is to actually have a mass storage device like an SD card. Your 2148 code just provides a linkage to a FAT file system on a storage card.

However, I suppose you could create a virtual file system in code. The code would fetch data from and represent it as a file.

Given the available FAT file systems for the 2148, I don't know why you would want to take the long way around. Among other things, if you stored the data in a FAT filesystem on an SD card, you could simply use the card to transfer the data with sneakernet.

Good sample code for this at www.jcwren.com/arm

Richard

I am implementing LPC2148 as mass storage device, which i will use in data acquisition system. Data sensed by ADC will be transferred to PC through USB.
Is it necessary for me to write ADC readings in FAT file format in FLASH?