AD2428W手册解读之中断处理

        本文介绍A2B系统中主机对中断的处理流程。

1、主运行中断

        如主运行中断图所示,触发器(主IRQ引脚)是在主节点锁定锁相环到SYNC信号后或发现线路故障后断言的。

注意:MSTR_RUNNING (A2B_INTTYPE= 0xFF)是一个仅主用中断。

主运行中断

        读取A2B_INTSRC和A2B_INTTYPE寄存器,继续发现从节点或处理线路故障。注意,对主A2B_INTTYPE寄存器的主机读将清除中断。

2、发现完成中断

        如发现已完成中断图所示,触发器(主IRQ引脚)是在主节点看到从节点发现的响应之后断言的。DSCDONE (A2B_INTTYPE = 0x18)是一个仅主中断。

发现已完成中断示意图

        读取A2B_INTSRC和A2B_INTTYPE寄存器,继续进行节点身份验证和发现过程。注意,对主A2B_INTTYPE寄存器的主机读将清除中断。

3、线路故障中断

        如线路故障中断图所示,在发现过程中或发现后遇到线路故障后,会断言触发器(主IRQ引脚)。

线路故障中断

        读取A2B_INTTYPE寄存器并进行线路诊断,如A2B系统调试中所述。

        当收发器由于BP短接GND等严重故障而进入RESET状态时,没有向主机提示发生了这种情况。如果系统需要这样的功能,设计可以利用IRQ线上的终端电阻作为其活动极性的函数,由A2B_PINCFG.IRQINV位控制。当A2B_PINCFG.IRQINV = 0,当收发器连接到IRQ线时,一个上拉电阻将IRQ拉高当处于RESET状态时,三状态IRQ引脚。这个状态可以被主控制器看作是一个活跃的高边缘伪中断。主机读取A2B_INTSTAT和A2B_INTTYPE寄存器为0x00(重置值),这可以解释为收发器进入reset状态的事件。对于主控制器负边中断,当A2B_PINCFG.IRQINV = 1时,IRQ线上的下拉电阻具有相同的效果。

        注意:设置A2B_CONTROL.MSTR位,主机控制器必须忽略之前的IRQ状态,IRQ引脚被驱动到非活动状态。

4、错误中断

        如错误中断图所示,当遇到下列任何错误时,会断言触发器(主IRQ引脚)。

错误中断示意图

HDCNTERR=0x0
DDERR=   0x1
CRCERR=  0x2
DPERR=   0x3
BECOVF=  0x4* (Occurrence of Bit error count overflow interrupt, after 
               resetting the error counter (BECNT) once every
               second, indicates bus issues )SRFERR=  0x5* (10 time occurrence without 
interrupt status (INTSTAT)
                  being cleared between pending interrupts shall be 
                  treated as bus lost condition/line fault)
SRFCRCERR=0x6 (Slave Only)
I2CERR=   0x19 (Master Only)
ICRCERR=  0x1A (Master Only)  

        读取A2B_INTTYPE寄存器并进行线路诊断,如A2B系统调试中所述。

5、通用IO引脚中断

        如通用IO引脚中断图所示,当遇到下列任何错误时,会断言触发器(主IRQ引脚)。

通用IO引脚中断示意图

IO0=  0x10  (Slave only)
IO1=  0x11
IO2=  0x12
IO3=  0x13
IO4=  0x14
IO5=  0x15
IO6=  0x16
IO7=  0x17   

        读取A2B_INTTYPE寄存器并采取特定于应用程序的操作。

猜你喜欢

转载自blog.csdn.net/code_lyb/article/details/125301804