在halt 或者sleep模式下,设置usb唤醒,不能成功。
以下是我的调用:
USB_DeviceInit();
NVIC_EnableIRQ( USB_IRQn );
// configure USB as wakeup source , jason added 20210117
PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_USB_WAKE );
在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功能
你好,将睡眠函数参数中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)
确认一下,目前是只有IDLE和Halt模式是支持USB唤醒的,睡眠Sleep模式、Shutdown下电模式是不支持USB唤醒的。