[求助]CH374spi接口

請問374的spi接口正常連接后,怎么設(shè)置芯片的工作方式呀? 又怎么才能給予372發(fā)送指令呢?這方面的說明好像是沒有呀 請多多賜教!!!


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

實(shí)際上你只要通過SPI接口往374的寄存器里面寫相應(yīng)的數(shù)據(jù)就可以了。具體的設(shè)置你可以參考CH374DS1上面的寄存器的說明


哦,謝謝!![Emot]27[/Emot]


#define BIT_EP0_TRAN_RESP 0x0F /* 僅USB設(shè)備方式: 端點(diǎn)0發(fā)送響應(yīng): 0000~1000-應(yīng)答數(shù)據(jù)長度0~8,1110-應(yīng)答NAK,1111-應(yīng)答STALL,其它值-禁用 */ #define M_SET_EP0_TRAN_ACK( old, len ) ( (old) & ~ BIT_EP0_TRAN_RESP | (len) & 0x0F ) /* 僅USB設(shè)備方式: 端點(diǎn)0發(fā)送響應(yīng)/應(yīng)答ACK */ #define M_SET_EP0_TRAN_NAK( old ) ( (old) & ~ BIT_EP0_TRAN_RESP | 0x0E ) /* 僅USB設(shè)備方式: 端點(diǎn)0發(fā)送響應(yīng)/應(yīng)答NAK */ #define M_SET_EP0_TRAN_STA( old ) ( (old) & ~ BIT_EP0_TRAN_RESP | 0x0F ) /* 僅USB設(shè)備方式: 端點(diǎn)0發(fā)送響應(yīng)/應(yīng)答STALL */ #define BIT_EP0_RECV_RESP 0x30 /* 僅USB設(shè)備方式: 端點(diǎn)0接收響應(yīng): 00-應(yīng)答ACK,01-禁用,10-應(yīng)答NAK,11-應(yīng)答STALL */ #define M_SET_EP0_RECV_ACK( old ) ( (old) & ~ BIT_EP0_RECV_RESP | 0x00 ) /* 僅USB設(shè)備方式: 端點(diǎn)0接收響應(yīng)/應(yīng)答ACK */ #define M_SET_EP0_RECV_NAK( old ) ( (old) & ~ BIT_EP0_RECV_RESP | 0x20 ) /* 僅USB設(shè)備方式: 端點(diǎn)0接收響應(yīng)/應(yīng)答NAK */ #define M_SET_EP0_RECV_STA( old ) ( (old) & ~ BIT_EP0_RECV_RESP | 0x30 ) /* 僅USB設(shè)備方式: 端點(diǎn)0接收響應(yīng)/應(yīng)答STALL */ #define BIT_EP0_TRAN_TOG 0x40 /* 僅USB設(shè)備方式: 端點(diǎn)0發(fā)送同步標(biāo)志: 0-DATA0,1-DATA1 */ #define BIT_EP0_RECV_TOG 0x80 /* 僅USB設(shè)備方式: 端點(diǎn)0接收同步標(biāo)志: 0-DATA0,1-DATA1 */

我用的是374的spi接口,在CH374INI.C 的文件里有以上這幾個函數(shù),不明白是什么意思呀,能否高手幫解釋一下呀 非常感謝


這些不是函數(shù),是宏定義。 你得看看USB的協(xié)議中的幾種傳輸


這只是定義了一個宏,將端點(diǎn)0的狀態(tài)做了處理,為了方便向寄存器里送數(shù)據(jù)簡單些.你也可以不用這個宏定義,直接根據(jù)狀態(tài)往寄存器里送數(shù)據(jù)就可以了.


這個好像是涉及到了,USB協(xié)議的問題,所以有點(diǎn)難懂!


有哪位知道這幾個項(xiàng)目都是怎么用的么? // 設(shè)備描述符 const UINT8C MyDevDescr[] = { 0x12, 0x01, 0x10, 0x01, 0xFF, 0x80, 0x37, 0x08, 0x48, 0x43, 0x37, 0x55, // 廠商ID和產(chǎn)品ID 0x00, 0x01, 0x01, 0x02, 0x00, 0x01 }; // 配置描述符 const UINT8C MyCfgDescr[] = { 0x09, 0x02, 0x27, 0x00, 0x01, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x03, 0xFF, 0x80, 0x37, 0x00, 0x07, 0x05, 0x82, 0x02, 0x40, 0x00, 0x00, 0x07, 0x05, 0x02, 0x02, 0x40, 0x00, 0x00, 0x07, 0x05, 0x81, 0x03, 0x08, 0x00, 0x00 }; // 語言描述符 const UINT8C MyLangDescr[] = { 0x04, 0x03, 0x09, 0x04 }; // 廠家信息 const UINT8C MyManuInfo[] = { 0x0E, 0x03, 'w', 0, 'c', 0, 'h', 0, '.', 0, 'c', 0, 'n', 0 }; // 產(chǎn)品信息 const UINT8C MyProdInfo[] = { 0x0C, 0x03, 'C', 0, 'H', 0, '3', 0, '7', 0, '4', 0 };

UINT8 UsbConfig = 0; // USB配置標(biāo)志


這些是用來描述設(shè)備的特征的,計(jì)算機(jī)通過這些來識別USB設(shè)備 USB協(xié)議中有詳細(xì)的說明。


能不能具體些呢? 請問在上面的定義中 "語言描述符"怎么用的呀,為什么還要用到語言描述符呢? 還有就是"廠家信息"、"產(chǎn)品信息"中的“0x0E, 0x03,”“0x0C, 0x03,”這兩個前導(dǎo)是什么意思呢,我能不能改動呢? “廠商ID和產(chǎn)品ID”能隨意設(shè)置么?


在線等,幫幫忙呀!~~~~~~ 謝謝


語言描述符屬于字串描述符,具體使用請查看USB協(xié)議。 “廠家信息”、“產(chǎn)品信息”中的第一個字節(jié)表示總的長度,第二個字節(jié)表示字串描述表類型(0X03),后面是UNICODE 編碼的字串。


// 廠家信息 const UINT8C MyManuInfo[] = { 0x1C, 0x03, 'w', 0, 'w', 0, 'w', 0, '.', 0, '1', 0, '2', 0, '3', 0, 'c', 0, 'h', 0, 'i', 0, '.', 0, 'c', 0, 'n', 0 }; //www.123chi.cn // 產(chǎn)品信息 const UINT8C MyProdInfo[] = { 0x10, 0x03, 'P', 0, 'A', 0, 'I', 0, 'N', 0, 'T', 0, 'E', 0,'R', 0};//PAINTER 你看我這兩個這么改對么?

那 // 廠商ID和產(chǎn)品ID 是怎么用的呀? 配置描述符是怎么用的,有什么意義,用改么? 請教!!!!!~~~~~~~~


建議你先去好好看一下USB協(xié)議,這些在USB協(xié)議中都有說明的。 廠商ID和產(chǎn)品ID是用來識別的,不能隨便修改,驅(qū)動中也用到,如果隨便修改的話,會造成識別不起來的。 配置描述符給出了本設(shè)備相關(guān)的配置信息,具體你也得USB協(xié)議。僅僅用我們374與PC機(jī)通信的話,根本不需要你進(jìn)行修改,你如果是模擬其他設(shè)備來用的話,將其他設(shè)備的描述符添到其中即可。


現(xiàn)在我要定制自己的產(chǎn)品,當(dāng)然讓它顯示我們的產(chǎn)品信息啦,所以這不僅僅是一個通信問題啊,這是一個產(chǎn)品的完整性問題. 要完成我上述的功能,在改了廠家信息,產(chǎn)品信息,還需要改別的東西么? 還是就改了這兩個就行了呀


這還要看你是定制什么樣的產(chǎn)品,有的產(chǎn)品只修改上述的描述符還不夠。例如U盤,還需要修改SCSI命令集中Inquire命令的返回?cái)?shù)據(jù)??傊愕孟攘私庖幌耈SB協(xié)議和相關(guān)USB類設(shè)備協(xié)議(就是你要做的產(chǎn)品)。


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

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