I want to clock this USB device using an external clock source. What is the frequency tolerance I must meet for USB communications?
The USB 2.0 Specification defines the tolerances for data rates on the USB bus, including all drift sources. For low-speed communications, the data rate is specified to be 1.5 Mbps +/- 1.5%. For full-speed communications, the data rate is specified to be 12 Mbps +/- 0.25%.
If an external clock source is used as the USB clock, it must meet the above specifications for reliable USB communications. The internal oscillator on the device family can be used for either low or full-speed USB. If the internal oscillator is used for full-speed USB communications, 'clock recovery' must be enabled to ensure the data rate tolerance specification of +/- 0.25%.