32V307寄存器R8_USB_SPEED_TYPE問(wèn)題求解

image.png


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

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

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

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

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

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


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

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


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

所以在SETUP中斷里面檢測(cè)這個(gè)就沒(méi)意義了。

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

image.png


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


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

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