在使用CMD_DirectWrCmd的時(shí)候 發(fā)現(xiàn)底層操作的時(shí)候,有一些的命令是需要中斷返回的。 但是我用的是U盤讀寫模塊,并不是用CH375直接和單片機(jī)連接,無法讀取中斷 請(qǐng)問這個(gè)問題怎么解決? 我想用 延時(shí)+GET_STATUS 可以么?那么可以延時(shí)多長時(shí)間
你發(fā)封郵件到我們技術(shù)信箱,我們給你回一段程序過去吧。
好的,謝謝, 我郵件的題目也是“對(duì)于U盤讀寫模塊的CMD_DirectWrCmd的中斷返回”[Emot]23[/Emot][Emot]23[/Emot]
其實(shí)即使是有中斷產(chǎn)生的命令,也可以發(fā)通過讀取命令來獲取中斷狀態(tài)。比如成功設(shè)置主機(jī)模式之后,插上U盤之后,375會(huì)產(chǎn)生個(gè)檢測(cè)到連接的中斷,這時(shí)候如果發(fā)57 AB B5 00的讀取命令,就會(huì)返回:00 01 15。0X15就是檢測(cè)到連接的中斷狀態(tài)。
謝謝歐~~~~ 出現(xiàn)新問題了........5555555 我插上U盤以后,按照ch375ds2.pdf后面的外部固件參考流程,想GET status 步驟1返回的中斷是55 2 3 步驟的中斷是15 這是U盤連在模塊的情況,這種情況下CMD_SET_USB_MODE返回的中斷都是15 而不插U盤的情況下返回的是51
還有什么是外置固件模式,內(nèi)置固件模式?? 謝謝
內(nèi)置固件實(shí)際上就是將一些USB通信的協(xié)議寫好了,固化到芯片中,直接就可以使用的,而不需要涉及USB協(xié)議這一部分; 外置固件則是需要用戶自己寫USB協(xié)議這一部分,例如同步,發(fā)送令牌等等。 如果U盤先連在模塊上,發(fā)CMD_SET_USB_MODE命令,其實(shí)是先返回操作狀態(tài)0X51,緊接著才返回的檢測(cè)到U盤連接的中斷狀態(tài)0X15。 你主要是想用我們芯片做什么,其實(shí)按你上面說的,尤其是如果采用外置固件模式時(shí),直接采用芯片而不是模塊,處理起來要簡(jiǎn)單的多。
呵呵,我對(duì)硬件方面的知識(shí)不是太懂,原想買了U盤模塊能減少硬件設(shè)計(jì)上的困難, 不過現(xiàn)在看來,確實(shí)有很多不便。 我想用這個(gè)U盤讀寫模塊和打印機(jī)通訊, 不能用模塊里面下載好的程序了,只能通過底層硬件的讀寫直接來進(jìn)行了, 不知道這種方法可行不?樓上否給點(diǎn)意見。
你是想用我們的芯片來操作打印機(jī)嗎?這樣的話,建議你還是直接操作芯片,而不是模塊。通過硬件底層命令來操作的話,相對(duì)直接操作芯片來說會(huì)更復(fù)雜。 芯片和單片機(jī)的硬件連接并不復(fù)雜,可以直接參考芯片說明文檔上給出的電路圖,并且我們提供一個(gè)375做主機(jī)操作打印機(jī)的例子程序(CH375HST\PUB\USBPRINT\CH375PRT.C)。
十分感謝你的建議。 確實(shí)每次都是發(fā)串口的同步命令,效率很低。 我想問一下,會(huì)不會(huì)是因?yàn)榇诘耐ㄓ嵥俾识绊懙経SB的通訊,或者導(dǎo)致CH375的某些狀態(tài)檢測(cè)不到呢? 如果不影響的話,或者是別的影響的話,我想暫時(shí)就使用模塊來了,我對(duì)硬件調(diào)試真的沒有什么信心>_<
還有就是你在7樓說得“如果U盤先連在模塊上,發(fā)CMD_SET_USB_MODE命令,其實(shí)是先返回操作狀態(tài)0X51,緊接著才返回的檢測(cè)到U盤連接的中斷狀態(tài)0X15。” 我用的是串口的通訊,波特率57600 說明書上說命令和數(shù)據(jù)之間最大為100uS,我使用GET_IC_VER,能收到a4 好用, 但是中斷狀態(tài)在CMD_SET_USB_MODE讀不到0x51讓人很郁悶。
還是建議你直接操作芯片的好,電路圖之類的也不復(fù)雜,我們提供的例子程序做到了枚舉這一步,客戶只需要按打印機(jī)的數(shù)據(jù)格式進(jìn)行發(fā)送數(shù)據(jù)即可。
我想問一下,“如果U盤先連在模塊上,發(fā)CMD_SET_USB_MODE命令,其實(shí)是先返回操作狀態(tài)0X51,緊接著才返回的檢測(cè)到U盤連接的中斷狀態(tài)0X15。” 這個(gè)0x51中斷狀態(tài)能保持多久,0x15的連接中斷是不是總在不斷的刷新?? 我用其他的命令也是,總讀出0x15,是不是不及時(shí)讀取,中斷狀態(tài)就被刷掉了?
對(duì)于操作芯片來說,只要前面測(cè)試命令正常通過的話,設(shè)置模式都能成功的,也就是說前面測(cè)試命令正常通過的話,可以不去讀取操作狀態(tài)0X51。
我想問一下其他的操作也是這樣的么? 比如ISSUE_TKN_X 有的時(shí)候我讀取的是15,有的時(shí)候是0x55(不知道什么意思) 這個(gè)可能是什么原因?
后續(xù)的操作都應(yīng)該是一樣的,如果你想直接操作375芯片的話,那你還不如直接用單片機(jī)接一個(gè)375芯片呢,用這種方法即浪費(fèi)錢,速度有慢。
我正準(zhǔn)備在買一個(gè)芯片,不過手里的模塊,程序都寫完了,就是調(diào)不通,心里很不甘,至少讓我知道為什么不能行,我都調(diào)了一個(gè)多禮拜了. 我再詳悉的說一遍,我使用的是U盤讀寫模塊,現(xiàn)要實(shí)現(xiàn)收發(fā)USB的標(biāo)準(zhǔn)設(shè)備請(qǐng)求, 在模塊上接U盤進(jìn)行實(shí)驗(yàn). 遇到情況: 1,在GET_DESCR ISSUE_TKN_X 等明令之后,讀取中斷狀態(tài),經(jīng)常是0x55再讀就是0xaa,依次循環(huán),這些信號(hào)在說明文檔中都找不到. 2,還有讀取中斷的時(shí)候經(jīng)常能讀到0x15這個(gè)數(shù)據(jù),是不是設(shè)備的連接狀態(tài)每隔一定時(shí)間自動(dòng)檢測(cè),還是硬件接觸的問題? 希望能夠幫我解答一下..
實(shí)際上有一種更好的辦法,我們的模塊上面的控制主控芯片的51單片機(jī),你可以直接用KEIL編譯器將程序編好之后燒到模塊里面去,就相當(dāng)于51單片機(jī)+375芯片操作你的USB設(shè)備,在你程序的一開始需要加上給375復(fù)位的程序,也就是: P1。0=1; P1。0=1; P1。0=0; P1。0=0; DELAY_50ms(); 下面的操作直接用我們的CH375HST。ZIP里面的例子來枚舉你的設(shè)備就可以了,硬件連接圖和我們的375評(píng)估板的硬件連接是一樣的。