USB reset

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

USB reset

4,624 Views
MH
Contributor I
I'm working through the steps on page 28-48 of the MCF547x Reference Manual (Rev 3) in order to initialise the USB module on a 5474. It is my understanding that the USB reset in step 1 (set USBCR[USBRST]) results in the RSTSTOP interrupt in step 7 but I am not seeing this interrupt. I have the relevant interrupt unmasked and the appropriate interrupt level and priority enabled but I don't see the interrupt status register change which should change even if the interrupt is masked.
 
As a quick test I tried to poke a long to USBCR of value 4 (USB reset) and expected to see bit 5 set in USBISR to indicate the end of the reset but this does not happen. Can anybody tell me what I may be doing wrong or is the RSTSTOP interrupt not triggered by a USB reset initiated by USBCR[USBRST] ?
 
Thanks,
  Malcolm
Labels (1)
0 Kudos
Reply
2 Replies

1,080 Views
mnorman
NXP Employee
NXP Employee
The RSTSTOP interrupt will not be triggered until after the USB 2.0 Device Controller has seen the end of the reset signaling on the USB.  This will occur after the cable is plugged into an active USB and the host/hub detects the device (by the signal levels on D+/D-) and resets the bus.  You can refer to section 7.1.7.5 of the USB Specification (rev 2.0) for more information on the Reset SIgnaling.
 
Note that you cannot access the 8 and 16 bit registers until the Vbus signal is detected.  The RSTSTOP interrupt is suggested as an indication to software that the cable is connected to a USB with a stable Vbus.

Message Edited by mnorman on 04-06-2006 10:56 AM

0 Kudos
Reply

1,080 Views
MH
Contributor I
Thank you for the reply. Your statement about the 8 and 16 bit registers answers another question I had although I could not find that statement in the 547x manual. Are there any more undocumented items about the USB that you could list or are there any plans to publish a more complete manual? I spent some time trying to figure out why I could read/write some registers but not others.
 
Regards,
Malcolm
0 Kudos
Reply