ch376同步標(biāo)志問題?

現(xiàn)在的方案是: 單片機(jī)+ch376作為主機(jī),與我們公司的儀器(USB設(shè)備)通訊。

問題: 1.ch376的同步碼需要定義幾個(gè)全局變量?是收發(fā)共用一個(gè)還是各自要定義一個(gè)?

我見ch375操作鍵盤的例程里用了兩個(gè),可是在出376的例程里是用了一個(gè),通過一個(gè)結(jié)構(gòu)_Device_Atti->_Device->tog;。

2.ch376的同步碼的值是什么?0x80和0xC0 還是 0x80和0x00?初始值映射為多少?

先謝謝了!


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

你可以參考一下我們的CH376DS2.PDF (1)需要兩個(gè)全局變量,收和發(fā)各用一組同步標(biāo)志。CH376也是兩組,只是操作鼠標(biāo)鍵盤只用到收所以結(jié)構(gòu)體之定義了一個(gè)tog。 (2)同步標(biāo)志的位7為主機(jī)端點(diǎn)IN的同步觸發(fā)位, 位6為主機(jī)端點(diǎn)OUT的同步觸發(fā)位。即發(fā)的同步碼是40,收的同步碼80.


謝謝, 1.改成了發(fā)的同步碼是和0x40異或,收的同步碼是和0x80異或,收發(fā)都通了,這里有個(gè)問題,初始值應(yīng)該設(shè)成多少? 我現(xiàn)在是初始值都為0x00.

2.現(xiàn)在手頭有ch376,所以就用它先調(diào)試了。據(jù)說ch375也能實(shí)現(xiàn)上述功能,且價(jià)格便宜,所以后邊做板子是還是想用ch375的。 問題:a。ch375可以用CMD_ISSUE_TKN_X這個(gè)命令嗎?到時(shí)是不是還得改程序? b。ch376和ch375的價(jià)格分別大概是多少?

3.請(qǐng)教個(gè)調(diào)試問題: a。我不知道我的設(shè)備什么時(shí)候向主機(jī)發(fā)送數(shù)據(jù),所以主機(jī)應(yīng)該定時(shí)的向設(shè)備查詢有沒有數(shù)據(jù),這種思路對(duì)嗎? b。我現(xiàn)在用接收數(shù)據(jù)的函數(shù)unsigned char host_recv( unsigned char *buf ),查詢,也就是從我們的設(shè)備接收數(shù)據(jù),但是在設(shè)備沒有發(fā)送數(shù)據(jù)的時(shí)候,程序走到這個(gè)函數(shù)的issue_token()中,一直等待中斷,就是說在設(shè)備沒有發(fā)送數(shù)據(jù)的情況下,執(zhí)行函數(shù)issue_token()的里命令CMD2H_ISSUE_TKN_X,沒有返回中斷狀態(tài)嗎? 我理解,如果沒有數(shù)據(jù),也應(yīng)該有返回中斷狀態(tài),說是接收緩沖器為空啊,求講解啊。


(1)初始值都為0 (2)CH375也有CMD_ISSUE_TKN_X這個(gè)命令,也能實(shí)現(xiàn)你的功能。 價(jià)格的話聯(lián)系我們銷售:025-52638377/388/389 (3)USB傳輸都是主機(jī)發(fā)起的,如果設(shè)備發(fā)數(shù)據(jù),主機(jī)可以每隔一段時(shí)間來查詢。 沒有數(shù)據(jù)也會(huì)產(chǎn)生中斷,只是中斷狀態(tài)不是成功的狀態(tài)值。


那種情況下還是沒有產(chǎn)生中斷。

我是連續(xù)執(zhí)行host_recv()5次,如果設(shè)備是只發(fā)送了2次數(shù)據(jù),主機(jī)接收第3次的時(shí)候,執(zhí)行CMD2H_ISSUE_TKN_X命令后就沒有中斷了。這個(gè)時(shí)候,拔掉USB設(shè)備,會(huì)產(chǎn)生中斷,值為0x16。

請(qǐng)問:什么情況下,執(zhí)行CMD2H_ISSUE_TKN_X命令不會(huì)產(chǎn)生中斷???

我是這樣證明的, 在發(fā)送完指令后,我讓程序延時(shí)幾秒種,這個(gè)時(shí)間內(nèi)我用示波器觀察中斷引腳信號(hào),沒有看到低電平:

unsigned char issue_token(unsigned char * endptog, unsigned char endp_and_pid ) // 執(zhí)行USB事務(wù) { // 執(zhí)行完成后, 將產(chǎn)生中斷通知單片機(jī), 如果是USB_INT_SUCCESS就說明操作成功 unsigned char status; kkk++; xWriteCH376Cmd( CMD2H_ISSUE_TKN_X);//CMD_ISSUE_TOKEN ); xWriteCH376Data( *endptog ); //// Delay_ms(2); xWriteCH376Data( endp_and_pid ); // 高4位目的端點(diǎn)號(hào), 低4位令牌PID

if(kkk==3) { COM_DEBUG_SendStr("kkk == 3..."); ////停止1 Delay_ms(3000); COM_DEBUG_SendStr("kkk == 3 out"); ////停止2 }

do{ status = Query376Interrupt(); //等待CH375操作完成 }while(0 == status); ....... }


你這種情況是因?yàn)闆]有數(shù)據(jù)時(shí)你的設(shè)備一直給CH376發(fā)送NAK。這樣CH376執(zhí)行host_recv()會(huì)一直重試(不修改的話無限次)。你可以設(shè)置重試次數(shù)讓CH376重試一定次數(shù)后結(jié)束,結(jié)束后接收會(huì)產(chǎn)生中斷。


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

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