




已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MAX3420E系統(tǒng)調(diào)試引言當(dāng)您設(shè)計(jì)了一塊電路板,將MAX3420E與您喜愛(ài)的微控制器整合在一起。加電,插入U(xiǎn)SB,不能正常工作.,怎么辦? 本文為您提供了答案。第一次調(diào)試USB外設(shè)器件時(shí),會(huì)面臨很大的挑戰(zhàn)。要使MAX3420E能夠正常工作,首先需要按下列步驟進(jìn)行檢查。檢查USB B型連接器的引腳這是最容易出錯(cuò)的地方視圖是頂視圖還是底視圖? 引腳1在哪里? 如果您不是機(jī)械工程師,這些視圖會(huì)讓人感覺(jué)無(wú)所適從。圖1和圖2可幫您解決這一問(wèn)題。應(yīng)采用歐姆表來(lái)檢查MAX3420E和USB連接器之間的連線。特別注意D+和D-。二者很容易搞反。請(qǐng)注意,MAX3420E與連接器D+和D-引腳之間有33電阻。對(duì)于這么小的電阻,大部分測(cè)試是否接通的儀表都會(huì)發(fā)出“嘀嘀”聲。如果需要檢查USB電纜,請(qǐng)參考圖3。USB“完整性”檢查本節(jié)闡述設(shè)備與USB的連接情況。完整性檢查給出了D+和D-線的工作情況,在沒(méi)有USB總線分析儀的情況下,這種方法非常有效。復(fù)位處理器,將電纜連接至PC USB端口,初始化代碼執(zhí)行完畢后,在設(shè)置CONNECT位的語(yǔ)句前停止運(yùn)行。該語(yǔ)句如下: wreg(rUSBCTL,bmCONNECT); / Connect to USB在執(zhí)行該語(yǔ)句之前,D+和D-應(yīng)均為低電平。這是因?yàn)殡娎|的主機(jī)側(cè)電路通過(guò)15k電阻將這些信號(hào)下拉至地?,F(xiàn)在,單步執(zhí)行CONNECT語(yǔ)句后,MAX3420E在D+和VCC (3.3V)之間接入一個(gè)1.5k內(nèi)部電阻。此時(shí),D+應(yīng)變?yōu)楦唠娖?,其后?huì)出現(xiàn)一些突發(fā)脈沖(圖4)。 上面的波形是D+,下面的是D-。該突發(fā)波形持續(xù)約18s,然后消失。D+保持高電平,D-保持低電平,然后彈出下面的Windows XP消息框(圖5):怎么回事?請(qǐng)注意,程序?yàn)閱尾綀?zhí)行。到目前為止所作的只是連接了D+上拉電阻。該上拉提示PC有新的USB設(shè)備剛剛插入,因此PC開(kāi)始向該設(shè)備發(fā)送信號(hào),確定設(shè)備類型。這就是圖4中的脈沖信號(hào)。由于微控制器代碼停止運(yùn)行,因此不會(huì)命令MAX3420E做出任何響應(yīng)。PC由于沒(méi)有收到響應(yīng)信號(hào),最終決定(18秒后)忽略該設(shè)備。D+為高電平和D-為低電平的總線狀態(tài)稱為“USB總線掛起”或者“掛起”。主機(jī)停止發(fā)送任何信號(hào),MAX3420E的D+上拉電阻保持D+信號(hào)為高電平。圖6所示為利用LeCroy Instruments (LeCroy兼并了CATC,CATC是該分析儀的最初生產(chǎn)商)的USB總線分析儀測(cè)得的總線過(guò)程。當(dāng)PC探測(cè)到設(shè)備插入后(CONNECT = 1),它發(fā)出一個(gè)USB總線復(fù)位信號(hào)(沒(méi)有畫(huà)出)。然后,在Transfer 0,它發(fā)出一個(gè)“GET_DESCRIPTOR”請(qǐng)求以獲取“DEVICE”類型。5.687s之后,PC發(fā)出第二個(gè)USB總線復(fù)位信號(hào),再嘗試5.578s,要求得到設(shè)備描述符。PC第三次復(fù)位總線,再嘗試5.580s,然后掛起總線并放棄嘗試。由于沒(méi)有運(yùn)行固件,設(shè)備不會(huì)聽(tīng)取或應(yīng)答(ACK) PC的請(qǐng)求。為清晰起見(jiàn),圖6沒(méi)有畫(huà)出MAX3420E回送的NAK (非應(yīng)答)握手信號(hào)。圖7將第一次傳輸過(guò)程展開(kāi),詳細(xì)地顯示數(shù)據(jù)包?,F(xiàn)在可以看到Transfer 0以下面三個(gè)封包開(kāi)始: 主機(jī)向剛剛連上的設(shè)備 在這種情況下,USB發(fā)送地址0)發(fā)送一個(gè)SETUP包(63)。 主機(jī)發(fā)送一個(gè)DATA包(64),包含一個(gè)8字節(jié)“操作碼”。 外設(shè)(MAX3420E)回送一個(gè)ACK包(65),確認(rèn)無(wú)差錯(cuò)地收到兩個(gè)主機(jī)封包。如果打開(kāi)含有MAX3420E的系統(tǒng),插入U(xiǎn)SB,設(shè)置CONNECT = 1 (但是不再進(jìn)行其他操作),MAX3420E將發(fā)出ACK握手包(上面第3步的65字節(jié)包)。MAX3420E硬件自動(dòng)應(yīng)答CONTROL傳輸?shù)腟ETUP階段,這是由USB規(guī)范規(guī)定的。接下來(lái),主機(jī)開(kāi)始發(fā)送IN請(qǐng)求,并從Transaction 1開(kāi)始。對(duì)應(yīng)每個(gè)IN請(qǐng)求,MAX3420E回送NAK (非應(yīng)答)握手信號(hào)。這是因?yàn)檫€沒(méi)有運(yùn)行程序,因此,與MAX3420E連接的微控制器不會(huì)收到SUDAV IRQ (Setup數(shù)據(jù)就緒中斷請(qǐng)求)。注意:MAX3420E通過(guò)置位SUDAV IRQ,提示微控制器收到了SETUP包。該信息通知微控制器需要對(duì)數(shù)據(jù)包解碼,并回送要求的數(shù)據(jù)作為響應(yīng)。 這些IN-NAK過(guò)程持續(xù)5.687s,此時(shí)PC會(huì)復(fù)位總線,開(kāi)始第二次嘗試。圖4中的脈沖信號(hào)即是IN-NAK過(guò)程。如果仔細(xì)觀察示波器,5s后波形將略有變化這對(duì)應(yīng)總線復(fù)位(D+和D-同時(shí)置低約30ms),其后是另一個(gè)SETUP包。然后,IN-NAK再持續(xù)5s。供參考:另一個(gè)分析儀產(chǎn)生圖6和圖7波形的USB總線分析儀可能超出了您的預(yù)算。盡管本應(yīng)用筆記假設(shè)您只有一個(gè)示波器和歐姆表,我們還是強(qiáng)烈建議在USB開(kāi)發(fā)過(guò)程中使用USB總線分析儀。我們使用的LeCroy/CATC具有多種優(yōu)點(diǎn),包括友好的界面和豐富的軟件,最重要的是它享有工業(yè)標(biāo)準(zhǔn)USB測(cè)量工具的美譽(yù)。通過(guò)比對(duì)CATC波形來(lái)確定實(shí)際情況,解決了許多爭(zhēng)論不休的問(wèn)題(硬件、軟件和芯片等)??偩€總是如實(shí)反映情況。幸虧現(xiàn)在有低成本USB分析儀。圖8所示為Beagle-USB的屏幕截圖。Beagle分析儀能夠以比LeCroy/CATC低很多的價(jià)格顯示總線的工作情況。如果對(duì)比圖8中的Index 10和圖6中的64字節(jié)數(shù)據(jù)包,會(huì)發(fā)現(xiàn)它們顯示了完全相同的SETUP數(shù)據(jù)包。 檢查進(jìn)程如果觀察到了圖4中的信號(hào),已經(jīng)可以確定USB連接器的連線是正確的,而且MAX3420E供電正常。如果還沒(méi)有觀察到該顯示,可以嘗試以下措施: 測(cè)量MAX3420E的RES#引腳,確定其為高電平。 測(cè)量晶振,確保其振蕩頻率為12MHz。必須是12MHz 0.25%才能滿足USB規(guī)范。如果超出容限,檢查所連接的負(fù)載電容是否與并聯(lián)諧振晶體所規(guī)定的電容一致(通常采用18pF)。 檢查VCC是否為3.3V。 檢查系統(tǒng)接口電壓VL。確保不超過(guò)3.6V。 如果由VBUS通過(guò)一個(gè)3.3V穩(wěn)壓器對(duì)MAX3420E的VCC引腳供電,確定連接了USB。否則,MAX3420E的VCC無(wú)法供電。 注意:由于固件運(yùn)行與否和USB電纜連接無(wú)關(guān),因此,與總線供電的設(shè)計(jì)相比,調(diào)試自供電設(shè)計(jì)要簡(jiǎn)單一些??梢韵炔捎猛獠侩娫磳?duì)樣機(jī)供電。如果需要,以后可以再轉(zhuǎn)為總線供電。 下一步檢查您的控制器是否能夠成功地通過(guò)SPI總線與MAX3420E寄存器組進(jìn)行通信。檢查rreg()和wreg()。編寫(xiě)任何程序,無(wú)論是采用Maxim的實(shí)例代碼還是自己從頭開(kāi)始編寫(xiě)代碼,都需要使用讀寫(xiě)MAX3420E寄存器的函數(shù)。下面的例子使用了這些函數(shù)原型: unsigned char rreg(BYTE r); / Read a MAX3420E register bytevoid wreg(BYTE r,BYTE v); / Write a MAX3420E register byte在調(diào)試處理USB傳輸?shù)拇a前,先編寫(xiě)一個(gè)簡(jiǎn)單的子程序來(lái)測(cè)試這些函數(shù)。參見(jiàn)圖9的例子:圖9中的測(cè)試代碼先復(fù)位MAX3420E,然后向USBIEN寄存器寫(xiě)入每字節(jié)移動(dòng)1位的8個(gè)字節(jié)。每個(gè)字節(jié)中有一位置位,從00000001開(kāi)始,然后是00000010,最終以10000000結(jié)束。單步執(zhí)行該函數(shù),檢查“rd”值8次,確定其值為0x01,0x02,0x04,0x08,0x10,0x20,0x40和0x80。如果是這樣,則可以確定SPI接口寄存器的寫(xiě)和讀操作均正常。如果能夠?qū)懭險(xiǎn)SBIEN寄存器,并可靠的讀回其內(nèi)容,那么就可以讀寫(xiě)所有的MAX3420E寄存器。圖10所示為采用CrossStudio調(diào)試MAXQ2000微控制器的屏幕截圖。將光標(biāo)指向“rd”變量時(shí),將激活彈出窗口(截圖沒(méi)有顯示光標(biāo))。單步執(zhí)行代碼時(shí),可采用這種方式來(lái)查看任何變量。測(cè)試代碼首先設(shè)置微處理器SPI端口。對(duì)應(yīng)每種微處理器類型和特定IO引腳分配,SPI_Init()函數(shù)各不相同。然后,代碼向PINCTL寄存器寫(xiě)入0x10,設(shè)置MAX3420E SPI接口為全雙工工作模式。這將置位FDUPSPI位。代碼置位CHIPRES位,然后對(duì)其清零,使MAX3420E處于已知的狀態(tài)。建議在代碼的開(kāi)始部分包含芯片復(fù)位功能,從而在每一個(gè)調(diào)試周期的開(kāi)始使MAX3420E處于已知的狀態(tài)。如果圖10中的代碼沒(méi)有產(chǎn)生正確的結(jié)果,應(yīng)檢查SPI信號(hào),確定其工作是否正常。 測(cè)試程序test_SPI()中的第一次wreg()調(diào)用,向MAX3420E的寄存器17寫(xiě)入數(shù)值0x10。SPI總線的波形應(yīng)與圖11所示一致。注意:圖11所示的波形使用SPI模式(0,0),在SCLK的上升沿采樣SPI數(shù)據(jù),SCLK的空閑電平為低電平。SPI接口不同,顯示的波形會(huì)有不同的脈沖持續(xù)時(shí)間,但是對(duì)應(yīng)SCLK上升沿的數(shù)值應(yīng)該相同。 每次訪問(wèn)SPI的第一個(gè)字節(jié)是命令字節(jié),其字節(jié)格式如圖12所示。注意圖11中對(duì)應(yīng)前一部分SLCK上升沿的MOSI波形,位模式10001010指定寄存器17 (第7位至第3位是10001,數(shù)值為17)。同樣,第1位為高電平,表明是寫(xiě)操作。第二個(gè)字節(jié)的位模式是00010000。這是寫(xiě)入寄存器17的數(shù)據(jù),即0x10 (只有第4位FDUPSPI寄存器位置位)。因此,該SPI訪問(wèn)將0x10寫(xiě)入寄存器17,置位FDUPSPI位。得到這些波形的一種簡(jiǎn)單方法是設(shè)置示波器或者邏輯分析儀在SS#的下降沿觸發(fā),單步執(zhí)行wreg()調(diào)用。test_SPI()中的下一條語(yǔ)句是rreg()函數(shù)。第一次進(jìn)入循環(huán)體時(shí),將數(shù)值0x01寫(xiě)入U(xiǎn)SBIEN寄存器,如圖13所示。然后,test_SPI()函數(shù)讀回USBIEN寄存器的數(shù)值,第一次通過(guò)循環(huán)體時(shí),應(yīng)等于1 (圖14)。每次通過(guò)循環(huán)體時(shí),寫(xiě)入和讀回的位應(yīng)向左移動(dòng)一個(gè)SCLK邊沿。MAX3420E寄存器寫(xiě)和讀操作驗(yàn)證完畢后,可以進(jìn)一步調(diào)試程序。到目前為止所有的檢查步驟均屬于“完整性檢查”?,F(xiàn)在,我們開(kāi)始實(shí)際處理USB通信功能的第一步:需要處理器響應(yīng)不同的MAX3420E中斷請(qǐng)求位。IRQ位設(shè)置似乎應(yīng)該USB總線通信開(kāi)始后MAX3420E才會(huì)置位中斷請(qǐng)求位。實(shí)際上,當(dāng)MAX3420E上電時(shí),就會(huì)有IRQ位置位,當(dāng)插入U(xiǎn)SB電纜和設(shè)置CONNECT = 1時(shí),又有其他IRQ位置位。下面介紹該啟動(dòng)過(guò)程的中斷請(qǐng)求情況。 完成復(fù)位 當(dāng)MAX3420E完成復(fù)位后,即使還沒(méi)有插入U(xiǎn)SB,某些中斷請(qǐng)求位就會(huì)置位。這些位是:EPIRQ寄存器: IN3BAVIRQ IN2BAVIRQ IN0BAVIRQ EPIRQ寄存器的初始值應(yīng)為0x19。MAX3420E置位這三個(gè)IRQ位,指示三個(gè)IN端點(diǎn)FIFO已經(jīng)準(zhǔn)備就緒,可以裝入數(shù)據(jù)。BAV表示“Buffer Available”。USBIRQ寄存器: OSCOKIRQ USBIRQ寄存器的初始值應(yīng)為0x01。上電時(shí),MAX3420E啟動(dòng)其片內(nèi)振蕩器。振蕩器穩(wěn)定后,MAX3420E置位OSCOKIRQ位,指示已經(jīng)準(zhǔn)備就緒,可以進(jìn)行工作。如果程序沒(méi)有通過(guò)OSCOKIRQ位檢查,請(qǐng)確定VCC引腳電壓為3.3V。VCC為振蕩器供電。注意:MAX3420E IRQ寄存器位不論其對(duì)應(yīng)的使能位(在EPIEN和USBIEN寄存器中)是否置位,均可有效置位。使能位決定是否將請(qǐng)求位傳送到驅(qū)動(dòng)INT引腳的邏輯電路。參見(jiàn)應(yīng)用筆記3661,MAX3420E中斷系統(tǒng),了解更詳細(xì)的信息。 USB插入后插入U(xiǎn)SB (CONNECT = 0)后,即使USB沒(méi)有通信,仍有一些USBIRQ位會(huì)置位。EPIRQ位與上面的情況一致,但是更多的USBIRQ位將置位:USBIRQ寄存器: OSCOKIRQ VBUSIRQ (可能) VBUSIRQ位指示MAX3420E通過(guò)檢測(cè)VBCOMP引腳上的5V信號(hào),探測(cè)到插入了USB電纜。這假定您已經(jīng)將USB連接器的VBUS引腳連接至MAX3420E微控制器(VBUS比較器)的輸入引腳。注意:USB連接器的VBUS引腳接MAX3420E的VBCOMP輸入引腳是可選項(xiàng)。VBCOMP引腳不對(duì)MAX3420E內(nèi)部供電。它只連接至內(nèi)部VBUS比較器。 設(shè)置CONNECT = 1之后連接USB使主機(jī)發(fā)出一個(gè)總線復(fù)位信號(hào),產(chǎn)生Get_Descriptor-Device請(qǐng)求,最終掛起總線。這些操作會(huì)置位USBIRQ寄存器中的更多IRQ位。注意,USB總線復(fù)位將清除VBUSIRQ位。EPIRQ寄存器: IN3BAVIRQ IN2BAVIRQ IN0BAVIRQ SUDAVIRQ (通信開(kāi)始后) USBIRQ寄存器: OSCOKIRQ URESIRQ URESDNIRQ SUSPIRQ (最后) 如果將VBUS接VBCOMP引腳,USBIRQ寄存器讀數(shù)為0x8D,并持續(xù)約20s,然后由于主機(jī)掛起總線,讀數(shù)變?yōu)?x9D。接下來(lái)的情況會(huì)取決于您的代碼。如果您觀察到的情況和前面吻合,則表明系統(tǒng)一切正常,可以繼續(xù)往下檢查您的代碼。調(diào)試方法:通過(guò)3個(gè)步驟觸發(fā)中斷剩下的檢查是確保固件能夠正確響應(yīng)PC發(fā)出的不同USB請(qǐng)求命令,并由MAX3420E給出相應(yīng)信號(hào)。如果啟動(dòng)程序,插入U(xiǎn)SB后,什么也沒(méi)有發(fā)生(可能會(huì)出現(xiàn)Windows USB錯(cuò)誤消息),那么可能是您的程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)考前沖刺模擬試卷B卷含答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備高級(jí)技能押題練習(xí)試卷A卷附答案
- 湖北疫情知識(shí)培訓(xùn)課件
- 汽車電子技術(shù)原理及應(yīng)用測(cè)試卷
- 大學(xué)生創(chuàng)業(yè)指導(dǎo)故事征文
- 《初中英語(yǔ)語(yǔ)法重點(diǎn)講解與練習(xí)》
- 四川省達(dá)州市達(dá)川區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 經(jīng)典詩(shī)文朗讀訓(xùn)練與欣賞
- 私人教練服務(wù)合同
- 高效辦公軟件簡(jiǎn)明教程與使用指南
- 《數(shù)獨(dú)》(第一課)教學(xué)課件
- 干部作風(fēng)建設(shè) 講義課件
- 車輛過(guò)戶證明
- “供應(yīng)商融資安排”會(huì)計(jì)列報(bào)、披露問(wèn)題研究
- 中國(guó)黃金集團(tuán)公司黃金工業(yè)項(xiàng)目初步設(shè)計(jì)
- 裝修客戶需求表實(shí)用
- DB32∕T 3370-2018 雙孢蘑菇栽培基質(zhì)隧道發(fā)酵技術(shù)規(guī)程
- 中醫(yī)院新技術(shù)、新項(xiàng)目申請(qǐng)表、審批表及年季度工作報(bào)告表范本
- 2022年五級(jí)音樂(lè)吹起羌笛跳鍋莊教案反思
- 火電廠發(fā)電機(jī)組設(shè)備大修標(biāo)準(zhǔn)項(xiàng)目工時(shí)定額
- 三施路塹高邊坡專項(xiàng)施工風(fēng)險(xiǎn)評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論