|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
How to increase transfer capacityHi list,
this question might be off topic here, but perhaps someone can give me a hint where to get the right information how to do it. I'm using an FTDI FT245MB parallel to USB converter in my small home brewed logic analyzer application. This device will be visible at my host as a serial device. I can work with it in this way, receiving measured data and sending control data. The FTDI245 is a USB full speed device with a 64 byte FIFO at the USB side. AFAIK this device will be polled 1000 times a second, so I can transfer up to 64000 chars per second. Is there any way to increase this transfer capacity to 200,000 or 300,000 chars a second, e.g. to force the host controller to poll it more than only 1000 times a second (if there is no other USB device than my FT245MB connected)? Is there any mechanism in the kernel or libusb? Any idea is welcome. Thanks in advance, Juergen ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityJuergen Beisert wrote:
> Is there any way to increase this transfer capacity to 200,000 or > 300,000 chars a second, e.g. to force the host controller to poll > it more than only 1000 times a second (if there is no other USB > device than my FT245MB connected)? No. > Is there any mechanism in the kernel or libusb? Software can do nothing here, this is a hardware limit. Suggest you get a better USB chip. //Peter ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityI think you can get 19x that, because that's how many 64-byte bulk packets
occur in each ms frame. However, there are some caveats with FTDI related to the latency timer and how much data the device on the other side sends (they have some app notes on this, and there's usually a "send immediate" pin). I'm not sure about that particular FTDI chip, but you should note that on at least some of them, only 62 of the 64 bytes are "user" data. You may also not get that much since libftdi currently uses libusb 0.1. Michael -----Original Message----- From: Juergen Beisert [mailto:juergen@...] Sent: Friday, October 16, 2009 10:19 AM To: libusb-devel@... Subject: [Libusb-devel] How to increase transfer capacity Hi list, this question might be off topic here, but perhaps someone can give me a hint where to get the right information how to do it. I'm using an FTDI FT245MB parallel to USB converter in my small home brewed logic analyzer application. This device will be visible at my host as a serial device. I can work with it in this way, receiving measured data and sending control data. The FTDI245 is a USB full speed device with a 64 byte FIFO at the USB side. AFAIK this device will be polled 1000 times a second, so I can transfer up to 64000 chars per second. Is there any way to increase this transfer capacity to 200,000 or 300,000 chars a second, e.g. to force the host controller to poll it more than only 1000 times a second (if there is no other USB device than my FT245MB connected)? Is there any mechanism in the kernel or libusb? Any idea is welcome. Thanks in advance, Juergen ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityOn Fri, 16 Oct 2009, Peter Stuge wrote:
> Juergen Beisert wrote: > > Is there any way to increase this transfer capacity to 200,000 or > > 300,000 chars a second, e.g. to force the host controller to poll > > it more than only 1000 times a second (if there is no other USB > > device than my FT245MB connected)? > > No. > > > > Is there any mechanism in the kernel or libusb? > > Software can do nothing here, this is a hardware limit. Suggest you > get a better USB chip. These answers are not necessarily correct. It depends on the type of transfer used by the device. I'm not familiar with how the FT245MB works. If it uses interrupt transfers then there is no way to send or receive more than one packet per frame. But if it uses bulk transfers then it is possible to send or receive up to 19 packets per frame, depending on the device's capabilities.. Alan Stern ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityhi,
I know the FT245 uses bulk transfers and depending on the type (BM or R) has a 384 or 256 byte buffer. I have never done measurement, but I think it should at least be possible to get a rate of 1000x256 bytes per second. I know on windows the usb polling rate can be changed but I'm not sure to what usb devices this applies (see also http://www.codinghorror.com/blog/archives/000832.html) It might be that on windows the usb polling rate defaults to 250ms for mouses only, i'm not sure. Anyway, as said anything below 1ms will be a problem because of hardware limitations. On a final note, I think the latency timer of the FT245 can be set to 1ms (or maybe 2ms was the minimal setting) _but_ if the buffer is full the device not wait at all and send the buffer right away. Greetings, Jan 2009/10/16 Alan Stern <stern@...>: > On Fri, 16 Oct 2009, Peter Stuge wrote: > >> Juergen Beisert wrote: >> > Is there any way to increase this transfer capacity to 200,000 or >> > 300,000 chars a second, e.g. to force the host controller to poll >> > it more than only 1000 times a second (if there is no other USB >> > device than my FT245MB connected)? >> >> No. >> >> >> > Is there any mechanism in the kernel or libusb? >> >> Software can do nothing here, this is a hardware limit. Suggest you >> get a better USB chip. > > These answers are not necessarily correct. It depends on the type of > transfer used by the device. > > I'm not familiar with how the FT245MB works. If it uses interrupt > transfers then there is no way to send or receive more than one packet > per frame. > > But if it uses bulk transfers then it is possible to send or receive up > to 19 packets per frame, depending on the device's capabilities.. > > Alan Stern > > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Libusb-devel mailing list > Libusb-devel@... > https://lists.sourceforge.net/lists/listinfo/libusb-devel > -- Met vriendelijke groeten, ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityHi Alan,
On Freitag, 16. Oktober 2009, Alan Stern wrote: > On Fri, 16 Oct 2009, Peter Stuge wrote: > > Juergen Beisert wrote: > > > Is there any way to increase this transfer capacity to 200,000 or > > > 300,000 chars a second, e.g. to force the host controller to poll > > > it more than only 1000 times a second (if there is no other USB > > > device than my FT245MB connected)? > > > > No. > > > > > Is there any mechanism in the kernel or libusb? > > > > Software can do nothing here, this is a hardware limit. Suggest you > > get a better USB chip. > > These answers are not necessarily correct. It depends on the type of > transfer used by the device. > > I'm not familiar with how the FT245MB works. If it uses interrupt > transfers then there is no way to send or receive more than one packet > per frame. > > But if it uses bulk transfers then it is possible to send or receive up > to 19 packets per frame, depending on the device's capabilities.. I don't know how the kernel driver handles data transfers. If I connect it to my host, the kernel states: [...] usb 4-1: new full speed USB device using uhci_hcd and address 2 usb 4-1: configuration #1 chosen from 1 choice usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial support registered for generic usbcore: registered new driver usbserial_generic drivers/usb/serial/usb-serial.c: USB Serial Driver core drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device ftdi_sio 4-1:1.0: FTDI USB Serial Device converter detected drivers/usb/serial/ftdi_sio.c: Detected FT232BM usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0 usbcore: registered new driver ftdi_sio drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver This device occures as: /dev/ttyUSB0 A "lsusb -v" gives me: [...] Bus 004 Device 002: ID 0403:6001 Future Technology Devices International, Ltd 8-bit FIFO Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0403 Future Technology Devices International, Ltd idProduct 0x6001 8-bit FIFO bcdDevice 4.00 iManufacturer 1 JBE iProduct 2 Logic Scanner iSerial 3 01-01 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 2 Logic Scanner Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered) [...] Regards, Juergen ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacity>> I know on windows the usb polling rate can be changed but I'm not sure
>> to what usb devices this applies >> (see also http://www.codinghorror.com/blog/archives/000832.html) >> >> It might be that on windows the usb polling rate defaults to 250ms for >> mouses only, i'm not sure. That web page (well, I didn't read the comments) talks about Hz, not ms, listing 125, 250, 500, and 1000 Hz. That corresponds to a minimum of 1ms (1000 Hz). >> On a final note, I think the latency timer of the FT245 can be set to >> 1ms (or maybe 2ms was the minimal setting) >> _but_ if the buffer is full the device not wait at all and send the >> buffer right away. Yes, though there's also a buffer on the host side, and you have to get the FTDI to think the entire send is done, unless your app is requesting only that much data. Wrt the latency timer, I've never had reliability with 1ms; I wouldn't go below 3ms. Maybe you can get better results? Also, are you looking for throughput or low latency? Michael ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityJan Wilmans wrote:
> > But if it uses bulk transfers then it is possible to send or receive up > > to 19 packets per frame, depending on the device's capabilities.. > > I know the FT245 uses bulk transfers and depending on the type (BM > or R) has a 384 or 256 byte buffer. .. > >> > Is there any way to increase this transfer capacity to 200,000 > >> > or 300,000 chars a second, So this is possible.. > >> > e.g. to force the host controller to poll it more than only > >> > 1000 times a second (if there is no other USB device than my > >> > FT245MB connected)? > >> > >> No. ..but the frame rate will not increase, and depending on the speed and width of the logic you want to be able to analyze, you may need larger buffers still. //Peter ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityOn Fri, 16 Oct 2009, Juergen Beisert wrote:
> I don't know how the kernel driver handles data transfers. If I connect it to > my host, the kernel states: > > [...] > A "lsusb -v" gives me: > > [...] > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x02 EP 2 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 0 The two "Transfer Type" lines indicate that the device does use bulk transfers. However it may have limitations of its own that prevent it from transferring more than one packet per frame. Have you tried using it at a faster rate? If you want to find out what's happening during a test, you can use usbmon (see Documetation/usb/usbmon.txt in the kernel source). Alan Stern ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityOn Freitag, 16. Oktober 2009, Michael Plante wrote:
> >> I know on windows the usb polling rate can be changed but I'm not sure > >> to what usb devices this applies > >> (see also http://www.codinghorror.com/blog/archives/000832.html) > >> > >> It might be that on windows the usb polling rate defaults to 250ms for > >> mouses only, i'm not sure. > > That web page (well, I didn't read the comments) talks about Hz, not ms, > listing 125, 250, 500, and 1000 Hz. That corresponds to a minimum of 1ms > (1000 Hz). > > >> On a final note, I think the latency timer of the FT245 can be set to > >> 1ms (or maybe 2ms was the minimal setting) > >> _but_ if the buffer is full the device not wait at all and send the > >> buffer right away. > > Yes, though there's also a buffer on the host side, and you have to get the > FTDI to think the entire send is done, unless your app is requesting only > that much data. Wrt the latency timer, I've never had reliability with > 1ms; I wouldn't go below 3ms. Maybe you can get better results? > > Also, are you looking for throughput or low latency? Both. :-) I tried with "echo 1 > /sys/class/tty/ttyUSB?/device/latency_timer" to avoid any skip of a transfer if the 64 byte FIFO is not already full. But with this setting it also saturates to 64000 bytes per second, due to the USB. That's why I'm asking, if there is a way to transfer more than one packet per 1ms frame. But currently I do not understand how to trigger up to 19 packets per frame (that means the USB host sends 19 requests per frame to the device if there is some data to read, right)? To do so, do I need a special kernel driver or special libusb programming or...? Juergen ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacity>> I tried with "echo 1 > /sys/class/tty/ttyUSB?/device/latency_timer"
>> to avoid any skip of a transfer if the 64 byte FIFO is not already full. I'm not familiar with that option. Is this project using ftdi-sio? I had been assuming otherwise... There is a separate mailing list for that driver in particular, and I don't think it uses libusb. >> that means the USB host sends 19 requests per frame to >> the device if there is some data to read, right I don't think it can know if there's data to read until it sends the request. If you have a request that has not been scheduled, it will try to schedule time. USB is completely polled, so if the host doesn't look for data, it never gets any. If it looks and there isn't any, it doesn't get any. >> do I need a special kernel driver If you're using libusb, I don't think so, but are you using libusb? Michael ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityJuergen Beisert wrote:
> how to trigger up to 19 packets per frame (that means the USB host > sends 19 requests per frame to the device if there is some data to > read, right)? To do so, do I need a special kernel driver or > special libusb programming or...? Make sure that there always are (preferably several) pending USB read requests. Note that libusb is exclusive to /dev/ttyUSB0. The former means the driver is in userspace, the latter comes from a kernel driver. You'll need to investigate programming the device more directly rather than relying on usb-serial. There's at least one library for ftdi, but AFAIU it is not in very good shape. Once you've made sure that there are always pending URBs there is not much more to do on the host. You need to look to the hardware then. //Peter ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityOn Freitag, 16. Oktober 2009, Alan Stern wrote:
> On Fri, 16 Oct 2009, Juergen Beisert wrote: > > I don't know how the kernel driver handles data transfers. If I connect > > it to my host, the kernel states: > > > > [...] > > > > A "lsusb -v" gives me: > > > > [...] > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x81 EP 1 IN > > bmAttributes 2 > > Transfer Type Bulk > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0040 1x 64 bytes > > bInterval 0 > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x02 EP 2 OUT > > bmAttributes 2 > > Transfer Type Bulk > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0040 1x 64 bytes > > bInterval 0 > > The two "Transfer Type" lines indicate that the device does use bulk > transfers. However it may have limitations of its own that prevent it > from transferring more than one packet per frame. > > Have you tried using it at a faster rate? Please tell me how I can do so, and I will try. The FTDI FT245BM can be controlled via an external EEPROM. With this EEPROM I can setup if the endpoints should be of type "isochronous". Could this setting improve anything? Thanks Juergen ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityJuergen Beisert wrote:
> > Have you tried using it at a faster rate? > > Please tell me how I can do so, and I will try. See other message. Make sure there are always URBs wanting to read data. > The FTDI FT245BM can be controlled via an external EEPROM. With > this EEPROM I can setup if the endpoints should be of type > "isochronous". Could this setting improve anything? Isochronous has reliable latency, but not guaranteed delivery. It does seem like a better fit for sampling data, but on the other hand samples could be lost. (Not without the driver noticing though.) //Peter ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacity>> The FTDI FT245BM can be controlled via an external EEPROM. With this
EEPROM I >> can setup if the endpoints should be of type "isochronous". Could this >> setting improve anything? Probably not, depending on your application. Isochronous will speed things up only if the bus is heavily utilized (starving bulk transfers), but is not reliable. Michael ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityOn Freitag, 16. Oktober 2009, Michael Plante wrote:
> >> I tried with "echo 1 > /sys/class/tty/ttyUSB?/device/latency_timer" > >> to avoid any skip of a transfer if the 64 byte FIFO is not already full. > > I'm not familiar with that option. Is this project using ftdi-sio? I had > been assuming otherwise... There is a separate mailing list for that > driver in particular, and I don't think it uses libusb. > > >> that means the USB host sends 19 requests per frame to > >> the device if there is some data to read, right > > I don't think it can know if there's data to read until it sends the > request. If you have a request that has not been scheduled, it will try to > schedule time. USB is completely polled, so if the host doesn't look for > data, it never gets any. If it looks and there isn't any, it doesn't get > any. > > >> do I need a special kernel driver > > If you're using libusb, I don't think so, but are you using libusb? Not yet. Currently I'm using the kernel driver that provides the "/dev/ttyUSB?" device node. I'm asking to get an idea what the best way is to improve the transfer capacitiy. As I understand now, with the libusb it should be possible. Thank you for the help Juergen ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityOn Freitag, 16. Oktober 2009, Peter Stuge wrote:
> Juergen Beisert wrote: > > how to trigger up to 19 packets per frame (that means the USB host > > sends 19 requests per frame to the device if there is some data to > > read, right)? To do so, do I need a special kernel driver or > > special libusb programming or...? > > Make sure that there always are (preferably several) pending USB read > requests. > > Note that libusb is exclusive to /dev/ttyUSB0. The former means the > driver is in userspace, the latter comes from a kernel driver. > > You'll need to investigate programming the device more directly > rather than relying on usb-serial. > > There's at least one library for ftdi, but AFAIU it is not in very > good shape. > > Once you've made sure that there are always pending URBs there is not > much more to do on the host. You need to look to the hardware then. That simply means more than one pending URB per frame means more than one data transfer per frame? Sounds too easy. But it also sounds like a good point to start... Thank you very much. Juergen ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityOn Fri, 16 Oct 2009, Juergen Beisert wrote:
> > Have you tried using it at a faster rate? > > Please tell me how I can do so, and I will try. Set the baud rate to a high value (larger than 640000) and connect to a device that sends data as fast as possible. > The FTDI FT245BM can be controlled via an external EEPROM. With this EEPROM I > can setup if the endpoints should be of type "isochronous". Could this > setting improve anything? As the other people have mentioned, this would not be a good idea. To work at higher speeds, you will have to stop using the kernel driver and write your own custom libusb-based driver instead. The kernel driver does not use multiple asynchronous URBs, so it can't transfer more than one packet per frame. Alan Stern ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacity>> > If you're using libusb, I don't think so, but are you using libusb?
>> >> Not yet. Currently I'm using the kernel driver that provides >> the "/dev/ttyUSB?" device node. I'm asking to get an idea what the best way >> is to improve the transfer capacitiy. As I understand now, with the libusb it >> should be possible. I have not tried to get high BW through ttyUSB, so I couldn't tell you if it's possible through that driver, but yes, it should be possible using the libftdi/libusb-0.1 combination. If you plan to use the asynchronous configure option for libftdi (Linux only), don't use libusb-compat. Steer clear of the ftdi-official d2xx drivers, as they're buggy (Windows and Linux versions) for all but the simplest situations. If the hardware is still not finalized, there are people here who strongly prefer other vendors' USB chips, and they have more experience with USB than I do. If you do use libftdi, you might consider subscribing here: http://www.intra2net.com/en/developer/libftdi/mailinglist.php Michael ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
|
|
Re: How to increase transfer capacityJuergen Beisert wrote:
> On Freitag, 16. Oktober 2009, Peter Stuge wrote: > >> Make sure that there always are (preferably several) pending USB read >> requests. >> > That simply means more than one pending URB per frame means more than one data > transfer per frame? Sounds too easy. But it also sounds like a good point to > start... > That's exactly right. USB is a scheduled bus. The host controller driver lays out all of the transfers for an entire frame in advance, then submits that layout to the hardware for execution. If you have 5 bulk requests submitted when he's laying out the next frame, and there is sufficient room available after handling isochronous and interrupt pipes, then your 5 requests will all be scheduled during that frame. -- Tim Roberts, timr@... Providenza & Boekelheide, Inc. ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Libusb-devel mailing list Libusb-devel@... https://lists.sourceforge.net/lists/listinfo/libusb-devel |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |