CH579例程USB device問題

測試了CH579的USB device例程,是官網(wǎng)下載的CH579EVT.ZIP。發(fā)現(xiàn)兩個例程電腦都無法識別,顯示未知設備。電腦是win7 64位系統(tǒng),有問題嗎?板子是可以正常通過USB接口下載程序的,硬件肯定沒問題。兩個例程應該一個是HID的一個vendor的,照道理HID也不需要裝驅動啊,請幫忙看看什么原因,論壇找了一圈看沒人問這個問題,程序估計也沒問題。用jlink調試發(fā)現(xiàn)R8_USB_INT_FG返回是0x09。

usb.PNG

Usb的代碼是不能仿真的,仿真會導致枚舉失敗。廠商自定義設備需要安裝372的驅動。建議你用isp工具直接下載運行。



你好,我不是要下載程序,我是調試USB的功能。

我不用中斷,用加打印測試了一下,還是有點問題。

我在CompoundDev例程的void USB_DevTransProcess( void )里所switch分支加了打印,從串口的輸出情況看,打印內容如下:可以看出進入了枚舉狀態(tài),但是主機下發(fā)的SetupReqCode一直是0,沒有取設備描述符的0x06。

UIS_TOKEN_SETUP

SetupReqCode =0

USB_GET_STATUS

RB_UIF_TRANSFER

UIS_TOKEN_IN!

SetupReqCode =0

RB_UIF_TRANSFER

UIS_TOKEN_OUT!

SetupReqCode =0


后來簡單修改了一下代碼:

case USB_GET_STATUS:

printf("USB_GET_STATUS\n");

pEP0_DataBuf[0] = 0x00;

pEP0_DataBuf[1] = 0x00;改為0x06

這樣修改后siwth分支能進入USB_GET_DESCRIPTOR,但是pSetupReqPak->wValue=0,所以也是不對,幫忙看看是什么問題,謝謝,以下是修改代碼后的串口打?。?/p>

[22:25:28.043]收←◆RB_UIF_TRANSFER

UIS_TOKEN_SETUP

SetupReqCode =6

USB_GET_DESCRIPTOR



不用中斷? USB從機建議用中斷來操作,例子是直接可用的,還有中斷里面不建議加過多的打印,會影響枚舉。


不好意思,說錯了,是不用調試,不是不用中斷。


正常枚舉 ?USB_GET_STATUS 不用發(fā)這個命令

你直接用evt里面提供的hex,不做任何修改,試試能不能枚舉

image.png


果然是打印的問題,把打印去掉就可以枚舉了,感謝支持!


強調一下,USB枚舉階段對于setup包相應的時間是有要求的,不建議加過多或者過于頻繁的打印,會影響設備回包,造成枚舉異常。
一般調試可以借助bushound(純軟件,網(wǎng)上可以搜索到),或者使用USB分析儀抓包工具進行USB通訊分析。
http://m.findthetime.net/downloads/USB11Monitor_ZIP.html


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

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