MAX3420E中断系统引言MAX3420E可与任何SPI主控制器相连,构成全速USB外设器件
尽管由MAX3420管理底层USB信令,但是需要处理USB事件时,SPI主控制器必须参与处理
MAX3420的INT引脚指示有中断发生,SPI主控制器读取14个中断请求位,确定需要服务的中断
主要由这些中断请求(IRQ)位确定MAX3420E的工作过程
注意:SPI主控制器可以是微控制器、DSP、ASIC或者任何具备SPI端口的器件,并能提供SCLK信号
本文档使用的术语“SPI主控制器”和“微控制器”含义相同
MAX3420E中断逻辑图1所示为MAX3420E中断逻辑
阴影部分是可通过SPI访问的寄存器位
IRQ位每一个中断源都有一个用于锁存服务请求的触发器
触发器的输出即为IRQ,它出现在MAX3420E寄存器中
IRQ位提供两种功能:读取一个IRQ位,将返回IRQ触发器的状态
写入一个“1”至IRQ位,将清除IRQ触发器,写入“0”至IRQ位,不改变触发器状态
可以在任意时刻读取IRQ位,它反映了IRQ触发器的状态
按照上面第2条,写入1而不是0来清除所选的IRQ位,这一过程不需要读-修改-写周期
举例说明,假设MAX3420E的IRQ位与普通的寄存器位一样,写1置位,写0清除
现在,我们想要清除USBIRQ寄存器的URESIRQ位
图2所示为实现该操作的代码
由于SPI主控制器通过写1来清除一个MAX3420EIRQ位,而写0不改变其他寄存器位,因此SPI主控制器可以直接写入位屏蔽值来清除URESIRQ位
所以,图2中的最后三条语句可以由图3中的单条语句替代
IEN位14个MAX3420E中断的每一个都有相应的中断使能(IEN)位
IEN位和IRQ触发器输出进行“与”操作,决定是否向INT引脚传送中断请求(图1)
14个IRQ触发器通过门控电路后,进行“或”操作,形成一个