[I have been searching for a better forum for beginning USB developers than this. If you know of one, point me there. FreeScale seems not to have one.]
I have been asked to implement a USB host on a system on a FreeScale MPC855 platform. The USB controller requires the programmer to schedule the SOF "heartbeat" without assistance from the USB controller. The spec calls for an SOF every 1 ms +- 500 ns. I know I can't do that without losing out on other real-time commitments in the system.
How critical is the SOF heartbeat? Can I skip it completely? What happens if I go two ms between SOFs? I imagine that the function (a Mass Storage unit) might enter suspend state.