I am using the internal USB tranceiver on a coldfire MCF54455 to talk to a full speed USB device. I can get the device to connect and get partway through the enumeration process but will eventually fail with non-ACKed packets. A trace with a USB protocol analyzer shows that coldfire is sending out SOF packets every 900 microseconds instead of every 1000. When I run linux on this same hardware I see the correct timing, so I know the hardware is fine. I can't find anything obviously different between how I've configured the part compared to how Linux is doing it or what the ref docs say. Can anyone point me in the right direction? What would be causing the TT put out start of frame packets with incorrect timing like this?