EmbeddedRelated.com
Forums
Memfault Beyond the Launch

EZUSB FX2LP transfer speed

Started by Unknown December 5, 2006
Hi out there,

I still try to speed up my little curcuit that contains a CY68013A
FX2LP Chip. I am able to transfer 3,5 Mb/s without any external memory.
I want to transfer data with even higher speeds and want to extend
memory for this. So can anyone explain which memory buffers I have to
enlarge to reach higher transfer rates? Do I have to use bigger
endpoint buffers? I am reading data from the GPIF and the read FIFOs
are up to 1 kB using EP6 buffers. So is it neccessary to use bigger
FIFOs to transfer data faster than now? I don't know what to do to and
so maybe you can help me...

Lot of thanks

Christian

Christian,

   When you request/transfer data you should request large sizes
~30Kbytes, and the host will break the request/transfer into
wMaxPacketSize chunks (use 512 bytes).  Quad buffering the endpoint is
usually faster.  You should be able to get around 30Mbytes/sec.  I
assume your IFCLK is running at 48MHz, if not make it 48MHz.  Usually
the bottleck is the USB requests on the host computer, not the FX2.

Lloyd


mail@cgrobi.de wrote:
> Hi out there, > > I still try to speed up my little curcuit that contains a CY68013A > FX2LP Chip. I am able to transfer 3,5 Mb/s without any external memory. > I want to transfer data with even higher speeds and want to extend > memory for this. So can anyone explain which memory buffers I have to > enlarge to reach higher transfer rates? Do I have to use bigger > endpoint buffers? I am reading data from the GPIF and the read FIFOs > are up to 1 kB using EP6 buffers. So is it neccessary to use bigger > FIFOs to transfer data faster than now? I don't know what to do to and > so maybe you can help me... > > Lot of thanks > > Christian
nfirtaps wrote:
> > When you request/transfer data you should request large sizes > ~30Kbytes, and the host will break the request/transfer into > wMaxPacketSize chunks (use 512 bytes). Quad buffering the > endpoint is usually faster. You should be able to get around > 30Mbytes/sec. I assume your IFCLK is running at 48MHz, if not > make it 48MHz. Usually the bottleck is the USB requests on the > host computer, not the FX2.
Please don't top-post. See the following links: -- Some informative links: <news:news.announce.newusers <http://www.geocities.com/nnqweb/> <http://www.catb.org/~esr/faqs/smart-questions.html> <http://www.caliburn.nl/topposting.html> <http://www.netmeister.org/news/learn2quote.html> <http://cfaj.freeshell.org/google/>
A great deal of the noise in this newsgroup is made up of etiquette 
reminders like this. Perhaps you ought to mail them personally or give up 
your quest. I for one rarely open your posts anymore because they are quite 
often gnat-like etiquette remonders. When you do offer relevant responses 
they are very well informed and useful and based on expertise.


"CBFalconer" <cbfalconer@yahoo.com> wrote in message 
news:45756543.8786EFCA@yahoo.com...
> nfirtaps wrote: >> >> When you request/transfer data you should request large sizes >> ~30Kbytes, and the host will break the request/transfer into >> wMaxPacketSize chunks (use 512 bytes). Quad buffering the >> endpoint is usually faster. You should be able to get around >> 30Mbytes/sec. I assume your IFCLK is running at 48MHz, if not >> make it 48MHz. Usually the bottleck is the USB requests on the >> host computer, not the FX2. > > Please don't top-post. See the following links: > > -- > Some informative links: > <news:news.announce.newusers > <http://www.geocities.com/nnqweb/> > <http://www.catb.org/~esr/faqs/smart-questions.html> > <http://www.caliburn.nl/topposting.html> > <http://www.netmeister.org/news/learn2quote.html> > <http://cfaj.freeshell.org/google/> > > >
> > > mail@cgrobi.de wrote: >> Hi out there, >> >> I still try to speed up my little curcuit that contains a CY68013A >> FX2LP Chip. I am able to transfer 3,5 Mb/s without any external memory. >> I want to transfer data with even higher speeds and want to extend >> memory for this. So can anyone explain which memory buffers I have to >> enlarge to reach higher transfer rates? Do I have to use bigger >> endpoint buffers? I am reading data from the GPIF and the read FIFOs >> are up to 1 kB using EP6 buffers. So is it neccessary to use bigger >> FIFOs to transfer data faster than now? I don't know what to do to and >> so maybe you can help me... >> >> Lot of thanks >> >> Christian > >
"nfirtaps" <lloyd.rochester@gmail.com> wrote in message news:1165297909.893095.182090@l12g2000cwl.googlegroups.com...
> Christian, > > When you request/transfer data you should request large sizes > ~30Kbytes, and the host will break the request/transfer into > wMaxPacketSize chunks (use 512 bytes). Quad buffering the endpoint is > usually faster. You should be able to get around 30Mbytes/sec. I > assume your IFCLK is running at 48MHz, if not make it 48MHz. Usually > the bottleck is the USB requests on the host computer, not the FX2. > > Lloyd
However, I was under the impression that if the FX2 is not ready with buffers when the host returns the host will not try again until the next phase. Which, in my case results in a 5MB/sec transfers in USB2.0. Is that correct?
Elan Magavi wrote:
> > > > > > mail@cgrobi.de wrote: > >> Hi out there, > >> > >> I still try to speed up my little curcuit that contains a CY68013A > >> FX2LP Chip. I am able to transfer 3,5 Mb/s without any external memory. > >> I want to transfer data with even higher speeds and want to extend > >> memory for this. So can anyone explain which memory buffers I have to > >> enlarge to reach higher transfer rates? Do I have to use bigger > >> endpoint buffers? I am reading data from the GPIF and the read FIFOs > >> are up to 1 kB using EP6 buffers. So is it neccessary to use bigger > >> FIFOs to transfer data faster than now? I don't know what to do to and > >> so maybe you can help me... > >> > >> Lot of thanks > >> > >> Christian > > > > > > > > "nfirtaps" <lloyd.rochester@gmail.com> wrote in message > news:1165297909.893095.182090@l12g2000cwl.googlegroups.com... > > Christian, > > > > When you request/transfer data you should request large sizes > > ~30Kbytes, and the host will break the request/transfer into > > wMaxPacketSize chunks (use 512 bytes). Quad buffering the endpoint is > > usually faster. You should be able to get around 30Mbytes/sec. I > > assume your IFCLK is running at 48MHz, if not make it 48MHz. Usually > > the bottleck is the USB requests on the host computer, not the FX2. > > > > Lloyd > > > > However, I was under the impression that if the FX2 is not ready with > buffers when the host returns the host will not try again until the next > phase. Which, in my case results in a 5MB/sec transfers in USB2.0. Is that > correct?
I admit to not knowing fully how the host works with requests, but when you request 30K it seems to wait until the FX2 fills the buffer or timeout occurs, whichever comes first. Not totally sure on this however, I think that is the case.
"nfirtaps" <lloyd.rochester@gmail.com> wrote in message 
news:1165512541.351816.50940@l12g2000cwl.googlegroups.com...
> Elan Magavi wrote: >> > >> > >> > mail@cgrobi.de wrote: >> >> Hi out there, >> >> >> >> I still try to speed up my little curcuit that contains a CY68013A >> >> FX2LP Chip. I am able to transfer 3,5 Mb/s without any external >> >> memory. >> >> I want to transfer data with even higher speeds and want to extend >> >> memory for this. So can anyone explain which memory buffers I have to >> >> enlarge to reach higher transfer rates? Do I have to use bigger >> >> endpoint buffers? I am reading data from the GPIF and the read FIFOs >> >> are up to 1 kB using EP6 buffers. So is it neccessary to use bigger >> >> FIFOs to transfer data faster than now? I don't know what to do to and >> >> so maybe you can help me... >> >> >> >> Lot of thanks >> >> >> >> Christian >> > >> > >> >> >> >> "nfirtaps" <lloyd.rochester@gmail.com> wrote in message >> news:1165297909.893095.182090@l12g2000cwl.googlegroups.com... >> > Christian, >> > >> > When you request/transfer data you should request large sizes >> > ~30Kbytes, and the host will break the request/transfer into >> > wMaxPacketSize chunks (use 512 bytes). Quad buffering the endpoint is >> > usually faster. You should be able to get around 30Mbytes/sec. I >> > assume your IFCLK is running at 48MHz, if not make it 48MHz. Usually >> > the bottleck is the USB requests on the host computer, not the FX2. >> > >> > Lloyd >> >> >> >> However, I was under the impression that if the FX2 is not ready with >> buffers when the host returns the host will not try again until the next >> phase. Which, in my case results in a 5MB/sec transfers in USB2.0. Is >> that >> correct? > > I admit to not knowing fully how the host works with requests, but when > you request 30K it seems to wait until the FX2 fills the buffer or > timeout occurs, whichever comes first. Not totally sure on this > however, I think that is the case.
Yes. I think you are correct there.
>

Memfault Beyond the Launch