374T正在通信時(shí)如外界干擾,通信正常,用的貴公司提供的上位機(jī)軟件,間隔500MS發(fā)一幀16個(gè)字節(jié)數(shù)據(jù),然后在上傳, 如果有外界干擾情況下,就會(huì)通信失敗,軟件死機(jī),我量了一下D+,和D-,通信時(shí)有波形,但當(dāng)受干擾通信失敗后,出現(xiàn)D+為2.5到3V,D-為0,單片機(jī)用的是ARM LPC2294, 因?yàn)槲业纳衔粰C(jī)軟件只在打開就開始通信,發(fā)一組數(shù)據(jù),下位機(jī)上傳一組,不停止。如果把上位機(jī)軟件關(guān)掉后,就停止發(fā)數(shù)據(jù),下位機(jī)也停止上傳數(shù)據(jù), 現(xiàn)在如果正在通信中突然失敗,單片機(jī)不能確定是把上位機(jī)軟件關(guān)閉而停止還通信還是由失敗引起的。如果每當(dāng)通信停止產(chǎn)生一個(gè)復(fù)位信號(hào)這樣有可能可以解決一下,但治標(biāo)不治本,請(qǐng)指點(diǎn)如何更好的解決呢
這點(diǎn)可能是你PCB設(shè)計(jì)的時(shí)候,有不良的布線導(dǎo)致的.你可以用示波器觀察一下,將示波器的地接在18腳上,測(cè)量一下XI引腳是否有毛刺. 還有可能是USB信號(hào)線上出現(xiàn)了干擾,分別對(duì)地接22PF的電容實(shí)驗(yàn)一下.
麻煩在問(wèn),現(xiàn)在加了一弱干擾對(duì)鍵盤沒有任何影響,但對(duì)天咱們的374T就會(huì)在正通信時(shí)中斷,加了68P的電容,比原來(lái)好一點(diǎn),現(xiàn)在我想在程序中能否加一個(gè)判斷,以判斷374是否工作正常。請(qǐng)指點(diǎn)
如果在軟件上想去避免的話, 你可以用超時(shí)的方式來(lái)檢測(cè),假如你發(fā)送了16個(gè)字節(jié)的數(shù)據(jù),在一定時(shí)間內(nèi)PC沒有取走,也就是沒有來(lái)中斷你就可以認(rèn)為通訊失敗.然后復(fù)位CH374重新通訊.
剛才我進(jìn)一步做了個(gè)試驗(yàn),如果374通信失敗后,我把單片機(jī)復(fù)位后,打開我們的上位機(jī)軟件還是不能讀出ID號(hào),全部是0,只有重新插拔才行呢,這是不是受干擾把電腦USB口給占用了,但為什么鍵盤沒有事呢,請(qǐng)?jiān)俅沃更c(diǎn)
同時(shí)你也要把CH374復(fù)位,主機(jī)端會(huì)重新枚舉設(shè)備的.05寄存器的第3為寫1,延時(shí)50MS后在清除.然后在重新對(duì)CH374進(jìn)行初試華就可以了.
(1)干擾源是什么? (2)當(dāng)有干擾時(shí),此時(shí)需要確認(rèn)是因干擾導(dǎo)致374芯片本身出錯(cuò),因而通信失敗,還是傳輸線路被干擾引起通信失?。磺罢呖梢酝ㄟ^(guò)讀寫相關(guān)寄存器驗(yàn)證(如端點(diǎn)2的上傳緩沖區(qū),先寫入再讀出,數(shù)據(jù)應(yīng)相同),后者則要求USB線為屏蔽線,且長(zhǎng)度不超過(guò)5M
USB很短,是屏蔽線,屏蔽線接地,干擾源是一個(gè)工頻電源小變壓器,我在一個(gè)設(shè)備去裝的,輸出9V,374也在這個(gè)設(shè)備在電路上,如果兩臺(tái)在一塊放著,如果一臺(tái)和電腦正在通信,另一臺(tái)和電腦連或不連只要一上電有百分之90都能把另一臺(tái)干擾死了,我用ARM試了也用單片機(jī)試了都不行, 上位機(jī)軟件是你們的372,處于一直傳數(shù),如果上位機(jī)軟件死掉后,不關(guān)閉重新再打開一個(gè),還能讀出ID號(hào)通信都正常,如果關(guān)閉后,再打開軟件就讀不出ID號(hào)了,不知為什么,請(qǐng)指點(diǎn)
你可以將372的XI和XO引腳之間跨接一個(gè)1M的電阻,同時(shí)需要將USB口的外殼要和USB的屏蔽層相連接就OK了 。