EmbeddedRelated.com
Forums

High speed USB devices

Started by Mikko OH2HVJ April 3, 2011
Hi,

I'm building a custom USB-camera. There will be an FPGA chip doing some simple
data handling for the sensor data and after that the image needs to be 
transmitted to a PC or an embedded Linux computer.

Estimated raw data rate is almost 30 megabytes per second without any 
compression. Basically a single endpoint is enough for the task.

What are the available chips in addition to Cypress FX2, NXP ISP1581 ?

And how much compression will I be needing, i.e. what is the best performance
available ?

-- 
OH2HVJ Mikko
Op 03-Apr-11 20:26, Mikko OH2HVJ schreef:
> Hi, > > I'm building a custom USB-camera. There will be an FPGA chip doing some simple > data handling for the sensor data and after that the image needs to be > transmitted to a PC or an embedded Linux computer. > > Estimated raw data rate is almost 30 megabytes per second without any > compression. Basically a single endpoint is enough for the task. > > What are the available chips in addition to Cypress FX2, NXP ISP1581 ? > > And how much compression will I be needing, i.e. what is the best performance > available ?
On a project where we used the Cypress FX2 we were able to get data rates of about 32 MBytes/s, though I remember that some fine tuning on the FX2 side was needed to achieve this rate. So in theory you don't need compression.
On Apr 3, 11:26=A0am, Mikko OH2HVJ <oh2...@sral.fi> wrote:
> Hi, > > I'm building a custom USB-camera. There will be an FPGA chip doing some s=
imple
> data handling for the sensor data and after that the image needs to be > transmitted to a PC or an embedded Linux computer. > > Estimated raw data rate is almost 30 megabytes per second without any > compression. Basically a single endpoint is enough for the task. > > What are the available chips in addition to Cypress FX2, NXP ISP1581 ? > > And how much compression will I be needing, i.e. what is the best perform=
ance
> available ?
It depends on the sensor and image, capturing frame or video. For example, we are dealing with single frame 2048x1536 24 bits color. The image is ~ 9MB raw and 150KB compressed. We have 96KB frame buffer on the controller. Our controller is capable of push/pull temporary storage data on the camera's SD card as well.
On 3 Apr., 20:26, Mikko OH2HVJ <oh2...@sral.fi> wrote:
> Hi, > > I'm building a custom USB-camera. There will be an FPGA chip doing some simple > data handling for the sensor data and after that the image needs to be > transmitted to a PC or an embedded Linux computer. > > Estimated raw data rate is almost 30 megabytes per second without any > compression. Basically a single endpoint is enough for the task. > > What are the available chips in addition to Cypress FX2, NXP ISP1581 ? > > And how much compression will I be needing, i.e. what is the best performance > available ? > > -- > OH2HVJ Mikko
something like this in fifo mode: http://www.ftdichip.com/Products/ICs/FT2232H.htm should do it. Or just a 2.0 phy and an usb 20.0 core, theres one on opencores I think -Lasse
On Sun, 03 Apr 2011 21:26:14 +0300, Mikko OH2HVJ <oh2hvj@sral.fi> wrote:

>Hi, > >I'm building a custom USB-camera. There will be an FPGA chip doing some simple >data handling for the sensor data and after that the image needs to be >transmitted to a PC or an embedded Linux computer. > >Estimated raw data rate is almost 30 megabytes per second without any >compression. Basically a single endpoint is enough for the task. > >What are the available chips in addition to Cypress FX2, NXP ISP1581 ? > >And how much compression will I be needing, i.e. what is the best performance >available ?
Simpler to just buy an existing camera. You are obviously already in over your head.
Hi,

Dombo <dombo@disposable.invalid> writes:
> On a project where we used the Cypress FX2 we were able to get data > rates of about 32 MBytes/s, though I remember that some fine tuning on > the FX2 side was needed to achieve this rate. So in theory you don't > need compression.
Thanks for the comment. Can you remember what tuning did you do ? We managed to get 22MBytes/s just by requesting larger transfers from the Cypress API. This way the function did not return to user-mode code until a larger tranfer was done. This capped out with 8kB transfers. -- Mikko OH2HVJ
"langwadt@fonz.dk" <langwadt@fonz.dk> writes:
> something like this in fifo mode: http://www.ftdichip.com/Products/ICs/FT2232H.htm > should do it. Or just a 2.0 phy and an usb 20.0 core, theres one on > opencores I think
What kind of performance can be expected from the FT232H ? USB2.0 IP core might indeed be quite interesting, does anyone here experience on them ? I do have an experienced FPGA guy in team, but would like to use as simple approach as possible. -- Mikko OH2HVJ
Op 04-Apr-11 18:30, Mikko OH2HVJ schreef:
> > Hi, > > Dombo<dombo@disposable.invalid> writes: >> On a project where we used the Cypress FX2 we were able to get data >> rates of about 32 MBytes/s, though I remember that some fine tuning on >> the FX2 side was needed to achieve this rate. So in theory you don't >> need compression. > > Thanks for the comment. Can you remember what tuning did you do ? We managed > to get 22MBytes/s just by requesting larger transfers from the Cypress API. > This way the function did not return to user-mode code until a larger tranfer > was done. This capped out with 8kB transfers.
Unfortunately I don't know the details (the fine tuning was not done by me). I vaguely remember it had to do something with configuring buffering and endpoints on the FX2 side to squeeze the last bit of performance out of it. I'm sorry I cannot be more specific than that.
On Apr 4, 9:34=A0am, Mikko OH2HVJ <oh2...@sral.fi> wrote:
> "langw...@fonz.dk" <langw...@fonz.dk> writes: > > something like this in fifo mode:http://www.ftdichip.com/Products/ICs/F=
T2232H.htm
> > should do it. Or just a 2.0 phy and an usb 20.0 core, theres one on > > opencores I think > > What kind of performance can be expected from the FT232H ? > > USB2.0 IP core might indeed be quite interesting, does anyone here experi=
ence on
> them ? I do have an experienced FPGA guy in team, but would like to use a=
s simple approach
> as possible.
One thing to consider is that you might have to run the FPGA at 400MHz for HS. Dedicated chips usually have internal PLL to multiple from slower external crystal (i.e. 12mHz).
Dombo <dombo@disposable.invalid> writes:
> Unfortunately I don't know the details (the fine tuning was not done > by me). I vaguely remember it had to do something with configuring > buffering and endpoints on the FX2 side to squeeze the last bit of > performance out of it. I'm sorry I cannot be more specific than that.
Ok, thanks for giving faith anyway! I remembered that I have USRP software radio that I used for a GPS project. I googled for USRP USB bandwidth and it seems that even 45MBytes/sec is possible! -- Mikko