微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > MAX3420E外设控制器的中断系统

MAX3420E外设控制器的中断系统

时间:12-08 来源:互联网 点击:
MAX3420E可与任何SPI主控制器相连,以构成全速USB外设器件。尽管一般都由MAX3420来管理底层USB信令,但是需要处理USB事件时,SPI主控制器必须参与处理,当MAX3420的INT引脚指示有中断发生时,SPI主控制器将读取14个中断请求位,以确定需要服务的中断,一般情况下,主要由这些中断请求(IRQ)位确定MAX3420E的工作过程,在选择器件时,SPI主控制器可以是微控制器、DSP、ASIC或具备SPI端口的其他器件,并应能提供SCLK信号。

MAX3420E的中断逻辑

◇ IRQ位

图1所示为MAX3420E中断逻辑。阴影部分是可通过SPI访问的寄存器位,图中有一个IRQ位,实际上,每一个中断都有一个用于锁存服务请求的触发器。触发器的输出即为IRQ,它出现在MAX3420E寄存器中,IRQ位提供两种功能:一是读取一个IRQ位,然后返回IRQ触发器的状态;二是写入一个“1”至IRQ位,以清除IRQ触发器,而写入“0”至IRQ位,则不改变触发器状态。

事实上,可以在任意时刻读取IRQ位,它反映了IRQ触发器的状态,当按照写入1而不是0来清除所选的IRQ位时,这一过程不需要读-修改-写周期,假设MAX3420E的IRQ位与普通的寄存器位一样,即写1置位,写0清除,那么,清除USBIRQ寄存器的USESIRQ位的操作代码如下:

#define rUSBIRQ 13 //register 13

#define bmURESIRQ 0x08 //URESIRQ is bit4,bm means“bit mask”

unsigned char dum;

dum=rreg(rUSBIRQ); //read the register

dum=dum&—bmURESIRQ; //chear one bit

wreg(Rusbirq,dum); //write it back

由于SPI主控制器可通过写1来清除一个MAX3420E IRQ位,而写0则不改变其他寄存器位,因此,SPI主控制器可直接写入位屏蔽值以清除URESIRQ位。这样,上述代码中的最后三条语句便可由下面的单条语句所替代:

wreg(rUSBIRQ,bmURESIRQ);//1 cheras an IRQ bit,0 leaves it alone

◇ IEN位

14个MAX3420E中断的每一个都有相应的中断使能(IEN)位,IEN位和IRQ触发器输出进行“与”操作,可决定是否向INT引脚传送中断请求。14个IRQ触发器通过门控电路后再进行“或”操作,也会形成一个内部中断请求信号,并传送至中断引脚逻辑模块。

实际上,无论IEN位的状态如何,IRQ位都指示中断悬挂状态,这样,即使中断不触发INT引脚,固件仍可以检查该悬挂中断,如果您的程序需要检查一个IRQ寄存器“是否悬挂中断”,比较简单的方法是读取IRQ和IEN寄存器,并对它们进行“与”操作,然后检查“等待和被使能的IRQ”位,零值表示没有使能的中断,系统处于悬挂状态。

◇ IE位

SIP主控制器通过IE位来使能或者禁止INT引脚,由于该位影响到所有的中断,因此通常称之为全局中断使能,不论IRQ或者IEN位的状态如何,当IE为0时,INT引脚均无效。

可用两个寄存器位INTLEVEL(参考下面的讨论)和POSINT来控制INT引脚的工作方式,在设置IE为1之间,应先设置这两个配置位。其操作如下:
[tr]


[/table]

(1)电平模式

某些微控制器系统使用低电平有效中断。当采用这种配置时,MAX3420E采用一个开漏极晶体管驱动INT引脚至地,由于引脚只能驱动低电平,因此,需要在INT引脚和逻辑电源之间接一个上拉电阻,该模块支持多个芯片的INT引脚输出(每个均为开漏输出)连接在一起,并使用单个上拉电阻。由于任何一个芯片输出都可将引脚拉低,因此这种逻辑有时也称为“线或”。对于这种类型的系统,可设置INTLEVEL为1。

(2)边沿模式

MAX3420E的INT引脚可以驱动边沿有效的中断系统,此时,微控制器在其中中断输入脚上将检查0到1或者1到0跳变,INTLEVEL为0是MAX3420E的缺省模式。SPI主控制器通过第二个POSINT位设置边沿极性,POSINT为1时,MAX3420E为悬挂中断输出一个0到1的跳变。POSINT为0(缺省值)时,MAX3420为悬挂中断输出一个1到0的跳变。

需要说明的是:如果一个IRQ位置位,而其对应的IEN位清零,则IRQ将不会影响INT输出引脚,但是,中断仍处于悬挂状态,永远可以读取IRQ位以获得其状态,可向对应的寄存器位写1,并将IRQ位清零。

悬挂中断(IRQ位是1)的IEN位出现0到1跳变时将产生中断。

INT引脚可连接至微控制器的中断系统,此外,微控制器可以轮询INT引脚,以确定MAX3420E是否有中断处于悬挂状态,最适合轮询的模式是电平模式(INTLEVEL=1),这是因为在边沿模式中,INT引脚输出的脉冲可能太窄,微控制器无法探测到(参考下面的讨论)。请注意,电平模式需要在INT引脚和V1之间连接一个上拉电阻。

INT引脚状态与波形

◇ 电平模式

图2所示为电平模式下的MAX3420E的INT引脚波形。INT引脚静态为高电平(上拉至VL)。假设图中两个中断的IEN位均置为1,全局IE位也置1,那么将发生一个中断请求,使MAX3420E INT引脚置低,实际上,尽管MAX3420E中断输出引脚被称为INT引脚,它有时也是负极性(例如在电平模式下)。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top