In the first place, I never use MC9S08JM16/60 for reliable USB applications, because of degraded USB engine (SIE) on these chips. Just for toys. When I've seen the datasheeet of these MCUs, I was surprised that the SIE architecture resembles to PIC's so much. PIC USB SIE is notorious as trouble maker.
These discussions for PIC SIE are directly applied to these Freescale chips, too.
- Tight timing requirement of firmware on OUT-SETUP sequence (around 100 us dead-line response for USB interrupt)
http://www.microchip.com/forums/fb.aspx?m=403160
- Data toggle synchronization error for double buffer (ping-pong) on Set_Configuration(), Set_Interface() and Clear_Feature(ENDPOINT_HALT).
http://www.microchip.com/forums/tm.aspx?m=503200
I've seen this degraded SIE architecture for low-speed devices. It's in permissible range for low-speed applications, but not for full-speed devices. As one engaged in medical instruments development so long, I recommend Freescale to withdraw these chips from medical USB applications.
Tsuneo