
ADE7878
中断
在ADE7878有两个中断引脚IRQ0和IRQ1 。每个
销是由一个32位的中断屏蔽寄存器, MASK0管理[31:0 ]
和MASK1 [31:0 ]上。要启用一个中断,在一个位
在MASKx [ 31 : 0 ]寄存器必须设置为1。要禁用它,位
必须清0。 2个32位状态寄存器, STATUS0 [ 31 : 0 ]
和STATUS1 [31: 0],与中断相关联。当
中断事件发生时,在ADE7878 ,相应的
标志在中断状态寄存器被设置为逻辑1 (参见表31
和表32)。如果屏蔽位该中断的中断
屏蔽寄存器是逻辑1 ,则IRQx逻辑输出变为有效
低。在中断状态寄存器中的标志位被置无关
的屏蔽位的状态。要确定的源
中断时,MCU应进行相应的读
状态X注册和识别位设置为1。要清除
标志状态寄存器,状态X应该被写回
该标志设置为1之后中断引脚变为低电平时,状态寄存器
被读出和中断的源被识别。然后,将
状态寄存器写回没有任何改变来清除
状态标志位为0 TheIRQx引脚保持为低电平,直到状态标志
取消了。
默认情况下,所有中断被禁止。然而, RSTDONE
中断是一个例外。该中断不能被屏蔽
(禁用) ,因此,位位15( RSTDONE )在MASK1 [31 :0]的
寄存器不具有任何功能。 IRQ1引脚始终
变低和位15 ( RSTDONE )在STATUS1 [31:0 ]被设定为
1每当一个电或硬件/软件复位处理结束。
要取消的状态标志,该STATUS1 [ 31 : 0 ]寄存器必须是
写有位15 ( RSTDONE )设置为1。
某中断与其他状态配合使用
寄存器:位0 ( n载入) ,第1位( FNLOAD )和第2位( VANLOAD )
在MASK1 [ 31 : 0 ]与状态寄存器一起工作
在PHNOLAD位[15 :0]寄存器。位16 ( SAG) ,位17 ( OI )
而在MASK1位18 ( OV ) [ 31 : 0 ]寄存器的工作状态
在PHSTATUS位[15 :0]寄存器。位23 ( PKI)和第24位
( PKV )在MASK1 [ 31 : 0 ]寄存器状态位工作
该IPEAK [31:0 ]和VPEAK [31:0 ]上。位[ 6 :8]
( REVAPx ) ,位[ 10:12 ] ( REVRPx )和第9位, 13位和18位
( REVPSUMx )在MASK0 [ 31 : 0 ]寄存器工作的状态
在PHSIGN位[15 :0]寄存器。当状态X [31:0 ]
读寄存器和这些位中的一个被设置为1 ,则状态
t
1
IRQx
寄存器与位相关的立即读取,以确定
触发中断的相位,并且仅在那时可
的状态X [ 31 : 0 ]寄存器进行写回位设置为1 。
使用带MCU的中断
图78显示了示出一个建议的时序图
通过实施ADE7878中断管理
一个MCU 。在时刻t
1
,在IRQx引脚变为低电平,表示
发生在ADE7878的一个或多个中断事件。领带
在IRQx引脚为负边沿触发的外部中断上
该MCU。在检测到下降沿,配置
微控制器开始执行它的中断服务例程(ISR) 。上
进入中断服务程序,使用全局中断禁止所有中断
屏蔽位。在这一点上,在MCU外部中断标志可以是
清除,以捕获当前过程中发生中断事件
ISR 。当MCU中断标志被清零时,从读
状态X ,中断状态寄存器,被执行。该
中断状态寄存器的内容被用于确定所述源
中断(多个) ,因此,适当的动作要
采取。接着,在同一状态X的内容回写到
ADE7878清除状态标志(S)和复位IRQx线
逻辑高电平(T
2
) 。如果在发生后续的中断事件
ISR (T
3
) ,该事件被记录由MCU外部中断
标志被重新设置。
从ISR返回时,全局中断屏蔽位
清除(同一指令周期) ,并在外部中断标志
采用MCU跳转到它的ISR一次。这确保了
MCU不会错过任何外部中断。
图79示出一个推荐的定时时的图
在状态X状态寄存器的位与工作相结合
位中的其它寄存器。同样如前文所述,当
IRQx引脚变为低电平,则状态X寄存器读取,如果
这些位中的一个是1,则第二个状态寄存器被读出
立即识别触发中断的相位。
名称, PHX ,在图79表示PHSTATUS之一
IPEAK , VPEAK或PHSIGN寄存器。那么,是状态X
回写到清除状态标志位。
t
2
t
3
MCU
打断
标志设置
节目
顺序
跳转
ISR的
ISR行动
(基于状态X的内容)
跳转
ISR的
图78.中断管理
第0版|页62 92
08510-057
全球
打断
面膜
CLEAR MCU
打断
旗
读
状态X
写
后
状态X
ISR返回
全局中断
面膜复位