ch579m usb 不能从halt或者休眠中唤醒。

在halt 或者sleep模式下,设置usb唤醒,不能成功。

以下是我的调用:

    USB_DeviceInit();

    NVIC_EnableIRQ( USB_IRQn );

    // configure USB as wakeup source , jason added 20210117

    PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_USB_WAKE );


这个是usb slave功能


image.png

你好,将睡眠函数参数中RB_PWR_EXTEND加进去试一下。


这个原来的lowpower_sleep中已经加了。现在似乎是仅靠usb dp,dm是无法唤醒的。

我用gpio唤醒后,再重新将dp使能一遍就可以。

请跟研发确认一下,是否是这个原理。如果是的话,那后续我们设计就用vbus做唤醒源了。



那你看一下工程中ram配置是不是在后16k,因为只有后面16k是数据数据可保持区域。


wangyy, 

       目前CH57x_usbdev.c以及我自己写的usbcdc.c 文件的data部分都已经放到ram 后16K中去了。

而且包括periphael.c (ble)的也已经放入。 目前整个ble的休眠,唤醒功能正常。 

       但usb未能正常唤醒,我看datasheet上写的是usb host才具有唤醒功能,slave似乎没有。请确认

是否如此。 

     USB 主机模式,强制DP/DM 输出K 状态/唤醒。 (datasheet page 76)


image.png

确认一下,目前是只有IDLE和Halt模式是支持USB唤醒的,睡眠Sleep模式、Shutdown下电模式是不支持USB唤醒的。


只有登录才能回复,可以选择微信账号登录