在halt?或者sleep模式下,設(shè)置usb喚醒,不能成功。
以下是我的調(diào)用:
? ? USB_DeviceInit();
? ? NVIC_EnableIRQ( USB_IRQn );
? ? // configure USB as wakeup source , jason added 20210117
? ? PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_USB_WAKE );
在halt?或者sleep模式下,設(shè)置usb喚醒,不能成功。
以下是我的調(diào)用:
? ? USB_DeviceInit();
? ? NVIC_EnableIRQ( USB_IRQn );
? ? // configure USB as wakeup source , jason added 20210117
? ? PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_USB_WAKE );
這個是usb slave功能
你好,將睡眠函數(shù)參數(shù)中RB_PWR_EXTEND加進去試一下。
這個原來的lowpower_sleep中已經(jīng)加了?,F(xiàn)在似乎是僅靠usb dp,dm是無法喚醒的。
我用gpio喚醒后,再重新將dp使能一遍就可以。
請跟研發(fā)確認一下,是否是這個原理。如果是的話,那后續(xù)我們設(shè)計就用vbus做喚醒源了。
那你看一下工程中ram配置是不是在后16k,因為只有后面16k是數(shù)據(jù)數(shù)據(jù)可保持區(qū)域。
wangyy,?
? ? ? ?目前CH57x_usbdev.c以及我自己寫的usbcdc.c?文件的data部分都已經(jīng)放到ram?后16K中去了。
而且包括periphael.c (ble)的也已經(jīng)放入。?目前整個ble的休眠,喚醒功能正常。?
? ? ? ?但usb未能正常喚醒,我看datasheet上寫的是usb host才具有喚醒功能,slave似乎沒有。請確認
是否如此。?
? ? ?USB 主機模式,強制DP/DM 輸出K 狀態(tài)/喚醒。 (datasheet page 76)
確認一下,目前是只有IDLE和Halt模式是支持USB喚醒的,睡眠Sleep模式、Shutdown下電模式是不支持USB喚醒的。