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