SOF Timing Problem with MCF5445x USB

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SOF Timing Problem with MCF5445x USB

1,044 Views
Thad
Contributor III
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?

Thanks,
 
Thad

Labels (1)
0 Kudos
1 Reply

296 Views
Thad
Contributor III
OK, after a bit of digging I've answered my own question.  Seems I had the MISCCR register configured to supply internal clock to the USB core, but with our clock speed the PLL can't supply 60MHz.  I need to supply an external clock source via the USB_CLKIN GPIO.

0 Kudos