EmbeddedRelated.com
Forums
Memfault Beyond the Launch

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

Started by Peter Dickerson May 14, 2008
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 


Peter

> 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) ?
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
On Wed, 14 May 2008 10:01:11 +0100, "Peter Dickerson"
<firstname.lastname@REMOVE.tesco.net> wrote:

>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.
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. <http://www.atmel.com/dyn/resources/prod_documents/doc7675.pdf> -- Rich Webb Norfolk, VA
On Wed, 14 May 2008 10:01:11 +0100, "Peter Dickerson" <firstname.lastname@REMOVE.tesco.net> wrote:

>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
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.
"Mike Harrison" <mike@whitewing.co.uk> wrote in message 
news:1jnl24paq0i74b6vj6hckvlg9rkb7pbg45@4ax.com...
> On Wed, 14 May 2008 10:01:11 +0100, "Peter Dickerson" > <firstname.lastname@REMOVE.tesco.net> wrote: > >>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 > > 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.
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

Peter Dickerson wrote:

> I'm looking into adding support for USB Flash sticks to a current design, > perhaps even for retrofit.
[...]
> 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) ?
It works OK, however the transfer rate is only about 300kbytes/sec in the best case.
> 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.
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 http://www.abvolt.com
"Vladimir Vassilevsky" <antispam_bogus@hotmail.com> wrote in message 
news:oNCWj.7170$3O7.4557@newssvr19.news.prodigy.net...
> > > Peter Dickerson wrote: > >> I'm looking into adding support for USB Flash sticks to a current design, >> perhaps even for retrofit. > > [...] > >> 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) ? > > It works OK, however the transfer rate is only about 300kbytes/sec in the > best case. > >> 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. > > 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.
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
On May 14, 9:50 am, "Peter Dickerson"
<firstname.lastn...@REMOVE.tesco.net> wrote:
> "Vladimir Vassilevsky" <antispam_bo...@hotmail.com> wrote in message > > news:oNCWj.7170$3O7.4557@newssvr19.news.prodigy.net... > > > > > > > Peter Dickerson wrote: > > >> I'm looking into adding support for USB Flash sticks to a current design, > >> perhaps even for retrofit. > > > [...] > > >> 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) ? > > > It works OK, however the transfer rate is only about 300kbytes/sec in the > > best case. > > >> 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. > > > 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. > > 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
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.
In article <sTxWj.3100$ie5.1219@newsfe05.ams2>, Peter Dickerson
<firstname.lastname@REMOVE.tesco.net> wrote:

> 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...
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? http://www.dpreview.com/news/0501/05010606sandisksdflip.asp -- David M. Palmer dmpalmer@email.com (formerly @clark.net, @ematic.com)
"David M. Palmer" <dmpalmer@email.com> wrote in message 
news:140520082323516768%dmpalmer@email.com...
> In article <sTxWj.3100$ie5.1219@newsfe05.ams2>, Peter Dickerson > <firstname.lastname@REMOVE.tesco.net> wrote: > >> 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... > > 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? > > http://www.dpreview.com/news/0501/05010606sandisksdflip.asp
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

Memfault Beyond the Launch