咨詢isochronous endpoint和interrupt endpoint是否可以在CH552上共存?

你好,

我想用CH552做一個聲卡和鍵盤復合設備。我把端點1設置為Isochronous Output? ,端點2設置為Interrupt Input。于是遇到一個奇怪的問題:

當CH552直接插電腦(Win10臺式機,INTEL和M1 Macbook Pro)的USB口,聲卡無輸出時,總線正常對端點2做PID IN請求,CH552也能正常輸出NAK。但是聲卡一旦輸出,總線就不會做PID IN請求,每幀里就只有聲卡的Isochronous傳輸。與此同時,主機的HID驅動因為得不到數(shù)據(jù),會反復對USB BUS發(fā)RESET,也就造成聲音斷斷續(xù)續(xù)。

但是,如果CH552和主機之間隔著個HUB,就沒問題。我測試了Terminus FE1.1和Realtek RTS5411都可以。


下面付了USB信號的截圖。第一張是直接插電腦的圖,只有Isochronous傳輸。

第二張是經(jīng)過USB HUB的圖,Isochronous開始后125us,Interrupt傳輸開始。雖然SOF還是1ms間隔,但是似乎USB HUB插了微幀給CH552用。


請問CH552是否有可能讓isochronous endpoint和interrupt endpoint在直接插電腦的情況下也能共存?


1714026537150903.png1714026537136463.png



補充一下,interrupt傳輸丟失的問題似乎不是端點的問題而是描述符的問題。

Tinyusb庫里的cdc_uac2例程可以實現(xiàn)兩個Isochronous,一個interrupt和兩個Bulk同時使用,SOF之間的空隙基本可以占滿。

C4NDY_KeyVLM項目通過調用Tinyusb實現(xiàn)了UAC2和HID的共存。


總結,通過邏輯分析儀發(fā)現(xiàn)CH552的Isochronous數(shù)據(jù)后面有ACK,而TINYUSB沒有。正常Isochronous是不應該有ACK的。

經(jīng)檢查是UEP_R_RES_TOUT配置不正確導致,故障排除。


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

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