StarterWare AM1808 1.00.03.03 usb_dev_bulk exampleAdjusting library code at usblib / device / usbdbulk.c
By "cannot enumerate" I mean on Windows hosts in Device Manager: "This device cannot start. (Code 10)"
am i missing something? thanks!!
Is this why?
sprufw6b.pdf section 2.6:
Therefore RX(2048) + TX(2048) will be too big? But then why can't I set, say, the IN FIFO to 1024 and the OUT FIFO to 2048? Is there a symmetry requirement?
Are the 2048 and 4096 options vestigial? (E.g., work for OMAP-L138?) And what does the "biju" comment mean for 8192?
Alternatively, USB in a nutshell: Maximum data payload size for high-speed devices is 1024 bytes. [but isn't packet > payload?]? But then, why are the 2048, 4096, 8192 options even available at all?
Hi Jonathan Chen,
The 4K restriction is true for Dynamic FIFO configurations only.
The StarterWare USB stack supports endpoint FIFOs and have been tested for FIFO size 64.
Are you testing the bulk class application provided with StarterWare?
Can you please let us know the reason for your trying to go for FIFO sizes up to 4k please?
have you made any changes to use DMA in your application?
Regards
Sirish
Dear Sirish,
Yes, I am testing the StarterWare AM1808 usb_dev_bulk example, no changes to DMA in the example or the library code.
Reasons for changing FIFO size:
Newer observations from my testing with usb_dev_bulk, using the same size FIFO for Tx and Rx (this is probably required for loopback?):
Thank you!Jonathan
Also, from sprufw6b.pdf Section 2.7.1.2.1.2
the payload (packet size) for transfers over the USB and is required by the USB Specification to be either 8, 16, 32, 64 (Full-Speed or High-Speed) or 512 bytes (High-Speed only)
Further testing with EVM as a Full Speed device (default was High Speed)
This pretty much explains the problem, although there are some outstanding mysteries: