adding USB Flash feature to existing product (Vinculum? experience?)

I'm looking into adding support for USB Flash sticks to a current design, perhaps even for retrofit. The product volumes are in the small thousands a year. The product has an expansion connector that has power, a few GPIOs and a UART or SPI. Currently this connector is used to add a serial printer or a few other things. Now I'd like to add USB flash. Actually, no I wouldn't, but thats what I've been asked to add - one of the expansion devices is already an SD card interface but thats not what the customer wants...

The hardware is ARM7TDMI based with a few hundred Kbytes of spare flash for code/data. RAM is much tighter because the product is already developed. I might be able to squeeze 16K.

My first thought was the Vinculum VNC1L to take most of the design work away and because the SPI interface would allow it to bolt on. Has anyone here had experience of this chip that they would be willing to share (good or bad) ?

My second thought was to use a host controller chip on the bus (16-bit SRAM-like) which would would not allow retrofit but would give more flexibility and hopefully be cheaper and faster. The problem is developing the software - the thing is OS-less but knows about file system for SD cards (and SDHC). Anyone have experience of this approach with suggestions for a host controller chip and the difficulty of driving it?

Performance doesn't have to be great. The current SD Card incarnation can do file copy at ~70Kbyte/sec.

TIA Peter

Reply to
Peter Dickerson
Loading thread data ...

Peter

I've not used the Vinculum part though it looks quite reasonable but I've used Maxim's 3421 host controller. Maxim said that they were producing a host USB stack but I used one from GHI Electronics (whose website appears down at present). The 3421 is also SPI based.

Andrew

Reply to
Andrew Jackson

You might take a look at Atmel's AT90USB family to handle USB-host coprocessor duties. They seem to have targeted that line at handling simple host ports (i.e., flash sticks). I haven't used these in particular; I do use the general AVR micros and the USB varients are "on the radar" for possible future use.

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

I've used the Vinculum in a couple of projects - after a few glitches in early firmware it works pretty well - I've used it in SPI and parallel modes, the latter streaming about

300k/sec. The fact that it includes all the filesystem stuff makes it by far the easiest solution, especially if you are tight on RAM.
Reply to
Mike Harrison

I have since found that Vinculum FAT file system code doesn't support long file names. This might be a killer for me since we already use long file names in the SD card interface. Bummer :-(

I have also been pointed at Jungo driver software and perhaps to use the NXP ISP1160 device since this should hang off the bus. I've been told that USB will be a standard part of the updated product - no field add-ons - so this means the PCB can be changed to add such hardware. Anybody had any experience of Jungo wrt to embedded USB host and mass storage drivers? How big a job would it be to write this ourselves given that we already have the FAT filesystem code?

TIA Peter

Reply to
Peter Dickerson

[...]

It works OK, however the transfer rate is only about 300kbytes/sec in the best case.

We ended up doing the Compact Flash interface. This is much simpler on the hardware and software, and the performance is at the order of tens of megabytes per second.

Vladimir Vassilevsky DSP and Mixed Signal Design Consultant

formatting link

Reply to
Vladimir Vassilevsky

As I said, I looking to add USB flash. This is the customer requirement. We already have SD cards working well enough. The performance is currently limited by EMC issues for other hardware that uses the same expansion port otherwise I could improve the speed by five or six times. High speed is not the major requirement i any case, but meeting the customer requirements are (so I have been told) since the words USB and Flash will appear on the contract. I don't think that CF would be a good choice anyway since the connector has lots of diddy pins and they're likely to be inserted and removed many times a day. This is one reason for using SD in the first place. I agree that CF would be simpler on the software but hardware might be a problem since we're short of I/O and this is an addition to an established design - 15 products using the same hardware...

But thanks for the suggestions anyway. It's always useful to see how others tackle a similar problem.

Peter

Reply to
Peter Dickerson

We were looking into using the AT90USB647 as USB host and talking to another uC (ARM M3) via SPI. Unfortunately, the chip is kind of expensive and we don't really need all other stuffs such as A2D, etc.

Reply to
linnix

Would your customer be happy with a USB thumb drive that has an SD card interface, so he plugs one end in your box's SD, then takes it out and plugs the other end into his computer's USB?

formatting link

--
David M. Palmer  dmpalmer@email.com (formerly @clark.net, @ematic.com)
Reply to
David M. Palmer

I don't know because I don't actually know who the customer is for sure. I'm usually kept away from such people for their own safety. It is a solution that I can offer, especially if the card is cheaper than the added hardware. In that case we could consider including such a card.

Peter

Reply to
Peter Dickerson

I have a similar project and requirement and so far I have worked with th GHIelectronics uALFAT and new PIC24 with USBOTG (VNC1L is on the way). S far I can say that both work out of the box but I am leaning towards th uALFAT right now. The reason being that I can simply treat the interfac as a black box and just send commands to it. Having the USB stack cod sitting in front of me on the PIC24 is overwhelming and I really don't eve want to have to get into it. That said, the VNC1L should be similar to th uALFAT but a single chip solution. Good luck!

Reply to
greginfinity

I shall look at the GHI stuff but it would need to cost less than the $8 that I think that I can do this for.

Peter

Reply to
Peter Dickerson

"Peter Dickerson" skrev i meddelandet news:sTxWj.3100$ snipped-for-privacy@newsfe05.ams...

There are several controllers with a built in host. AT91SAM9XE would be closest to your needs if you did a redesign. This part has an OpenHCI interface.

AT32UC3B would be OK for an SPIUSB bridge. This has a USB host stack from Atmel.

--
Best Regards,
Ulf Samuelsson
 Click to see the full signature
Reply to
Ulf Samuelsson

Thanks, Ulf. It looks like we will be doing a redesign in the sense of adding components to the main PCB but using a different processor, even an ARM based one is probably out of the question for now. The main reason for this is that we want to keep the same software base. There are fifteen products based on this hardware to date and new ones on the (close) horizon that require USB Flash cababilities as standard. Its likely that we'll just add this feature to the current products and detect the presence of the USB chip so that field upgrades of old machines still works. We're looking at using the ISP1160 for now because this fits well with the current hardware, which has a 16-bit bus a spare chip select and spare interrupt input. The biggest problem is where to get 0.5A @ 5V from :-(.

I will look into that for future reference. The problem comes that as soon as one product range can do something the powers that be want it on everything however inappropriate.

Peter

Reply to
Peter Dickerson

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.