? ? ? 正在開發(fā)一款產(chǎn)品,? ? ?現(xiàn)在需要在空閑時(shí)候進(jìn)入低功耗 ,但進(jìn)入低功耗之后USB無法通信,
? ? ?我需要知道USB是否連接到電腦, 如果有連接,則不進(jìn)入 低功耗
? ? ?
? ? ?請(qǐng)問有這種函數(shù),或者解決方案嗎?
? ? ? 正在開發(fā)一款產(chǎn)品,? ? ?現(xiàn)在需要在空閑時(shí)候進(jìn)入低功耗 ,但進(jìn)入低功耗之后USB無法通信,
? ? ?我需要知道USB是否連接到電腦, 如果有連接,則不進(jìn)入 低功耗
? ? ?
? ? ?請(qǐng)問有這種函數(shù),或者解決方案嗎?
您好,“不連接時(shí)”,USB接口是物理拔出的,還是物理接入但電腦沒有識(shí)別。
如果是物理拔出狀態(tài),為了判斷電腦是否物理接入,可以將USB座子外殼不接GND,接到582的GPIO引腳上,接入電腦時(shí),外殼同時(shí)接GND以提供低電平。CH582在休眠時(shí)可以保持USB配置,D+引腳上的1.5K上拉是可以保持的。如果需要盡可能節(jié)省引腳,USB的信號(hào)線在電腦端是有15K的下拉電阻的,可以在MCU休眠前關(guān)閉USB功能,將UD+或UD-信號(hào)腳輸入上拉,配置為GPIO下降沿喚醒引腳,接入電腦時(shí)由UD+或UD-信號(hào)線上主機(jī)端的下拉提供喚醒電平,喚醒后重新初始化USB功能進(jìn)行枚舉。
如果已經(jīng)處于物理接入的狀態(tài),MCU讀到D-引腳上有接到主機(jī)的下拉電阻,或者讀到USB外殼已經(jīng)接了GND,但電腦沒有識(shí)別,可以關(guān)閉USB使能,延時(shí)10ms后重新初始化USB,讓電腦端重新枚舉。
對(duì)于物理拔出電腦的判斷,可以在USB代碼的SUSPEND中置標(biāo)志,判斷是否斷開進(jìn)入休眠。
多謝