cancel
Showing results for 
Search instead for 
Did you mean: 

USB Wakeup problem

rkleine9
Associate II
Posted on August 31, 2009 at 08:21

USB Wakeup problem

2 REPLIES 2
rkleine9
Associate II
Posted on May 17, 2011 at 13:22

Hello,

I encountered a problem with my STM32f103Z. It cannot wake from USB wakeup interrupt.

I read the eratta-sheet, and followed the workaround. (so I set up the exti-line 18 for interrupt, and not event-mode.

When the processor is not asleep, the interrupt-handler is called, when the usb cable is connected.So this interrupt is working right. But when it is asleep it won't wake-up, by connecting the usb cable.

I used several other EXTI-Lines, and they all work, but except for the USB-Wake-up (EXT-I-Line 18)

Can some help me on this?

Regards, Remco

[ This message was edited by: r.kleine on 31-08-2009 10:17 ]

madhava
Associate
Posted on May 17, 2011 at 13:22

Hello Remco,

I am also facing the same problem with STM32_SK_IAR kit.AFter configuring the exti-line 18 for interrupt,USB wakeup is not happening and even USB Enumeration also failing.

My observation is as follows

The evalution board is STM32-SK-IAR(STM32F10xx).

The application is :

\Embedded Workbench 5.4 Kickstart\arm\examples\ST\STM32F10x\STM32F10xUSBLib\USBLib\demos\JoyStickMouse.

1. Bus Powered case:

a. Enumeration is working allways.

b. Suspend and resume are working fine when Host Machine enters Stand by mode and comes back from Stand by.

2. Self powered case:

a. the same code which is working for the Bus Powered case is not enumerationg allways.

Sometimes it enumerates properly, But sometimes it won't enumerate.

When the the following portion of the code is commented, enumeration is working properly always.

/* Set SLEEPDEEP bit of Cortex System Control Register */

*(vu32 *) SCB_SysCtrl |= SysCtrl_SLEEPDEEP_Set; // Clock to the core also stopped.

Commenting this code means making the Core to enter into SLEEP state only.That means clock to the core is supplied.

So in DEEPSLEEP state Core wake is not happening, any pointers for this?

The reason for the device not enumerating continuously could be when the core is in DEEPSLEEP state,After connecting the USB device may be core taking long time to come out of the DEEPSLEEP state. can someone please confirm wether this is the problem?.

Please provide any pointers here, what could be the problem here?

Has anyone made the Suspend and resume work with USB self powered case?

From the errata document(STM32F10xx8/B errata sheet), it clearly stated like waking the core from the Event is not possible, we have to configure EXTI line 18 as Interrupt only.I am not sure wether EXTI Line 18 interrupt mode is working or not?

b. After doing the above modification Suspend and resume are working fine when Host Machine enters Stand by mode and comes back from Stand by mode.

DID you got any luck on this?

If anyone else faced this problem earlier, please share the work around.

Regards,

Madhav

[ This message was edited by: madhava.chirukuri on 31-08-2009 14:37 ]