www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化

MAX3420E系統(tǒng)調(diào)試

引言

當(dāng)您設(shè)計了一塊電路板,將MAX3420E與您喜愛的微控制器整合在一起。加電,插入USB,不能正常工作...,怎么辦? 本文為您提供了答案。
第一次調(diào)試USB外設(shè)器件時,會面臨很大的挑戰(zhàn)。要使MAX3420E能夠正常工作,首先需要按下列步驟進(jìn)行檢查。


檢查USB "B"型連接器的引腳

這是最容易出錯的地方—視圖是頂視圖還是底視圖? 引腳1在哪里? 如果您不是機(jī)械工程師,這些視圖會讓人感覺無所適從。圖1和圖2可幫您解決這一問題。

應(yīng)采用歐姆表來檢查MAX3420E和USB連接器之間的連線。特別注意D+和D-。二者很容易搞反。請注意,MAX3420E與連接器D+和D-引腳之間有33電阻。對于這么小的電阻,大部分測試是否接通的儀表都會發(fā)出“嘀嘀”聲。如果需要檢查USB電纜,請參考圖3。


USB“完整性”檢查
本節(jié)闡述設(shè)備與USB的連接情況。完整性檢查給出了D+和D-線的工作情況,在沒有USB總線分析儀的情況下,這種方法非常有效。
復(fù)位處理器,將電纜連接至PC USB端口,初始化代碼執(zhí)行完畢后,在設(shè)置CONNECT位的語句前停止運(yùn)行。該語句如下:


wreg(rUSBCTL,bmCONNECT); // Connect to USB

在執(zhí)行該語句之前,D+和D-應(yīng)均為低電平。這是因為電纜的主機(jī)側(cè)電路通過15k電阻將這些信號下拉至地?,F(xiàn)在,單步執(zhí)行CONNECT語句后,MAX3420E在D+和VCC (3.3V)之間接入一個1.5k內(nèi)部電阻。此時,D+應(yīng)變?yōu)楦唠娖剑浜髸霈F(xiàn)一些突發(fā)脈沖(圖4)。

上面的波形是D+,下面的是D-。該突發(fā)波形持續(xù)約18s,然后消失。D+保持高電平,D-保持低電平,然后彈出下面的Windows XP消息框(圖5):

怎么回事?

請注意,程序為單步執(zhí)行。到目前為止所作的只是連接了D+上拉電阻。該上拉提示PC有新的USB設(shè)備剛剛插入,因此PC開始向該設(shè)備發(fā)送信號,確定設(shè)備類型。這就是圖4中的脈沖信號。由于微控制器代碼停止運(yùn)行,因此不會命令MAX3420E做出任何響應(yīng)。PC由于沒有收到響應(yīng)信號,最終決定(18秒后)忽略該設(shè)備。D+為高電平和D-為低電平的總線狀態(tài)稱為“USB總線掛起”或者“掛起”。主機(jī)停止發(fā)送任何信號,MAX3420E的D+上拉電阻保持D+信號為高電平。

圖6所示為利用LeCroy Instruments (LeCroy兼并了CATC,CATC是該分析儀的最初生產(chǎn)商)的USB總線分析儀測得的總線過程。當(dāng)PC探測到設(shè)備插入后(CONNECT = 1),它發(fā)出一個USB總線復(fù)位信號(沒有畫出)。然后,在Transfer 0,它發(fā)出一個“GET_DESCRIPTOR”請求以獲取“DEVICE”類型。5.687s之后,PC發(fā)出第二個USB總線復(fù)位信號,再嘗試5.578s,要求得到設(shè)備描述符。PC第三次復(fù)位總線,再嘗試5.580s,然后掛起總線并放棄嘗試。由于沒有運(yùn)行固件,設(shè)備不會聽取或應(yīng)答(ACK) PC的請求。

為清晰起見,圖6沒有畫出MAX3420E回送的NAK (非應(yīng)答)握手信號。圖7將第一次傳輸過程展開,詳細(xì)地顯示數(shù)據(jù)包?,F(xiàn)在可以看到Transfer 0以下面三個封包開始:

主機(jī)向剛剛連上的設(shè)備 在這種情況下,USB發(fā)送地址0)發(fā)送一個SETUP包(63)。

主機(jī)發(fā)送一個DATA包(64),包含一個8字節(jié)“操作碼”。
外設(shè)(MAX3420E)回送一個ACK包(65),確認(rèn)無差錯地收到兩個主機(jī)封包。

如果打開含有MAX3420E的系統(tǒng),插入USB,設(shè)置CONNECT = 1 (但是不再進(jìn)行其他操作),MAX3420E將發(fā)出ACK握手包(上面第3步的65字節(jié)包)。MAX3420E硬件自動應(yīng)答CONTROL傳輸?shù)腟ETUP階段,這是由USB規(guī)范規(guī)定的。

接下來,主機(jī)開始發(fā)送IN請求,并從Transaction 1開始。對應(yīng)每個IN請求,MAX3420E回送NAK (非應(yīng)答)握手信號。這是因為還沒有運(yùn)行程序,因此,與MAX3420E連接的微控制器不會收到SUDAV IRQ (Setup數(shù)據(jù)就緒中斷請求)。

注意:MAX3420E通過置位SUDAV IRQ,提示微控制器收到了SETUP包。該信息通知微控制器需要對數(shù)據(jù)包解碼,并回送要求的數(shù)據(jù)作為響應(yīng)。

這些IN-NAK過程持續(xù)5.687s,此時PC會復(fù)位總線,開始第二次嘗試。圖4中的脈沖信號即是IN-NAK過程。如果仔細(xì)觀察示波器,5s后波形將略有變化—這對應(yīng)總線復(fù)位(D+和D-同時置低約30ms),其后是另一個SETUP包。然后,IN-NAK再持續(xù)5s。


供參考:另一個分析儀

產(chǎn)生圖6和圖7波形的USB總線分析儀可能超出了您的預(yù)算。盡管本應(yīng)用筆記假設(shè)您只有一個示波器和歐姆表,我們還是強(qiáng)烈建議在USB開發(fā)過程中使用USB總線分析儀。我們使用的LeCroy/CATC具有多種優(yōu)點,包括友好的界面和豐富的軟件,最重要的是它享有工業(yè)標(biāo)準(zhǔn)USB測量工具的美譽(yù)。通過比對CATC波形來確定實際情況,解決了許多爭論不休的問題(硬件、軟件和芯片等)??偩€總是如實反映情況。

幸虧現(xiàn)在有低成本USB分析儀。圖8所示為Beagle-USB的屏幕截圖。Beagle分析儀能夠以比LeCroy/CATC低很多的價格顯示總線的工作情況。如果對比圖8中的Index 10和圖6中的64字節(jié)數(shù)據(jù)包,會發(fā)現(xiàn)它們顯示了完全相同的SETUP數(shù)據(jù)包。


檢查進(jìn)程
如果觀察到了圖4中的信號,已經(jīng)可以確定USB連接器的連線是正確的,而且MAX3420E供電正常。如果還沒有觀察到該顯示,可以嘗試以下措施:
測量MAX3420E的RES#引腳,確定其為高電平。
測量晶振,確保其振蕩頻率為12MHz。必須是12MHz ±0.25%才能滿足USB規(guī)范。如果超出容限,檢查所連接的負(fù)載電容是否與并聯(lián)諧振晶體所規(guī)定的電容一致(通常采用18pF)。
檢查VCC是否為3.3V。
檢查系統(tǒng)接口電壓VL。確保不超過3.6V。
如果由VBUS通過一個3.3V穩(wěn)壓器對MAX3420E的VCC引腳供電,確定連接了USB。否則,MAX3420E的VCC無法供電。


注意:由于固件運(yùn)行與否和USB電纜連接無關(guān),因此,與總線供電的設(shè)計相比,調(diào)試自供電設(shè)計要簡單一些。可以先采用外部電源對樣機(jī)供電。如果需要,以后可以再轉(zhuǎn)為總線供電。

下一步檢查您的控制器是否能夠成功地通過SPI總線與MAX3420E寄存器組進(jìn)行通信。

檢查rreg()和wreg()。
編寫任何程序,無論是采用Maxim的實例代碼還是自己從頭開始編寫代碼,都需要使用讀寫MAX3420E寄存器的函數(shù)。下面的例子使用了這些函數(shù)原型:

unsigned char rreg(BYTE r); // Read a MAX3420E register byte
void wreg(BYTE r,BYTE v); // Write a MAX3420E register byte

在調(diào)試處理USB傳輸?shù)拇a前,先編寫一個簡單的子程序來測試這些函數(shù)。參見圖9的例子:

圖9中的測試代碼先復(fù)位MAX3420E,然后向USBIEN寄存器寫入每字節(jié)移動1位的8個字節(jié)。每個字節(jié)中有一位置位,從00000001開始,然后是00000010,最終以10000000結(jié)束。單步執(zhí)行該函數(shù),檢查“rd”值8次,確定其值為0x01,0x02,0x04,0x08,0x10,0x20,0x40和0x80。如果是這樣,則可以確定SPI接口寄存器的寫和讀操作均正常。如果能夠?qū)懭險SBIEN寄存器,并可靠的讀回其內(nèi)容,那么就可以讀寫所有的MAX3420E寄存器。

圖10所示為采用CrossStudio調(diào)試MAXQ2000微控制器的屏幕截圖。將光標(biāo)指向“rd”變量時,將激活彈出窗口(截圖沒有顯示光標(biāo))。單步執(zhí)行代碼時,可采用這種方式來查看任何變量。

測試代碼首先設(shè)置微處理器SPI端口。對應(yīng)每種微處理器類型和特定IO引腳分配,SPI_Init()函數(shù)各不相同。然后,代碼向PINCTL寄存器寫入0x10,設(shè)置MAX3420E SPI接口為全雙工工作模式。這將置位FDUPSPI位。代碼置位CHIPRES位,然后對其清零,使MAX3420E處于已知的狀態(tài)。建議在代碼的開始部分包含芯片復(fù)位功能,從而在每一個調(diào)試周期的開始使MAX3420E處于已知的狀態(tài)。

如果圖10中的代碼沒有產(chǎn)生正確的結(jié)果,應(yīng)檢查SPI信號,確定其工作是否正常。

測試程序test_SPI()中的第一次wreg()調(diào)用,向MAX3420E的寄存器17寫入數(shù)值0x10。SPI總線的波形應(yīng)與圖11所示一致。

注意:圖11所示的波形使用SPI模式(0,0),在SCLK的上升沿采樣SPI數(shù)據(jù),SCLK的空閑電平為低電平。SPI接口不同,顯示的波形會有不同的脈沖持續(xù)時間,但是對應(yīng)SCLK上升沿的數(shù)值應(yīng)該相同。

每次訪問SPI的第一個字節(jié)是命令字節(jié),其字節(jié)格式如圖12所示。注意圖11中對應(yīng)前一部分SLCK上升沿的MOSI波形,位模式10001010指定寄存器17 (第7位至第3位是10001,數(shù)值為17)。同樣,第1位為高電平,表明是寫操作。第二個字節(jié)的位模式是00010000。這是寫入寄存器17的數(shù)據(jù),即0x10 (只有第4位FDUPSPI寄存器位置位)。因此,該SPI訪問將0x10寫入寄存器17,置位FDUPSPI位。

得到這些波形的一種簡單方法是設(shè)置示波器或者邏輯分析儀在SS#的下降沿觸發(fā),單步執(zhí)行wreg()調(diào)用。

test_SPI()中的下一條語句是rreg()函數(shù)。第一次進(jìn)入循環(huán)體時,將數(shù)值0x01寫入USBIEN寄存器,如圖13所示。

然后,test_SPI()函數(shù)讀回USBIEN寄存器的數(shù)值,第一次通過循環(huán)體時,應(yīng)等于1 (圖14)。每次通過循環(huán)體時,寫入和讀回的位應(yīng)向左移動一個SCLK邊沿。

MAX3420E寄存器寫和讀操作驗證完畢后,可以進(jìn)一步調(diào)試程序。到目前為止所有的檢查步驟均屬于“完整性檢查”?,F(xiàn)在,我們開始實際處理USB通信功能的第一步:需要處理器響應(yīng)不同的MAX3420E中斷請求位。


IRQ位設(shè)置
似乎應(yīng)該USB總線通信開始后MAX3420E才會置位中斷請求位。實際上,當(dāng)MAX3420E上電時,就會有IRQ位置位,當(dāng)插入USB電纜和設(shè)置CONNECT = 1時,又有其他IRQ位置位。下面介紹該啟動過程的中斷請求情況。
完成復(fù)位
當(dāng)MAX3420E完成復(fù)位后,即使還沒有插入USB,某些中斷請求位就會置位。這些位是:

EPIRQ寄存器:

IN3BAVIRQ
IN2BAVIRQ
IN0BAVIRQ
EPIRQ寄存器的初始值應(yīng)為0x19。MAX3420E置位這三個IRQ位,指示三個IN端點FIFO已經(jīng)準(zhǔn)備就緒,可以裝入數(shù)據(jù)。BAV表示“Buffer Available”。
USBIRQ寄存器:

OSCOKIRQ
USBIRQ寄存器的初始值應(yīng)為0x01。上電時,MAX3420E啟動其片內(nèi)振蕩器。振蕩器穩(wěn)定后,MAX3420E置位OSCOKIRQ位,指示已經(jīng)準(zhǔn)備就緒,可以進(jìn)行工作。如果程序沒有通過OSCOKIRQ位檢查,請確定VCC引腳電壓為3.3V。VCC為振蕩器供電。

注意:MAX3420E IRQ寄存器位不論其對應(yīng)的使能位(在EPIEN和USBIEN寄存器中)是否置位,均可有效置位。使能位決定是否將請求位傳送到驅(qū)動INT引腳的邏輯電路。參見應(yīng)用筆記3661,MAX3420E中斷系統(tǒng),了解更詳細(xì)的信息。

USB插入后
插入USB (CONNECT = 0)后,即使USB沒有通信,仍有一些USBIRQ位會置位。EPIRQ位與上面的情況一致,但是更多的USBIRQ位將置位:

USBIRQ寄存器:

OSCOKIRQ
VBUSIRQ (可能)
VBUSIRQ位指示MAX3420E通過檢測VBCOMP引腳上的5V信號,探測到插入了USB電纜。這假定您已經(jīng)將USB連接器的VBUS引腳連接至MAX3420E微控制器(VBUS比較器)的輸入引腳。

注意:USB連接器的VBUS引腳接MAX3420E的VBCOMP輸入引腳是可選項。VBCOMP引腳不對MAX3420E內(nèi)部供電。它只連接至內(nèi)部VBUS比較器。

設(shè)置CONNECT = 1之后
連接USB使主機(jī)發(fā)出一個總線復(fù)位信號,產(chǎn)生Get_Descriptor-Device請求,最終掛起總線。這些操作會置位USBIRQ寄存器中的更多IRQ位。注意,USB總線復(fù)位將清除VBUSIRQ位。

EPIRQ寄存器:

IN3BAVIRQ
IN2BAVIRQ
IN0BAVIRQ
SUDAVIRQ (通信開始后)
USBIRQ寄存器:
OSCOKIRQ
URESIRQ
URESDNIRQ
SUSPIRQ (最后)
如果將VBUS接VBCOMP引腳,USBIRQ寄存器讀數(shù)為0x8D,并持續(xù)約20s,然后由于主機(jī)掛起總線,讀數(shù)變?yōu)?x9D。
接下來的情況會取決于您的代碼。如果您觀察到的情況和前面吻合,則表明系統(tǒng)一切正常,可以繼續(xù)往下檢查您的代碼。


調(diào)試方法:通過3個步驟觸發(fā)中斷

剩下的檢查是確保固件能夠正確響應(yīng)PC發(fā)出的不同USB請求命令,并由MAX3420E給出相應(yīng)信號。如果啟動程序,插入USB后,什么也沒有發(fā)生(可能會出現(xiàn)Windows USB錯誤消息),那么可能是您的程序沒有處理中斷。下面的調(diào)試方法可以幫助解決這些中斷問題。

第1步: 輪詢IRQ位

首先,編寫代碼直接輪詢IRQ位,當(dāng)關(guān)心的IRQ位置位后,使處理器進(jìn)行相應(yīng)操作。即使主程序循環(huán)進(jìn)行直接輪詢,也最好使能中斷(各IEN位 = 1和IE = 1)。這樣可以通過觀察MAX3420E INT引腳來了解其工作情況。這一步有效地取消了微控制器中斷系統(tǒng)(和代碼)檢查,使您能夠集中精力實現(xiàn)正確的USB功能。當(dāng)連續(xù)讀取EPIRQ和USBIRQ寄存器時,不必?fù)?dān)心浪費的SPI周期—這一步的目的是使USB正常工作。

第2步: 輪詢INT引腳狀態(tài)

一旦USB工作正常后,進(jìn)行第二步,修改程序來輪詢MAX3420E INT引腳狀態(tài),檢查懸掛的中斷。如果第1步已經(jīng)驗證了程序,那么在程序主循環(huán)中有部分代碼一直讀取EPIRQ和USBIRQ寄存器,檢查懸掛的中斷。插入輪詢微控制器中斷引腳狀態(tài)(連接在MAX3420E INT引腳上)的語句,修改第1步的連續(xù)檢查。如果MAX3420E INT引腳未產(chǎn)生中斷,可以跳過讀取EPIRQ和USBIRQ寄存器的語句。這種簡單的檢查方式極大地減少了微控制器和MAX3420E之間的SPI數(shù)據(jù)流量,這是因為只有IRQ位置位時,才對其進(jìn)行測試。

第3步: 檢查微控制器中斷程序

第3步也是最后一步,將MAX3420E整合到微處理器的中斷系統(tǒng)中。這通常要寫一個中斷向量,以自動將程序執(zhí)行位置指向MAX3420E處理程序。



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉