GPIO外设使用以下两种模式产生CPU中断和EDMA同步事件:
1)直接传递模式(Pass-through Mode)。
2)逻辑模式(Logic Mode)。
直接传递模式允许每个GPn信号引脚配置为一个输入,直接触发一个CPU中断和一个EDMA事件。逻辑模式允许用户决定哪个GPIO信号用做一个半编程逻辑功能的输入。逻辑功能的输出GPINT和直接传递模式的内部输出GPINT0_int是复用的,产生一个CPU中断和一个EDMA事件。另外,逻辑模式输出被GPO引脚所驱动,用于板级设计。图5-4显示了GPIO中断和事件产生逻辑。
1.直接传递模式
直接传递模式可应用于所有GPIO信号。在直接传递模式中,GPn输入引脚上的信号变换会产生一个CPU中断和一个EDMA同步事件。注意,尽管所有GPINTn都是EDMA的同步事件,但只有GPINT0和GPINT[4∶7]可以用于CPU中断源。如图5-5所示为直接传递模式中断/事件产生框图。用户必须配置相应的位,以便正确地使用直接传递模式下的GPn引脚。
图5-4 GPIO中断和事件产生逻辑
图5-5 直接传递模式中断/事件产生框图
1)GPXEN的第n位=1,使能GPn作为GPIO引脚。
2)GPXDIR的第n位=0,GPn引脚为输出。
3)如果在相关GPn引脚的上升沿变化时期望一个中断/事件,则设置GPINTXPOL的第n位=0;如果在相关GPn引脚的下降沿变化时期望一个中断/事件,则设置GPINTXPOL的第n位=1。
如图5-5所示,为了在直接传递模式下使用GP0,GPGC寄存器的GPINT0M位必须清除为0。从直接传递模式逻辑输出的GPINT0_int是和从逻辑模式逻辑输出的GPINT输出复用的,以产生GPINT0中断/事件。
如果GPn配置为一个输出,则相应的GPINTn信号被禁止。
2.逻辑模式
在逻辑模式下,中断/事件是基于GPIO输入的逻辑组合而产生的。当检测到任意GPIO输入信号上一个特定的边沿(上升、下降或两者)或特定的值时,产生这个逻辑功能的输出,即GPINT0禁止的GPIO信号或使能的GPIO输出不能用于中断/事件的产生。逻辑模式输出GPINT与直接传递模式的输出GPINT0_int是复用的,以便产生一个CPU中断或一个EDMA事件。为了使用逻辑模式产生一个中断/事件,寄存器GPGC的位GPINT0M必须设置为1。
如图5-6所示为逻辑模式的逻辑功能框图。在默认情况下,当输入的逻辑组合为真时,GPINT置于高电平。设置GPGC的位GPINTPOL=1,当输入的逻辑组合为假时,GPINT置于高电平。
图5-6 逻辑模式的逻辑功能框图
GPINT的产生可以通过以下3种方式之一实现:DeltaOR、Delta AND或Value AND。除了GPHM和GPLM的屏蔽位外,还是用GPGC寄存器的两个控制位配置GPINT的产生方式。GPINTDV位将逻辑模式分为Delta模式和Value模式。
1)Delta模式。中断/事件屏蔽逻辑的输入来自于GPDH和GPDL。GPINT由GPIO引脚信号变化的逻辑组合产生。(www.xing528.com)
2)Value模式。中断/事件屏蔽逻辑的输入来自于GPVAL。GPINIT由GPIO引脚上的值的组合产生。逻辑模式的屏蔽逻辑的来源由GPHM和GPLM位驱动。在Delta模式下,GP-DH位由GPHM位驱动,GPDL位由GPLM位驱动。在Value模式下,引脚上的值由GPHM位驱动,并且反相值由GPLM位驱动。
GPGC的LOGIC位控制一个中断,事件是基于所有屏蔽输出为真还是任一个屏蔽输出为真。
1)OR模式。中断/事件的产生是基于任一个屏蔽输出为真。
2)AND模式。基于所有屏蔽输出为真。
逻辑模式下,GPGC寄存器和LOGIC位的设置与3种逻辑模式具有对应关系。表5-1描述了逻辑模式真值表。
表5-1 逻辑模式真值表
3.GPINT和GP0“与”/“或”GPINT0的复用逻辑功能
输出信号GPINT,可以用于DSP和一个外部器件。
1)GPINT可以通过GPINT0产生一个CPU中断和一个EDMA事件。
2)如果GP0配置为一个输出GPINT,可以被输出为外部器件使用的GP0。
图5-7显示GPINT信号的连接关系。
图5-7 GPINT信号的连接关系
当GP0被配置为一个输出时(GP0DIR=1),GP0M位控制GP0信号是以GPIO模式或是以逻辑模式工作。在GPIO模式下(GP0M=0),GP0VAL的值被送到GP0。在逻辑模式下(GP0M=1),GPINT被送到GP0。当GP0配置为一个输入时,GP0M没有任何影响。GPINT0M位控制GPINT0信号是以直接传递模式或是以逻辑模式工作。在直接传递模式下(GPINT0M=0),来自直接传递模式逻辑的GPINT0_int值,用于产生一个CPU中断/EDMA同步事件。在逻辑模式下(GPINT0M=1),逻辑模式输出GPINT用于产生CPU中断和ED-MA同步事件。
如果GP0被配置为一个输出,则直接传递模式被禁止,而逻辑模式仍然被支持并且可以产生GPINT,此时不会产生GPINT0_int。
4.中断和事件
GPIO外设通过内部GPINTn信号产生CPU中断和EMDA同步事件。表5-2概括了GPIO中断和EDMA同步事件。GPINT[1∶15]只能用于直接传递模式,但是GPINT0既可以用于直接传递模式,也可以用于逻辑模式。所有GPINTn可以用于EDMA同步事件。只有GPINT0和GPINT[4∶7]可以用于CPU的中断源。
表5-2 GPIO中断和EDMA同步事件
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。