- 一般問題
- 什么是MAX3420E?
- MAX3420E包含微處理器嗎?
- MAX3420E能夠提供什么樣的封裝?
- MAX3420E提供無鉛封裝嗎?
- USB問題
- 接口問題
- 微處理器是怎樣與MAX3420E連接的?
- SPI接口為3、4或者5線。這是什么意思?
- MAX3420E支持何種SPI時鐘模式?
- 我的CPU使用2.5V電源,但是MAX3420E使用3.3V VCC電源。我需要外部電平轉(zhuǎn)換器嗎?
- MAX3420E的INT引腳起什么作用?
- MAX3420E支持低電平有效的線或中斷嗎? 支持邊沿有效中斷嗎?
- MAX3420E SPI接口的最大速率是多少(SCLK最大頻率)?
- MAX3420E SCLK頻率有下限嗎?
- 我有一個8引腳微處理器,它的IO引腳中有5個需要連接至MAX3420E。我怎樣分配IO呢?
- 我需要為GPIN引腳加外部上拉電阻嗎?
- 我可以使用SPI接口引腳驅(qū)動光耦嗎?
- VBCOMP引腳的作用是什么? 它為MAX3420E供電嗎?
- 編程問題
- 我的固件如何與MAX3420E進(jìn)行通信?
- 怎樣設(shè)置MAX3420E,來處理USB枚舉?
- 怎樣編程實現(xiàn)BULK IN傳輸?
- 當(dāng)固件裝載IN FIFO時,此時收到USB IN請求,會出現(xiàn)什么情況?
- 怎樣知道何時需要裝載IN FIFO?
- 如果出現(xiàn)了USB傳輸錯誤,情況會怎樣? 我需要編寫代碼來處理這一錯誤嗎?
- 怎樣編程實現(xiàn)BULK OUT傳輸?
- INTERRUPT傳輸?shù)那闆r如何?
- 怎樣編程實現(xiàn)SETUP傳輸?
- 我需要設(shè)置USB數(shù)據(jù)觸發(fā)嗎?
- 通過向MAX3420E中斷請求位寫“1”以對其清零。這是反向操作嗎?
- 有什么編程提示嗎?
- 主機軟件問題
- 其他問題
- 我的固件能夠確定我使用的芯片版本嗎?
- MAX3420E最新的版本號是多少?
- 一般問題
- 什么是MAX3420E?
MAX3420E是一個USB全速(12Mbps)外設(shè)控制器,內(nèi)置收發(fā)器和處理具體底層USB信令的USB串行接口引擎(SIE)。
- MAX3420E包含微處理器嗎?
不包含。MAX3420E為方便與微處理器、DSP和ASIC連接而設(shè)計。它可以向任何系統(tǒng)增加USB功能,而不必更換處理器或者開發(fā)工具。
- MAX3420E能夠提供什么樣的封裝?
MAX3420E可提供兩種封裝。32引腳TQFP (7mm x 7mm封裝尺寸)封裝,由于帶有封裝引線,非常適合樣機開發(fā)和實現(xiàn)較短的生產(chǎn)周期。24引腳TQFN封裝(5mm x 5mm封裝尺寸,焊盤在封裝下面)適用于大批量緊湊型產(chǎn)品。
- MAX3420E提供無鉛封裝嗎?
是的。
- 什么是MAX3420E?
- USB問題
- MAX3420E支持何種USB速率?
MAX3420E作為外設(shè)支持USB全速(12Mbps)工作模式。
- MAX3420E符合USB規(guī)范嗎? 具體是哪個版本?
MAX3420E符合USB 2.0規(guī)范,可全速工作。
- MAX3420E支持多少個端點?
MAX3420E包括四個端點:- EP0,雙向CONTROL端點,64字節(jié)FIFO。
- EP1,OUT BULK或者INT端點,2 x 64字節(jié)雙緩沖FIFO。
- EP2,IN BULK或者INT端點,2 x 64字節(jié)雙緩沖FIFO。
- EP3,IN BULK或者INT端點,64字節(jié)FIFO。
- MAX3420E為什么不支持同步傳輸?
同步傳輸需要快速接口和大容量緩沖,這些均與MAX3420E的設(shè)計目標(biāo)(能夠以任意速率運行的SPI接口低成本器件)不符。需要同步帶寬的大部分應(yīng)用實際上可以由BULK或者INTERRUPT傳輸完成。這是因為系統(tǒng)中USB設(shè)備所能提供的大部分同步帶寬,BULK/INT傳輸通常也能提供。
- 我可以在自供電外設(shè)中使用MAX3420E嗎?
當(dāng)然可以。實際上,MAX3420E為支持自供電應(yīng)用而整合了專門的特性。例如,自供電應(yīng)用中外設(shè)需要知道設(shè)備什么時候插入到一個上電的USB端口。MAX3420E的VBCOMP (VBUS比較器)引腳連接至VBUS,并與內(nèi)部比較器相連,該比較器在插入USB端口時提供一個中斷請求(VBUSIRQ),與USB端口斷開連接時提供另一個中斷請求(NOVBUSIRQ)。MAX3420E還有另一個功能,當(dāng)探測到VBUS斷開時,可置位VBGATE (VBUS控制)位,自動斷開D+上拉電阻。這也是USB規(guī)范所要求的。
- 我可以在總線供電的外設(shè)中使用MAX3420E嗎?
是的。在總線供電應(yīng)用中,一個3.3V穩(wěn)壓器與USB連接器的VBUS引腳相連。當(dāng)外設(shè)插入到USB端口時,穩(wěn)壓器為芯片和SPI主控制器供電。因此,MAX3420的VBCOMP引腳不需要接VBUS。在這種情況下,VBCOMP輸入可以用作額外的通用輸入。必須要注意,確保該引腳的輸入信號符合MAX3420 Electrical Characteristics表中給出的門限要求。
- MAX3420E與USB連接需要什么樣的外部電路?
MAX3420E需要一個3.3V VCC。總線供電外設(shè)需要一個3.3V穩(wěn)壓器將VBUS引腳(4.4V至5.25V)的電壓轉(zhuǎn)換為3.3V。此外,MAX3420E還需要一個外部晶振(并聯(lián)諧振,12MHz ±0.25%),每個引腳的負(fù)載電容連接至地,在D+/D-輸出之間需串連兩個電阻(33,1%),還需要一個USB“B”型連接器。
- 能夠推薦一款3.3V穩(wěn)壓器嗎?
MAX6349TL比較合適。它可提供3.3V、150mA輸出,具有上電復(fù)位(POR)電路,可直接與MAX3420E的RES#引腳連接。在USB外設(shè)這樣的熱插拔設(shè)計中,良好的外部POR電路非常重要。
- CONNECT位起什么作用?
MAX3420E在D+引腳和VCC之間有一個可開關(guān)控制的1500上拉電阻。CONNECT位控制該開關(guān)的狀態(tài)。該開關(guān)允許總線供電的外設(shè)完成初始化后再與USB相連。根據(jù)USB規(guī)范的要求,在沒有VBUS的情況下,它還允許自供電外設(shè)斷開上拉電阻上的VCC。
- MAX3420E支持何種USB速率?
- 接口問題
- 微處理器是怎樣與MAX3420E連接的?
微處理器完成SPI主控制器的功能,使用3、4或者5線接口與MAX3420E相連。某些微控制器含有硬件SPI,但是大部分沒有。對于后一種情況,可以通過位模擬方式利用通用IO引腳實現(xiàn)SPI主控制器。
- SPI接口為3、4或者5線。這是什么意思?
最簡單的SPI接口包括三條線:SS# (從機選擇)、SCLK (串行時鐘)和MISO (雙向MISO/MOSI數(shù)據(jù)配置)。由于該接口不使用INT引腳,控制微處理器需要查詢兩個中斷請求寄存器來確定MAX3420E什么時候需要服務(wù)。通過設(shè)置控制位(FDUPSPI,全雙工SPI),使MOSI和MISO數(shù)據(jù)出現(xiàn)在不同引腳上,可實現(xiàn)4線接口。最后,一個INT (中斷輸出)引腳可連接處理器的中斷系統(tǒng)。
- MAX3420E支持何種SPI時鐘模式?
SPI模式通常以(x,y)的形式表示,其中一個變量是時鐘極性CPOL,另一個是時鐘相位CPHA。MAX3420E不需要模式位,可工作在模式(0,0)或者(1,1)下。這些模式的唯一區(qū)別是無效SCLK電平:(0,0)為低電平,(1,1)為高電平。MAX3420E SPI接口有兩個基本要求:- 提供給MAX3420E的MOSI數(shù)據(jù)必須在第一個SCLK上升沿之前有效。
- 在時鐘上升沿采樣SPI輸入數(shù)據(jù),在SCLK下降沿輸出數(shù)據(jù)。
- 我的CPU使用2.5V電源,但是MAX3420E使用3.3V VCC電源。我需要外部電平轉(zhuǎn)換器嗎?
不需要。MAX3420E包含內(nèi)部電平轉(zhuǎn)換器。由VL引腳對內(nèi)部邏輯供電,作為SPI和IO引腳信號的邏輯參考電壓。對于2.5V接口,需將VL引腳接2.5V電源。VL引腳能夠工作在1.7V至3.6V電壓范圍內(nèi)。如果控制器使用3.3V電源,將VL接至VCC。
- MAX3420E INT引腳起什么作用?
MAX3420E需要服務(wù)時,INT引腳變?yōu)橛行顟B(tài)。USB外設(shè)工作期間,這些情況包括到達(dá)SETUP、IN或者OUT封包,以及總線復(fù)位、掛起和恢復(fù)等總線事件。在系統(tǒng)中使用該引腳時,由于不需要通過SPI接口查詢中斷請求位,因此可以減少SPI的流量。
- MAX3420E支持低電平有效的線或中斷嗎? 支持邊沿有效中斷嗎?
MAX3420E通過INTLEVEL控制位可支持兩種中斷類型。設(shè)置INTLEVEL=1時,INT輸出引腳為開漏極、低電平有效輸出,適合線或應(yīng)用。該模式需要一個外部上拉電阻與VL連接。設(shè)置INTLEVEL=0 (默認(rèn)值)時,INT引腳為邊沿有效輸出,帶有一個推挽輸出驅(qū)動器。在邊沿模式下,通過POSINT位將邊沿極性設(shè)置為上升沿或者下降沿。
- MAX3420E SPI接口的最大速率是多少(SCLK最大頻率)?
VL等于或者大于2.5V時,SCLK信號可以高達(dá)26MHz。對于較低的VL電壓,數(shù)據(jù)資料給出了SCLK最大頻率需要降低多少。
- MAX3420E SCLK頻率有下限嗎?
沒有。該時鐘可無限期地保持高電平或低電平。同樣,SS#為高電平時,MAX3420E將忽略SCLK的轉(zhuǎn)換。
- 我有一個8引腳微處理器,它的IO引腳中有5個需要連接至MAX3420E。我怎樣分配IO呢?
MAX3420E有四個通用輸出(GPOUT3-0)和四個通用輸入引腳(GPIN3-0),通過IOPINS寄存器R20進(jìn)行設(shè)置和讀取。這填補了用于實現(xiàn)SPI接口的微控制器引腳,并增加了額外的引腳。
- 我需要為GPIN引腳加外部上拉電阻嗎?
不需要。GPIN引腳內(nèi)部上拉至(典型值為20k) VL。
- 我可以使用SPI接口引腳驅(qū)動光耦嗎?
可以。MAX3420E輸出具有足夠大的驅(qū)動電流,可通過串聯(lián)電阻驅(qū)動光耦的LED。請參考數(shù)據(jù)資料了解確切的驅(qū)動規(guī)格。輸出緩沖器一開始就面向光隔離進(jìn)行了設(shè)計,因此MAX3420E的SPI接口非常適合構(gòu)建電氣隔離USB。
- VBCOMP引腳的作用是什么? 它為MAX3420E供電嗎?
不。VBCOMP引腳不對MAX3420E的任何部分供電。它只連接至一個內(nèi)部比較器,以探測是否連接了VBUS。
- 微處理器是怎樣與MAX3420E連接的?
- 編程問題
- 我的固件如何與MAX3420E進(jìn)行通信?
MAX3420E有21個寄存器,可通過從機SPI接口進(jìn)行訪問。SPI主控制器首先發(fā)送一個命令字節(jié),設(shè)置寄存器地址和方向,然后傳輸一個或多個數(shù)據(jù)字節(jié)。
- 怎樣設(shè)置MAX3420E,來處理USB枚舉?
做為外設(shè),MAX3420E只需響應(yīng)來自主機(通常是PC)的命令即可。
- 怎樣編程實現(xiàn)BULK IN傳輸?
當(dāng)有數(shù)據(jù)需要發(fā)送給主機時,先裝載IN FIFO,然后寫入特定端點的字節(jié)計數(shù)寄存器。由于IN FIFO的長度為64字節(jié),一次可以裝入64個字節(jié)。數(shù)據(jù)裝入之后,將裝入到IN FIFO的字節(jié)數(shù)寫入IN端點的BYTECOUNT寄存器。寫入字節(jié)計數(shù)寄存器使進(jìn)行USB傳輸?shù)亩它c“準(zhǔn)備就緒”。MAX3420E將完成后面的工作。接下來收到針對該設(shè)備地址的IN請求時,準(zhǔn)備好的端點將FIFO數(shù)據(jù)發(fā)送至主機。
- 當(dāng)固件裝載IN FIFO時,此時收到USB IN請求,會出現(xiàn)什么情況?
MAX3420E注意到了這一問題。它采用一個NAK (否定應(yīng)答)握手信號,即以IN FIFO“未準(zhǔn)備好”自動響應(yīng)IN請求。該握手信號通知USB主機端點忙,主機應(yīng)稍后以另一個IN請求進(jìn)行嘗試。
- 怎樣知道何時需要裝載一個IN FIFO?
MAX3420E為IN端點提供中斷請求位,即IN3BAVIRQ、IN2BAVIRQ和IN0BAVIRQ,其中“BAV”表示“緩沖可用”。設(shè)備復(fù)位后,或者IN FIFO數(shù)據(jù)已成功傳輸并得到主機響應(yīng)后,MAX3420E邏輯將置位IN端點的BAVIRQ位。上電時,BAVIRQ位置位,指示IN FIFO可以進(jìn)行裝載。這些是復(fù)位時僅有的置1寄存器位,其他位均設(shè)置為0。
- 如果出現(xiàn)了USB傳輸錯誤,情況會怎樣? 我需要編寫代碼來處理錯誤嗎?
不需要。MAX3420E替您處理這些情況。如果MAX3420E接收到來自主機的錯誤條件,當(dāng)主機重試IN傳輸時,MAX3420E自動重發(fā)相同的數(shù)據(jù)。MAX3420E還自動處理其他錯誤校驗,例如數(shù)據(jù)觸發(fā)等。某些USB錯誤(例如,用戶在數(shù)據(jù)傳輸過程中拔掉電纜)需要由固件進(jìn)行處理。
- 怎樣編程實現(xiàn)BULK OUT傳輸?
當(dāng)主機發(fā)送OUT數(shù)據(jù)時,MAX3420E將字節(jié)存儲在一個OUT端點FIFO中。傳輸完成并驗證沒有錯誤后,MAX3420E觸發(fā)特定端點的“DAV” (數(shù)據(jù)可用)中斷請求位。這將提示SPI控制器讀取FIFO字節(jié)。SPI控制器首先讀取OUT FIFO字節(jié)計數(shù)寄存器,確定64字節(jié)FIFO中有多少可用字節(jié)。然后,它通過重復(fù)讀OUT FIFO寄存器來讀取相應(yīng)數(shù)量的字節(jié)。最后,SPI控制器清零OUT DAV IRQ位,為另一次傳輸“重新做好準(zhǔn)備”。
- INTERRUPT傳輸?shù)那闆r如何?
中斷傳輸?shù)那闆r與BULK傳輸相同。區(qū)別僅在于枚舉期間返回主機的設(shè)備描述符怎樣進(jìn)行說明。
- 怎樣編程實現(xiàn)SETUP傳輸?
USB主機采用CONTROL傳輸向MAX3420E發(fā)送一個SETUP封包以及用作USB“操作碼”的8個字節(jié)。MAX3420E在8字節(jié)FIFO中存儲這些字節(jié),然后觸發(fā)Setup數(shù)據(jù)可用中斷請求。SPI主控制器讀取位于寄存器地址R4 (SUDFIFO)的8個SETUP字節(jié),從這些字節(jié)中得到USB的操作命令,并進(jìn)行相應(yīng)的操作。操作完成后,SPI主控制器將ACKSTAT位(ACK表示應(yīng)答,STAT表示狀態(tài)階段)設(shè)置為高,以通知MAX3420E應(yīng)答CONTROL傳輸?shù)臓顟B(tài)階段。
- 我需要設(shè)置USB數(shù)據(jù)觸發(fā)嗎?
不需要。在USB傳輸期間,MAX3420E自動處理這些觸發(fā)。需要固件干預(yù)的唯一情況是主機在多配置設(shè)計(這種情況極少見)中設(shè)置新的配置。針對這一目的,MAX3420E提供了寄存器位來清除端點觸發(fā)。
- 通過向MAX3420E中斷請求位寫“1”以對其清零。這是反向操作嗎?
看起來象是反向操作,但這卻是最有效的方法來清除寄存器位。響應(yīng)一個典型的中斷請求時,SPI主控制器讀取一個中斷請求寄存器(USBIRQ或者EPIRQ),并利用不同的屏蔽位進(jìn)行檢查,以確定中斷源。例如,測試SUDAVIRQ中斷請求時,固件讀取R11 (EPIRQ),將讀取結(jié)果和00100000 (SUDAVIRQ位是第5位)進(jìn)行與操作。程序一般會采用標(biāo)識符來表示00100000,如bmSUDAV。一旦檢測到IRQ位等于1,固件便可以將屏蔽值寫回寄存器(SUDAVIRQ = bmSUDAV),只對需要清零的位清零。不改變寫零的IRQ位。
- 有什么編程提示嗎?
當(dāng)使用SPI全雙工模式時,第一個寄存器訪問操作應(yīng)設(shè)置FDUPSPI位為1,以便為后面的訪問正確設(shè)置接口。
- 我的固件如何與MAX3420E進(jìn)行通信?
- 主機軟件問題
- 我的Windows?應(yīng)用軟件怎樣與MAX3420E進(jìn)行通信?
Windows應(yīng)用軟件通過驅(qū)動程序與PC的USB主機控制器進(jìn)行通信。驅(qū)動程序可以是Windows自帶的,也可以是定制的。Windows包含標(biāo)準(zhǔn)設(shè)備類驅(qū)動程序,例如人機接口設(shè)備(HID)和大容量存儲設(shè)備等。如果您的固件支持這些標(biāo)準(zhǔn)設(shè)備之一,則您的用戶不需要安裝定制驅(qū)動程序。如果您設(shè)計的設(shè)備不符合Windows標(biāo)準(zhǔn)設(shè)備類,那么USB設(shè)備第一次插入時,終端用戶必須安裝定制驅(qū)動程序。
- Maxim提供定制Windows驅(qū)動程序嗎?
不提供。
- Maxim提供什么樣的實例代碼?
Maxim網(wǎng)站的USB Enumeration Code (and More) for MAX3420E提供實現(xiàn)HID應(yīng)用的實例C代碼。該實例代碼模擬一個PC鍵盤,當(dāng)按鍵按下時,將文本輸入到任何可接收文本的Windows應(yīng)用程序(例如,記事本)中。應(yīng)用程序符合標(biāo)準(zhǔn)HID類,不需要定制Windows驅(qū)動程序即可正常運行。不論您的目標(biāo)應(yīng)用程序怎樣,該實例代碼的大部分是USB的“樣板文件”,可以用作您應(yīng)用程序的起始代碼。
- 我想設(shè)計一個基于MAX3420E的設(shè)備,但是不有兩種選擇:
- 自己編寫Windows驅(qū)動程序。這比較復(fù)雜,難度大,僅建議專家使用。
- 購買通用驅(qū)動程序。一般由USB驅(qū)動程序和訪問驅(qū)動程序的C函數(shù)庫構(gòu)成。驅(qū)動程序應(yīng)與您設(shè)備描述符中的VID (供應(yīng)商ID)和PID (產(chǎn)品ID)匹配。
- MAX3420E與USB“串行橋接”芯片相比,結(jié)果如何?
USB串行橋接芯片采用其USB端口與PC連接,但是對于運行在PC上的應(yīng)用程序而言,它是一個虛擬COM端口。需要采用由芯片供應(yīng)商提供的定制驅(qū)動程序來實現(xiàn)這一COM至USB的轉(zhuǎn)換。采用這種方法,與串行(COM)端口(例如超級終端)進(jìn)行通信的Windows應(yīng)用程序可以與通過USB連接的設(shè)備通信。這種方法的優(yōu)勢在于不需要枚舉固件或者主機驅(qū)動程序。缺點體現(xiàn)在性能、靈活性和支持方面:
- 性能:由于橋接方法是仿真一個串行端口,最大可用帶寬大約為1Mbps,遠(yuǎn)遠(yuǎn)低于USB的12Mbps速率。
- 靈活性:串行USB橋接芯片是通過硬件連線來仿真串口設(shè)備。無法實現(xiàn)標(biāo)準(zhǔn)Windows類設(shè)備(例如HID)或定制設(shè)備類型。
- 支持:采用這種芯片設(shè)計產(chǎn)品時,您的用戶需要安裝配套的驅(qū)動程序。由于是定制驅(qū)動程序,不能保證與今后的操作系統(tǒng)版本兼容。如果您選擇了這種方法,應(yīng)確定在您的產(chǎn)品使用期限內(nèi),供應(yīng)商承諾提供驅(qū)動程序支持。
- 采用MAX3420E的優(yōu)缺點是什么?
缺點是MAX3420E的控制器需要固件,Maxim不提供定制Windows驅(qū)動程序。但Maxim提供實例固件,以說明如何做到符合標(biāo)準(zhǔn)Windows設(shè)備類(HID),從而使用Windows自帶的驅(qū)動程序。采用MAX3420E的優(yōu)點體現(xiàn)在性能、靈活性和支持方面。
- 性能:MAX3420E SPI端口(與控制器的接口)運行速率可高達(dá)26MHz。如果控制器支持較高的SPI時鐘速率,MAX3420E能夠提供最大12Mbps的全速帶寬USB傳輸。
- 靈活性:采用MAX3420E時,設(shè)備特性完全由自己的固件決定。因此可構(gòu)建任何類型的USB設(shè)備。
- 支持:一旦操作系統(tǒng)本身支持通用USB (BULK)傳輸,對串行USB橋接芯片的需求會越來越少。
- 我的Windows?應(yīng)用軟件怎樣與MAX3420E進(jìn)行通信?
- 其他問題
- 我的固件能夠確定我使用的芯片版本嗎?
是的。只讀寄存器R18包含版本號。
- MAX3420E最新的版本號是多少?
關(guān)于最新版本的數(shù)據(jù)資料和勘誤表,請參考MAX3420E QV。
- 我的固件能夠確定我使用的芯片版本嗎?
評論
查看更多