【已解決】CH32X035系列是否支持USB設(shè)備模式SOF包中斷

之前在用CH552系列的時(shí)候,設(shè)備斷連功能是用SOF包超時(shí)實(shí)現(xiàn)的。但移植到CH32X033上時(shí),發(fā)現(xiàn)“USBFS_UIS_TOKEN_SOF”這個(gè)case并不會(huì)觸發(fā),查閱手冊也未發(fā)現(xiàn)該芯片作USB設(shè)備時(shí)SOF包中斷標(biāo)志的相關(guān)信息。

我想咨詢:

1 CH32X035系列是否支持USB設(shè)備模式下SOF包的檢測?若支持,應(yīng)該如何配置USB中斷?

2 若不支持USB設(shè)備模式的SOF包檢測,是否還有其他方法判斷設(shè)備是否與主機(jī)失去連接(但VBUS保持有電的情況)?

謝謝!


8月22日更新:該問題已解決,方案是采用SUSPEND中斷替代檢測SOF包超時(shí)來判斷失去與主機(jī)通信。

你好,CH32X035做USB設(shè)備沒有檢測SOF包的中斷,想要檢測是否與主機(jī)連接,在Vbus有電的情況下,我理解為并不是物理意義的連接斷開,而是是否與主機(jī)正常通信,這種情況可以通過檢測Suspend中斷來判斷,這種原理與判斷SOF超時(shí)一樣,總線上超過一定時(shí)間沒有活動(dòng),X035的USB設(shè)備會(huì)進(jìn)入Suspend中斷;

Suspend中斷在USB的R8_INT_EN寄存器中配置,如下圖:

image.png


是這樣的,我在測試一些KVM切換器的時(shí)候,有些KVM切換器在切換連接的時(shí)候是不會(huì)斷開VBUS的,這時(shí)就會(huì)導(dǎo)致USB直接被連到一個(gè)完全不同的主機(jī)(甚至可能沒有在運(yùn)行)。我在原先的設(shè)計(jì)上是連續(xù)缺少2個(gè)SOF即認(rèn)為連接斷開。不知道這種判斷方法是否可以應(yīng)對(duì)此種不規(guī)范的KVM切換行為。

有些資料寫一些其他品牌的MCU在失去幾個(gè)應(yīng)該有的SOF之后會(huì)進(jìn)入SUSPEND中斷,不知道X035系列是否也是這樣的?


X035作為USB設(shè)備也是這樣的,在與主機(jī)斷開通信超過3ms后,就會(huì)掛起進(jìn)入Suspend中斷


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频