Content originally posted in LPCWare by Tsuneo on Mon Oct 07 20:09:24 MST 2013
MIC2555 is a full-/low-speed transceiver.
As it is compliant to the USB2.0 spec,
the max transfer speed over this chip is determined by the USB spec.
That is,
a) For interrupt and isoc transfer (periodical), transfer speed is proportional to the packet (transaction) size.
- interrupt: 64 bytes / 1ms frame / endpoint (max)
- isochronous: 1023 bytes / frame / endpoint (max)
b) For bulk and control transfer (non-periodical),
- bulk: 64 bytes x 19 packets / frame / endpoint (max)
- data stage of control transfer: same as bulk (depending on PC driver)
To get better transfer speed on bulk and control transfer,
1) Keep just the single endpoint active on the bus
- Connect just the full-speed device without any other full-/low-speed USB device
- or separate your full-speed device with a USB2.0 hub from other full-/low-speed device.
2) On the PC side, exchange as many bytes as possible (around 4K bytes) in single read/write call - Such a large transfer request is split into 64 bytes transactions on PC host controller (HC). HC fills the bus with the transactions one after another, immediately.
3) On the LPC3250 device, apply DMA to as large size transfer as possible, like the PC side.
The bus bit rate is fixed on USB. Therefore, the packet size and packets/(micro-)frame determines the transfer speed.
Tsuneo