CH569 USB3.0 BULK出現(xiàn)復(fù)位

在使用USB3.0 BULK 實現(xiàn)UVC時,在ITP中斷中如果獲取到的待發(fā)送的包數(shù)量大于等于設(shè)置的最大數(shù)量時,再調(diào)用一次send_ready,主機會發(fā)送復(fù)位。請問是怎么回事?

代碼如下:

image.png

請問,當(dāng)通過USB30_IN_Nump函數(shù)讀到的剩余待發(fā)送包數(shù)量為最大時要怎么恢復(fù)呢?我實際測試發(fā)現(xiàn),一旦變成最大值不管時等待,還是重新調(diào)用Send_ERDY都無法恢復(fù)。


CH569/565,USB3.0的BULK傳輸,最大nump為4. ISO傳輸支持最大nump為16.

實現(xiàn)BULK傳輸時,始終應(yīng)當(dāng)在進入對應(yīng)傳輸?shù)腃ALLBACK中或之后,處理剩余的或者是下一次數(shù)據(jù)的傳輸。

且在調(diào)用send_erdy之前,始終應(yīng)當(dāng)配置IN_SET或者是OUT_SET.

可以參考:?http://www.findthetime.net/bbs/thread-86707-1.html



請問在什么情況下會造成數(shù)據(jù)發(fā)送不出去?

我現(xiàn)在是BULK傳輸,nump設(shè)置成1,包長度是12。發(fā)送數(shù)據(jù)先調(diào)用USB30_IN_Set,再調(diào)用USB30_Send_ERDY,這樣運行一段時間后數(shù)據(jù)就發(fā)不出去了,用bushound抓不到數(shù)據(jù),也沒有IN中斷觸發(fā)。

image.png



需要確保在任意時刻,主機和從機的收發(fā)步調(diào)一致。

通俗的說,從機接下去想要上傳,主機接下去想要下傳,那USB后續(xù)就卡死了。


從貼出的代碼看,這是個同步端點?如果是同步端點,則不應(yīng)當(dāng)調(diào)用send_erdy函數(shù)。同步傳輸?shù)拇a實現(xiàn)請參考:

http://www.findthetime.net/bbs/thread-91615-1.html

image.png


USBSS->UEP1_TX_DMA需要指向16字節(jié)對齊的地址,不然也會有問題。


我用的是BULK傳輸,端點1不能作為BULK傳輸?shù)亩它c嗎?

我是UVC設(shè)備,單一方向,不存在主機發(fā)數(shù)據(jù)。


我在USB30_Send_ERDY之后打印一個log,經(jīng)過長時間(10分鐘以上)測試不會出現(xiàn)數(shù)據(jù)發(fā)送不出去的情況,這是怎么回事呢?

不加log,堅持不到2分鐘就會出現(xiàn)數(shù)據(jù)無法發(fā)送出去。


請問這個代表什么意思(USBSS->UEP1_TX_CTRL >> 21) & 0x1F;

數(shù)據(jù)發(fā)送不出去的時候這個的遞增和要發(fā)送的包個數(shù)不一致。正常情況每次發(fā)4包,這個值的遞增也是4;異常時發(fā)送4包,這個值的遞增是1,然后就不產(chǎn)生IN中斷了。


我在代碼里后來添加了等待這個值的遞增和要發(fā)送的包數(shù)一致的代碼(也不知道這樣寫是否正確),偶爾也會出現(xiàn)無IN中斷產(chǎn)生的情況。

image.png



使用CH569/565 USBSS功能時請基于CH372DEVICE函數(shù)庫: http://www.findthetime.net/bbs/thread-91615-1.html

image.png

該函數(shù)庫為唯一受支持且維護的。


你好,我下載了你說的這個庫函數(shù),代碼流程沒有修改,只是打開了Log,燒錄到569后USB無法識別。請問是什么原因呢?

image.png

image.png



之前代碼USB2.0控制傳輸請求響應(yīng)有些問題,代碼已更新,請前往下載。


請問下,HSPI中斷優(yōu)先級比USB中斷優(yōu)先級高的情況下,如果某一時刻這2個中斷條件同時產(chǎn)生了,會不會造成USB中斷無法響應(yīng)的情況?


正常處理的情況下不會有問題(正常做些緩沖區(qū)處理、狀態(tài)切換、控制使能之類操作)。

同樣的問題,也可以提問成:

"USB中斷優(yōu)先級比HSPI中斷優(yōu)先級高的情況下,如果某一時刻這2個中斷條件同時產(chǎn)生了,會不會造成HSPI中斷無法響應(yīng)?"

是一樣的道理,中斷本身就不適合處理特別花費時間的運算。


你好,更新了庫文件后還是會出現(xiàn)USB中斷無響應(yīng)的問題,我把寄存器信息打印出來了,麻煩看下是什么原因。紅色框是USB中斷沒響應(yīng)后的值。代碼還是之前那樣,先設(shè)置DMA地址,再IN_Set,最后send_ERDY。

image.png



可以帖一下代碼相應(yīng)端點CALL_BACK中是怎么寫的,如果有在別的地方也調(diào)用了IN_SET函數(shù),可以一起貼出來,簡單描述下調(diào)用的邏輯,看下是否有不合理的地方。


icon_rar.gifusb_in.rar

代碼如附件,麻煩看下哪里有問題


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

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