32V307寄存器R8_USB_SPEED_TYPE問題求解

image.png


如圖所示,這里使用串口打印?R8_USB_SPEED_TYPE 寄存器的值。

因為實(shí)際使用中出現(xiàn)了奇怪的問題,就連續(xù)打印5次值用于測試,然后就出現(xiàn)了如圖所示的奇怪現(xiàn)象。

為什么這個寄存器的值,每次讀取都具有很大的隨機(jī)性呢。

如圖,剛開始枚舉的是 USB-HS 設(shè)備,第一次讀值為1(高速)正確;后面四次讀為0(全速),這就有問題了。

然后SETUP過程中,上位機(jī)會總線復(fù)位一次,這里為了區(qū)分設(shè)置了計數(shù)器累加。

總線復(fù)位后,第一次讀為0(全速)錯誤,后面四次讀為1(高速)正確。


請問要在什么情況下,這個寄存器的值才能總是讀出正確的結(jié)果呢?

你好,高速USB的插入檢測由硬件完成,有交互的過程,所以在通信之前不好判斷,可以在SETUP中斷的地方讀取。


問題是,協(xié)議速度不匹配,下位機(jī)就收不到SETUP包。

所以在SETUP中斷里面檢測這個就沒意義了。

如圖所示,下位機(jī)的SETUP中斷是在協(xié)議速度匹配后才收到的:

image.png


你好,這個現(xiàn)象好像有點(diǎn)奇怪,正常的檢測過程是,先識別為全速,如果是高速的,設(shè)備會主動發(fā)起協(xié)商,協(xié)商成功后變?yōu)楦咚?。就是說如果主機(jī)不支持高速,會用全速去跑。這個現(xiàn)象好像是主機(jī)協(xié)商成功了高速,但是又不用高速的去跑,像是主機(jī)兼容性的問題。這邊用307的FS口做主機(jī)是可以給HS正常枚舉的,不過你的這個處理方法也挺不錯的。


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

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