- 一般问题
- 什么是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。
- 我的固件能够确定我使用的芯片版本吗?
评论
查看更多