0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MAX3420E中斷系統(tǒng)

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-03-31 11:24 ? 次閱讀

MAX3420E為任何SPI主站(如微控制器)增加了USB外設(shè)功能。MAX3420E的工作主要由中斷請求(IRQ)位決定,通過該位向SPI主機發(fā)出USB事件需要維修的警報。本文描述了MAX3420E中斷系統(tǒng)和每個中斷請求位。

介紹

MAX3420E可連接至任何SPI主機,實現(xiàn)全速USB外設(shè)。雖然MAX3420管理低電平USB信號工作,但當USB事件需要注意時,SPI主機必須偶爾介入。MAX3420上的INT引腳表示需要注意,SPI主機讀取14個中斷請求位,以確定哪些中斷需要維修。這些中斷重新探索(IRQ)位在很大程度上決定了MAX3420E的工作。

注意:SPI主機可以是微控制器DSP、ASIC或任何可以實現(xiàn)SPI端口并提供SCLK信號的東西。本文檔交替使用術(shù)語“SPI主站”和“微控制器”。

MAX3420E中斷邏輯

poYBAGQmWqGACaSyAABUXLF99is180.png

圖1.MAX3420E中斷邏輯寄存器位帶有陰影。

圖1給出了MAX3420E中斷邏輯。SPI可訪問的寄存器位帶有陰影。

IRQ 位
每個中斷源都有一個觸發(fā)器來鎖存服務(wù)請求。該觸發(fā)器的輸出為IRQ,出現(xiàn)在MAX3420E寄存器中。IRQ 位有兩個屬性:

讀取 IRQ 位將返回 IRQ 觸發(fā)器的狀態(tài)。

“1”寫入 IRQ 位會清除其 IRQ 觸發(fā)器,將“0”寫入 IRQ 位會保持觸發(fā)器不變。

可以隨時讀取的 IRQ 位反映了 IRQ 觸發(fā)器的狀態(tài)。在上面的 #2 之后,寫入 1 或 0 會清除選定的 IRQ 位,而無需讀取-修改-寫入周期。為了說明這一點,假設(shè)MAX3420E將IRQ位實現(xiàn)為簡單的寄存器位,其中寫入1設(shè)置位,寫入0清除位。現(xiàn)在我們要清除 USBIRQ 寄存器中的 URESIRQ 位。圖 2 顯示了執(zhí)行此操作的代碼。

pYYBAGQmWpuAAGcBAAAxV0aug_U052.png

圖2.清除常規(guī)寄存器位需要RMW操作。

由于SPI主機通過寫入3420來清除MAX1E IRQ位,而0則保持其他寄存器位不變,因此SPI主機可以通過直接寫入位掩碼值來清除URESIRQ位。因此,圖 2 中的最后三個語句可以替換為圖 3 中的單個語句。

pYYBAGQmWpaATrLOAAAPY-U-UAs328.png

圖3.MAX3420E IRQ位通過單寄存器寫入清除。

IEN 位 MAX14E的3420個中斷中
的每一個都有一個相關(guān)的中斷ENable(IEN)位。IEN 位與 IRQ 觸發(fā)器輸出進行 AND 運算,以傳遞或阻止請求傳播到 INT 引腳(圖 1)。14 個 IRQ 觸發(fā)器被選通,然后通過 OR 組合在一起形成一個內(nèi)部中斷請求信號,該信號傳遞到中斷引腳邏輯塊。

請注意,IRQ 位表示中斷的掛起狀態(tài),而不考慮其 IEN 位的狀態(tài)。這使固件可以選擇在不觸發(fā) INT 引腳的情況下檢查掛起的中斷。如果您的代碼需要檢查 IRQ 寄存器是否“無掛起”,一個簡單的解決方案是讀取 IRQ 和 IEN 寄存器,以及它們一起讀取,并檢查現(xiàn)在表示“掛起和已啟用的 IRQ”的位。零值表示所有已啟用的中斷均未掛起。

IE 位
SPI 主站啟用或禁用帶有 IE 位的 INT 引腳。這通常稱為全局中斷啟用,因為它會影響所有中斷。當 IE = 0 時,INT 引腳將變?yōu)榉腔顒訝顟B(tài),而與任何 IRQ 或 IEN 位的狀態(tài)無關(guān)。

中斷引腳邏輯
兩個寄存器位,INT電平(見下文討論)和POSINT控制INT引腳的行為。應(yīng)在設(shè)置 IE = 1 之前設(shè)置這些配置位。

電平模式,INTLEVEL = 1
某些微控制器系統(tǒng)使用電平敏感/中斷。在這種配置中,MAX3420E通過漏極開路晶體管驅(qū)動INT引腳至地。由于引腳只能驅(qū)動低電平,因此在INT引腳和邏輯電源之間連接一個上拉電阻。此模式允許將來自多個芯片的 INT 引腳輸出(每個芯片具有漏極開路輸出)連接在一起,并通過單個電阻器上拉。由于任何芯片輸出都會將引腳拉低,因此此邏輯有時稱為“有線或”。對于此類型的系統(tǒng),設(shè)置 INTLEVEL = 1。

邊沿模式,INTLEVEL = 0(默認值)
MAX3420E INT引腳還可以驅(qū)動邊沿活動中斷系統(tǒng),微控制器在其中斷輸入引腳上尋找0-1或1-0轉(zhuǎn)換。這是MAX3420E的默認模式,INTLEVEL = 0。SPI主機使用第二個位POSINT設(shè)置邊沿極性。當POSINT = 1時,MAX3420E為待處理中斷提供0-1轉(zhuǎn)換。當POSINT = 0 (默認值)時,MAX3420E為待處理中斷提供1-0轉(zhuǎn)換。

請注意圖 1 中的以下內(nèi)容:

如果設(shè)置了 IRQ 位,并且其關(guān)聯(lián)的 IEN 位是清晰的,則該 IRQ 不會影響 INT 輸出引腳。但是,中斷仍處于掛起狀態(tài)。它的狀態(tài)始終可以在IRQ位中讀取,并且可以通過向關(guān)聯(lián)的寄存器位寫入1來清除。

掛起的中斷(IRQ 位為 1),其 IEN 位進行 0-1 轉(zhuǎn)換會導(dǎo)致中斷

INT引腳可以連接到微控制器的中斷系統(tǒng)?;蛘?,微控制器可以輪詢INT引腳,以確定是否有MAX3420E中斷處于掛起狀態(tài)。用于輪詢的最佳模式是電平模式(INTLEVEL = 1),因為在邊緣模式下,INT引腳可能會發(fā)出太窄的脈沖,微控制器無法看到(請參閱下面的討論)。請記住,電平模式需要一個從 INT 引腳到 V 的上拉電阻L.

國際引腳波形

水平模式

poYBAGQmUkyAVfKQAAAakg1i8uw914.gif

圖4.MAX3420E INT引腳在電平模式下的行為(INTLEVEL = 1)。

圖4所示為電平模式下MAX3420E INT引腳波形。INT 引腳的靜態(tài)狀態(tài)為高電平(上拉至 VL).假設(shè)圖中兩個中斷的 IEN 位設(shè)置為 1,全局 IE 位設(shè)置為 4,則會發(fā)生以下事件。(下面的字母項對應(yīng)于圖 <> 中的字母事件。

中斷請求到達,導(dǎo)致MAX3420E INT引腳驅(qū)動低電平。

SPI 主機完成中斷服務(wù),并通過向其寫入 1 來清除其 IRQ 位。INT 引腳返回到其高靜態(tài)狀態(tài)。(a) 和 (b) 之間的間隔是中斷置位其 IRQ 位和 SPI 主機清除 IRQ 位之間的時間。

另一個中斷請求到達,將 INT 引腳驅(qū)動為低電平。

當?shù)谝粋€中斷請求掛起時,第二個中斷請求到達。INT 級別不會更改,因為至少有一個中斷掛起。(實際上,目前有兩個待定。

SPI 主機完成對其中一個掛起中斷的處理,并通過向其寫入 1 來清除其 IRQ 位。INT 引腳保持低電平,因為一個中斷仍處于掛起狀態(tài)。

SPI 主機完成對剩余中斷請求的處理,并通過向其寫入 1 來清除其 IRQ 位。沒有掛起的中斷,因此 INT 引腳返回到其靜態(tài)高電平狀態(tài)。

注意:如果設(shè)置了中斷的IRQ觸發(fā)器(圖1),則認為中斷處于掛起狀態(tài)。

此邏輯非常適合輪詢 INT 引腳。如果MAX3420E中的任何內(nèi)容需要維修,并且其中斷使能,則INT引腳為低電平。INT 引腳保持低電平,直到微控制器清除最后一個掛起的 IRQ 位。

邊緣模式

poYBAGQmWsqAAQDBAABMqmaLcDc622.png

圖5.MAX3420E INT引腳在EDGE模式下的行為(INTLEVEL = 0)。間隔(1)是SPI主機清除IRQ所需的時間,間隔(2)為10.67μs。

圖5所示為MAX3420E INT引腳波形,用于邊沿模式,工作在兩個極性,由POSINT位控制。波形看起來與電平模式下的波形相似,但有兩個不同之處。INT 引腳在兩種條件下提供邊沿:

IRQ 位變?yōu)榛顒訝顟B(tài)(其 IRQ 觸發(fā)器進行 0-1 轉(zhuǎn)換)。

處理器清除 IRQ 位(通過向其寫入 1),而其他 IRQ 處于掛起狀態(tài)。

第二個條件確保處理器在仍需要服務(wù)時獲得優(yōu)勢。

除了提供邊沿外,INT 引腳還具有活動和非活動狀態(tài),就像在電平模式下一樣。INT 引腳的非活動狀態(tài)取決于 POSINT 位設(shè)置的邊沿極性。在這方面,邊沿模式類似于電平模式,因為您可以通過查看INT引腳的狀態(tài)來了解是否有任何中斷處于掛起狀態(tài):

在負邊沿模式下,如果沒有中斷掛起,則INT引腳為高電平;如果中斷掛起,則為低。

在正邊沿模式下,如果沒有中斷掛起,則INT引腳為低電平;如果中斷掛起,則為高。

以下說明將 INT 引腳狀態(tài)稱為活動或非活動狀態(tài)?;顒颖硎局辽儆幸粋€中斷處于掛起狀態(tài);非活動表示沒有掛起的中斷。同樣假設(shè)中斷已啟用,將發(fā)生以下事件。(下面的字母項對應(yīng)于圖 5 中的字母事件。

中斷請求到達,MAX3420E INT引腳提供邊沿。邊沿的極性取決于 POSINT 位的設(shè)置。由于中斷仍處于掛起狀態(tài),因此 INT 引腳保持其活動狀態(tài)。

SPI 主機完成中斷服務(wù),并通過向其寫入 1 來清除其 IRQ 位。MAX3420E INT引腳返回非工作狀態(tài)。圖中(a)和(b)之間的間隔(1)是中斷置位和SPI主機清除IRQ位之間的時間。

另一個中斷請求到達,MAX3420E INT引腳提供邊沿并保持工作狀態(tài)。

當?shù)谝粋€中斷請求掛起時,第二個中斷到達。MAX3420E INT引腳必須提供另一個邊沿,因此它在非工作和工作狀態(tài)之間脈沖,以提供適當極性的邊沿。該脈沖的寬度固定在MAX10E中為67.3420μs。由于中斷處于掛起狀態(tài),因此 INT 引腳保持活動狀態(tài)。

SPI 主機完成對其中一個掛起中斷的維護,并通過向其寫入 1 來清除其 IRQ 位。INT 引腳提供另一個邊沿,如步驟 (d) 所示。

SPI 主機完成對剩余中斷請求的處理,并通過向其寫入 1 來清除其 IRQ 位。沒有掛起的中斷,因此 INT 引腳返回到其非活動狀態(tài)。

中斷寄存器

表 1.陰影MAX3420E寄存器位控制中斷系統(tǒng)

pYYBAGQmUk6ATjaWAACKGzyRZ6g991.gif

MAX3420E具有兩組USB中斷,由表1中的陰影寄存器控制。中斷位分為EPIRQ (R11)和EPIEN (R12)中的端點控制,以及USBIRQ (R13)和USBIEN(R14)中的USB控制。全局 IE 位位于 CPUCTL 寄存器中。

位名 違約 位置 設(shè)置者 清除者
IN0BAVIRQ 1 EPIRQ.0 EP0 先進先出可用于 μP 加載 加載 EP0BC 寄存器
OUT0DAVIRQ 0 EPIRQ.1 EP0-OUT FIFO 具有主機數(shù)據(jù) 寫入 EPIRQ = 0x02
OUT1DAVIRQ 0 EPIRQ.2 EP1-OUT FIFO 具有主機數(shù)據(jù) 寫入 EPIRQ = 0x04
IN2BAVIRQ 1 EPIRQ.3 EP2-IN 先進先出可用于 μP 加載 加載 EP2INBC 寄存器
IN3BAVIRQ 1 EPIRQ.4 EP3-IN 先進先出可用于 μP 加載 加載 EP3INBC 寄存器
SUDAVIRQ 0 EPIRQ.5 設(shè)置數(shù)據(jù)可在SUDFIFO中找到 寫入 EPIRQ = 0x20
OSCOKIRQ 0 USBIRQ.0 MAX3420E振蕩器/PLL穩(wěn)定 寫入 USBIRQ = 0x01
RWUDNIRQ 0 USBIRQ.1 SIE 已完成 RWU 信號 寫入 USBIRQ = 0x02
BUSACTIRQ 0 USBIRQ.2 總線處于活動狀態(tài) 寫入 USBIRQ = 0x04
URESIRQ 0 USBIRQ.3 主機開始發(fā)出總線復(fù)位信號 寫入 USBIRQ = 0x08
SUSPIRQ 0 USBIRQ.4 主機暫停總線 寫入 USBIRQ = 0x10
NOVBUSIRQ 0 USBIRQ.5 V總線比較器1-0過渡 寫入 USBIRQ = 0x20
VBUSIRQ 0 USBIRQ.6 V總線比較器0-1過渡 寫入 USBIRQ = 0x40
URESDNIRQ 0 USBIRQ.7 主機完成信令總線復(fù)位 寫入 USBIRQ = 0x80

表2給出了14個中斷控制位,當MAXQ3420E內(nèi)部邏輯設(shè)置它們時,以及SPI主機如何清除它們。

中斷請求位

BAV
三個緩沖器 AVailable (BAV) IRQ 位表示 IN 端點 FIFO 可供 SPI 主站加載。MAX3420E在芯片復(fù)位或IN數(shù)據(jù)從端點緩沖器成功發(fā)送到主機時置位這些IRQ位。此 IRQ 告訴 SPI 主站緩沖區(qū)已準備好接受新數(shù)據(jù)。

poYBAGQmUk-ASTheAABeP6Sk448582.gif

圖6.向終結(jié)點 3 發(fā)送 IN 請求的主機的總線跟蹤。

圖6為IN傳輸?shù)目偩€走線,主機從MAX3420E請求數(shù)據(jù)。在數(shù)據(jù)包 7145 到達之前,SPI 主站將字節(jié) 00 00 08 加載到端點 3 IN FIFO (EP3INFIFO) 中。然后,SPI 主機寫入值為 3 的 EP3INBC(端點 3 IN 字節(jié)計數(shù))寄存器。寫入字節(jié)計數(shù)寄存器可完成三件事:

當IN請求到達時,它告訴MAX3420E發(fā)送多少字節(jié)。

它使端點能夠傳輸數(shù)據(jù)(而不是 NAKing)。

它清除EP3INBAV IRQ位。

MAX3420E用數(shù)據(jù)包3應(yīng)答發(fā)往終端7146的下一個IN數(shù)據(jù)包。主機通過發(fā)送 ACKnowledge (ACK) 數(shù)據(jù)包 7147 來確認無差錯地收到數(shù)據(jù)。當MAX3420E檢測到主機ACK數(shù)據(jù)包時,設(shè)置EP3INBAV中斷請求位,通知SPI主機終端FIFO可以加載新數(shù)據(jù)。

如果IN數(shù)據(jù)包在SPI主機布防終端之前到達,MAX3420E以NAK握手應(yīng)答(圖7)。NAK 握手告知主機稍后重試 IN 請求。

pYYBAGQmWxOAYKNNAAA_2PvWzSg762.png

圖7.如果MAX3420E尚未準備好發(fā)送數(shù)據(jù),則發(fā)送NAK。

如果在向主機傳輸IN數(shù)據(jù)時出現(xiàn)錯誤,當主機重試IN請求時,MAX3420E自動重新發(fā)送數(shù)據(jù)(相同的數(shù)據(jù)切換DATA0/DATA1)。只有在收到主機的ACK握手后,MAX3420E才會置位終端的BAV IRQ位,以指示緩沖器已準備好接收新數(shù)據(jù)。

重要提示:

與所有MAX3420E IRQ位一樣,三個BAV IRQ位也可以通過寫入1來清除。

永遠不要這樣做。

相反,請使用上述方法:通過寫入 IN 端點的字節(jié)計數(shù)寄存器來清除 BAV IRQ 位。這是因為MAX3420E使用IN端點的BAV中斷請求位作為鎖定機制。這種機制確保SPI主機和MAX3420E的串行接口引擎(SIE)永遠不會同時嘗試使用端點緩沖器。例如,如果清除了 BAV 位,然后在兩個單獨的指令中加載字節(jié)計數(shù),則在更新字節(jié)計數(shù)寄存器時可能會進行數(shù)據(jù)包傳輸,并且數(shù)據(jù)將損壞。

BAV IRQ 默認值
三個 BAV IRQ 位(在表 1 的默認列中顯示為 2)默認為 1s。這意味著SPI主機將在上電或復(fù)位后讀取EPIRQ = 0x19。如果設(shè)置了任何相應(yīng)的 IEN 位,INT 引腳將指示中斷處于掛起狀態(tài)。

雙緩沖端點EP2輸入
MAX3420E EP2-IN端點為雙緩沖。這意味著它具有兩組 64 字節(jié) FIFO 和字節(jié)計數(shù)寄存器。雙緩沖提高了傳輸帶寬,因為SPI主站不需要等待一個數(shù)據(jù)包傳輸?shù)街鳈C,然后再加載另一個數(shù)據(jù)包。通過雙緩沖,SPI主站可以在加載一個IN FIFO的同時加載另一個IN數(shù)據(jù)到主機。加載 EP2INBC 寄存器時,這兩個緩沖區(qū)會“乒乓球”。這將另一個FIFO(第二組)和字節(jié)數(shù)寄存器提供給SPI主機。此雙緩沖操作對固件是透明的。

雙緩沖唯一可觀察到的影響是在初始化時。IN2BAVIRQ 位在上電或芯片復(fù)位時置位。通常,您的初始化代碼將數(shù)據(jù)加載到 EP2IN FIFO 中,然后加載 EP2INBC 寄存器以布防傳輸并清除 IN2BAVIRQ 位。當你這樣做時,你可能會驚訝地發(fā)現(xiàn)MAX3420E立即重新確定IN2BAVIRQ位。這表示第二個緩沖器可供SPI主站加載。

DAV 中斷請求位 OUT 端點具有數(shù)據(jù)可復(fù)制 (DAV) IRQ 位
,以指示已從主機接收到新數(shù)據(jù)。MAX3420E自動處理總線重試,僅在接收到無差錯數(shù)據(jù)時才置位中斷請求。當SPI主站收到DAV中斷請求時,它會讀取端點的字節(jié)計數(shù)寄存器以確定數(shù)據(jù)有效負載大小。然后,SPI 主站從端點的 OUTFIFO 讀取該字節(jié)數(shù)。SPI 主機通過寫入 1 以正常方式清除 OUTDAV IRQ 位。這會重新設(shè)置端點以接收下一個 OUT 數(shù)據(jù)包。

在圖8中,主機發(fā)送一個OUT PID和3420字節(jié)數(shù)據(jù),MAX1E將其傳輸?shù)紼P3420OUT FIFO。當MAX1E驗證傳輸無差錯時,更新其EP1OUTBC寄存器以指示四個字節(jié),將ACK數(shù)據(jù)包發(fā)送回主機,并置位EP1OUTDAV IRQ,告訴SPI主站數(shù)據(jù)可在端點<> FIFO中檢索。

poYBAGQmWyGAA1ZJAAC0rxRvdaI625.png

圖8.將 OUT 數(shù)據(jù)包發(fā)送到終結(jié)點 1 的主機的總線跟蹤。

雙緩沖端點EP1輸出
MAX3420E EP1輸出端為雙緩沖,這意味著它具有兩組64字節(jié)FIFOS和字節(jié)數(shù)寄存器。雙緩沖意味著,如果另一個主機數(shù)據(jù)包正在等待,OUT1DAVIRQ 可以在 SPI 主站清除它后立即重新置言。

SUDAV中斷請求位
當主機向MAX3420E發(fā)送控制傳輸時,MAX3420E將8個SETUP字節(jié)存儲在<>字節(jié)FIFO中,SPI主機從SUDFIFO寄存器讀取該字節(jié)。由于外設(shè)始終接受此緩沖區(qū)中的主機數(shù)據(jù),因此 SUDAVIRQ 就像 OUT 端點 FIFO 一樣,當來自主機的新數(shù)據(jù)可用時,會斷言其 SUDAV IRQ。SETUP 數(shù)據(jù)包始終包含 <> 個字節(jié),因此 SETUP 數(shù)據(jù)不需要字節(jié)計數(shù)寄存器。

OSCOK 中斷請求位 當MAX3420E上電、退出芯片復(fù)位
或退出掉電狀態(tài)時,內(nèi)部振蕩器和PLL需要時間啟動和穩(wěn)定。振蕩器OK OK (OSCOK) IRQ表示MAX3420E已準備好工作。

pYYBAGQmUlKASmOsAAAQC1z0AxQ071.gif

圖9.示例代碼復(fù)位MAX3420E并等待OSCOK后退出。

圖9是使用CHIPRES寄存器位復(fù)位MAX3420E的示例代碼。由于芯片復(fù)位停止內(nèi)部振蕩器,代碼通過設(shè)置CHIPRES = 0去除復(fù)位信號后,應(yīng)等待振蕩器穩(wěn)定后再使用MAX3420E。

RWUDN 中斷請求位
當處于掛起狀態(tài)時,USB 外圍設(shè)備可能會發(fā)出遠程喚醒 (RWU) 信號,以告知主機恢復(fù)總線活動。USB 規(guī)范將遠程喚醒信號定義為 1ms 至 15ms K 狀態(tài)。SPI 主機通過將 SIGnal 遠程喚醒 (SIGRWU) 位設(shè)置為 1 來啟動 RWU 信令。

當SPI主機設(shè)置SIGRWU位時,MAX3420E等待5ms,驅(qū)動K狀態(tài)10ms,然后置位遠程喚醒DoNe中斷請求(RWUDNIRQ)位。5ms 延遲可確保滿足另一個 USB 要求:總線必須空閑(J 狀態(tài))至少 5ms,然后外設(shè)才會啟動恢復(fù)信令。

poYBAGQmWzCAPehaAAApA0umos0804.png

圖 10.發(fā)出遠程喚醒信號的示例代碼。

圖 10 顯示了發(fā)出遠程喚醒信號的示例代碼。注意,MAX3420E對信號進行倍增,并在完成后置位IRQ。MAX3420E對所有定時USB事件執(zhí)行此操作,完成后提供中斷,因此SPI主機無需定時信號間隔。

圖10中的代碼設(shè)置SIGRWU位,然后在RWUDNIRQ位上循環(huán),以確定10ms信號何時經(jīng)過。然后,它將SIGRWU = 0設(shè)置為<>并清除IRQ位。當然,在多任務(wù)SPI主站中,您將響應(yīng)RWUDNIRQ中斷請求,而不是浪費時間直接檢查IRQ位。

SPI主機應(yīng)在收到RWUDNITQ中斷后5ms內(nèi)關(guān)閉SIGRWU位。否則,MAX3420E啟動另一個10ms K狀態(tài),并重復(fù)該序列(等待5ms、10ms、K狀態(tài)),直到SIGRWU = 0。在 RWU 信令進行時設(shè)置 SIGRWU = 0 不會終止 RWU 信令。

當SPI主機設(shè)置SIGRWU = 3420時,如果MAX1E處于關(guān)斷狀態(tài)(PWRDOWN = 1),MAX3420E自動重啟振蕩器并等待振蕩器穩(wěn)定后再啟動RWU信號。在這種情況下,SPI 主站不需要檢查 OSCOK IRQ。

BUSACT 中斷請求位 MAX23420E在檢測到USB數(shù)據(jù)包開頭的SYNC碼型時設(shè)置BUSACT IRQ位
。USB 總線復(fù)位不被視為總線活動,因此不會激活 BUSACK 中斷請求。

URES 和 URESDN 中斷請求位
USB 主機通過驅(qū)動至少 50 毫秒的單端 zerO (SE0) 狀態(tài)(D+ 和 D- 驅(qū)動低電平)來重置外設(shè)。MAX3420E在檢測到2.5μs的SE0后,對USB RESet IRQ (URESIRQ)進行定位。然后,當主機完成復(fù)位信號時,它會斷言 USB RESet DoNe IRQ (URESDNIRQ)。

由于SPI主機需要監(jiān)測USB總線復(fù)位事件,MAX3420E在總線復(fù)位期間不會清除URESIE、URESDNIE或IE中斷使能位。在總線復(fù)位期間,它會清除 EPIEN 和 USBIEN 寄存器中的所有其他中斷使能位。

SUSP中斷請求位
當MAX3420E檢測到總線不活動3ms(恒定J狀態(tài))時,它觸發(fā)SUSPend中斷請求(SUSPIRQ)。如果使用MAX3420E的外設(shè)為總線供電,則必須進入低功耗狀態(tài),以最小化從V吸收的電流??偩€.在這種情況下,SPI主機通過關(guān)斷耗電外設(shè),然后通過設(shè)置PWRDOWN = 3420將MAX1E置于低功耗模式。這將停止MAX3420E振蕩器,使MAX3420E進入最低功耗狀態(tài)。

值得一提的是兩個編程說明:

清除SUSPIRQ位不會阻止中斷在3ms后重新確認。為避免在總線掛起時重復(fù)掛起中斷,請清除掛起 IEN 位,直到總線恢復(fù)信令。

內(nèi)部掛起定時器邏輯由MAX3420E的內(nèi)部振蕩器計時。因此,如果關(guān)閉芯片(設(shè)置PWRDOWN = 1),然后嘗試通過寫入1來清除SUSPIRQ位,MAX3420E將不會清除該位。MAX3420E需要現(xiàn)已停止的內(nèi)部時鐘。

VBUS 和 NOVBUS 中斷請求位
自供電外設(shè)可以檢測是否已插入USB并使用這些中斷供電。中斷由內(nèi)部VBUS比較器激活,該比較器將VBComp引腳電壓與內(nèi)部參考電壓進行比較。它們是邊緣敏感的,在施加VBUS電壓(VBUSIRQ)或去除VBUS電壓時斷言(NOVBUSIRQ)。

總線供電的外圍設(shè)備不需要檢測VBUS,因為它是由VBUS供電的。這將釋放VBComp引腳,以便用作通用輸入。在此應(yīng)用中,VBComp引腳沒有內(nèi)部拉電阻,因此應(yīng)在VBComp針腳和VL之間連接拉電阻。

編程技巧

清除 IEN 位 芯片復(fù)位
在芯片復(fù)位期間清除所有 IE 位
。芯片復(fù)位定義為以下情況之一:

VLMAX3420E通電(上電復(fù)位)。

MAX3420E RES#引腳被驅(qū)動為低電平。

SPI 主站設(shè)置位 CHIPRES = 1。

總線復(fù)位 當MAX3420E檢測到USB總線復(fù)位(總線不活動3ms)時,除<>位外,所有IE位
均被清除。SPI主機可能需要接受與總線復(fù)位相關(guān)的中斷,以監(jiān)視總線復(fù)位信號的狀態(tài)。因此,以下 IE 位不受總線重置的影響:

URESIE

URESDNIE

IE(全局中斷啟用)

由于 USB 總線復(fù)位會清除大部分 IE 位,因此應(yīng)組織控制固件,以便在總線復(fù)位完成后重新啟用所需的中斷。

清除 BAV 和 DAV IRQ 位
請記住,DAV IRQ 位以正常方式清除,方法是將 1 寫入位。 BAV 位(用于 IN 端點)的清除方式不同,即通過寫入字節(jié)計數(shù)寄存器。

注意:即使認為MAX3420E中斷輸出引腳稱為INT引腳,它有時也可能具有負極性(例如電平模式)。

shenhbj:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7397

    瀏覽量

    150659
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17419

    瀏覽量

    248824
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7853

    瀏覽量

    263351
收藏 人收藏

    評論

    相關(guān)推薦

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

    ,MAX3420E中斷系統(tǒng),了解更詳細的信息。 USB插入后插入USB (CONNECT = 0)后,即使USB沒有通信,仍有一些USBIRQ位會置位。EPIRQ位與上面的情況一致,但是更多
    發(fā)表于 08-24 16:39

    基于SPI芯片MAX3420的USB控制器接口設(shè)計

    工作方式,協(xié)議中間層主要包括總線重連接、EP0收發(fā)和中斷處理等幾部分,其工作流程如圖6所示。協(xié)議上層應(yīng)用程序由程序員按照規(guī)范根據(jù)具體需要編寫。5 總 結(jié)將MAX3420用于汽車車載故障診斷儀的USB接口
    發(fā)表于 11-20 11:13

    MAX3420E全速u***接口芯片與Ez USB相比如何

    你好,我想用柏樹一我的DAQ板接口到PC。你們能給我點一些鏈接,我在哪里可以找到入門的文檔/參考設(shè)計等,我用max3420e全速USB接口芯片。我不知道如何與EZ USB以外的速度,如編碼復(fù)雜度等我
    發(fā)表于 03-01 06:49

    MAX3420E外設(shè)控制器的中斷系統(tǒng),看完你就明白了

    求大神詳細介紹一下MAX3420E外設(shè)控制器的中斷系統(tǒng)?
    發(fā)表于 04-19 09:42

    MAX3420E的USB杖舉程序(及其他)

    MAX3420E USB控制器使設(shè)計人員能夠給任何系統(tǒng)增加USB外設(shè)功能。MAX3420E提供了一個SPI接口用于訪問寄存器組,而沒有包含板上微處理器,因此可以編寫一套適用于多種處理器的MAX
    發(fā)表于 04-23 16:47 ?44次下載

    MAX3420E的USB杖舉程序(及其他)

    摘要:MAX3420E USB控制器使設(shè)計人員能夠給任何系統(tǒng)增加USB外設(shè)功能。MAX3420E提供了一個SPI接口用于訪問寄存器組,而沒有包含板上微處理器,因此可以編寫一套適用于多種處理器的
    發(fā)表于 04-25 08:41 ?19次下載

    MAX3420E編程指南

    摘要:MAX3420E USB外設(shè)控制器采用SPI借口控制, 能夠與任何微處理器連接構(gòu)成全速USB外設(shè)。微處理器通過21位內(nèi)部寄存器控制MAX3420E, 本文說明了寄存器每一位的功能, 并提供了一些編程
    發(fā)表于 04-25 08:49 ?32次下載

    MAX3420E信息卡

    MAX3420E信息
    發(fā)表于 04-29 09:18 ?23次下載

    為任何系統(tǒng)增加USB

    摘要:MAX3420E利用通用的微控制器,簡化了USB外設(shè)的設(shè)計。本文在介紹MAX3420E的基礎(chǔ)上,重點討論器件的SPI接口。說明器件如何與硬件SPI口或位仿真的通用I/O口進行連接,并給出了利
    發(fā)表于 04-25 08:42 ?967次閱讀
    為任何<b class='flag-5'>系統(tǒng)</b>增加USB

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

    摘要:本應(yīng)用筆記列出了保證MAX3420E正常工作需要的詳細檢查步驟,包括系統(tǒng)的檢查過程和調(diào)試提示。 引言當您設(shè)計了一塊電路板,將MAX3420E與您喜愛的微控制
    發(fā)表于 04-25 08:43 ?1156次閱讀
    <b class='flag-5'>MAX3420E</b><b class='flag-5'>系統(tǒng)</b>調(diào)試

    MAX3420E中斷系統(tǒng)

    摘要:MAX3420E可為微控制器等任何SPI主控制器加入USB外設(shè)功能。MAX3420E的工作主要通過中斷請求(IRQ)位協(xié)助完成,這些中斷請求位提示SPI主控制器處理USB事件。本
    發(fā)表于 04-25 08:44 ?743次閱讀
    <b class='flag-5'>MAX3420E</b><b class='flag-5'>中斷</b><b class='flag-5'>系統(tǒng)</b>

    MAX3420E常見問題

    摘要:本應(yīng)用筆記列出了SPI接口外設(shè)控制器MAX3420E的常見問題(FAQ)。 一般問題 什么是MAX3420E? MAX3420E包含微處理器嗎? MAX3420E
    發(fā)表于 04-25 08:46 ?1569次閱讀

    MAX3420E USB外設(shè)控制器,SPI接口

    MAX3420E包含實現(xiàn)USB 2.0全速USB外設(shè)所需的數(shù)字邏輯電路和模擬電路。全速收發(fā)器具有±15kV ESD保護和可編程的USB連接和斷開特性。內(nèi)部的串行接口引擎(SIE)負責處理底層USB協(xié)議,如錯誤校驗和總線重試。
    發(fā)表于 01-19 09:05 ?1105次閱讀
    <b class='flag-5'>MAX3420E</b> USB外設(shè)控制器,SPI接口

    MAX3420E與SPI主控制器構(gòu)成USB外設(shè)器件的中斷系統(tǒng)分析

    由于SPI主控制器可通過寫1來清除一個MAX3420E IRQ位,而寫0則不改變其他寄存器位,因此,SPI主控制器可直接寫入位屏蔽值以清除URESIRQ位。這樣,上述代碼中的最后三條語句便可由下面的單條語句所替代:
    發(fā)表于 04-25 11:06 ?619次閱讀
    <b class='flag-5'>MAX3420E</b>與SPI主控制器構(gòu)成USB外設(shè)器件的<b class='flag-5'>中斷</b><b class='flag-5'>系統(tǒng)</b>分析

    MAX3420E 中斷系統(tǒng)

    發(fā)表于 11-18 23:48 ?0次下載
    <b class='flag-5'>MAX3420E</b> <b class='flag-5'>中斷</b><b class='flag-5'>系統(tǒng)</b>