[stm32] STM32 Interrupts and events 系统了解(EXTI)及槽型光电开关tp850电路研究

1 嵌套向量中断控制器

  特性:

● 68个可屏蔽中断通道(不包含16个Cortex™-M3的中断线);
● 16个可编程的优先等级(使用了4位中断优先级);
● 低延迟的异常和中断处理;
● 电源管理控制;
● 系统控制寄存器的实现;

嵌套向量中断控制器(NVIC)和处理器核的接口紧密相连,可以实现低延迟的中断处理和高效地处理晚到的中断。
[正版请搜索:beautifulzzzz(看楼主博客园官方博客,享高质量生活)嘻嘻!!!]

1.1 系统嘀嗒(SysTick)校准值寄存器

  系统嘀嗒校准值固定为9000,当系统嘀嗒时钟设定为9MHz(HCLK/8的最大值),产生1ms时间基准。

2 外部中断/事件控制器(EXTI)

  对于互联型产品,外部中断/事件控制器由20个产生事件/中断请求的边沿检测器组成,对于其它产品,则有19个能产生事件/中断请求的边沿检测器。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以独立地被屏蔽。挂起寄存器保持着状态线的中断请求。

2.1 主要特性

  EXTI控制器的主要特性如下:

● 每个中断/事件都有独立的触发和屏蔽
● 每个中断线都有专用的状态位
● 支持多达20个软件的中断/事件请求
● 检测脉冲宽度低于APB2时钟宽度的外部信号。

2.2 框图

[stm32] STM32 Interrupts and events 系统了解(EXTI)及槽型光电开关tp850电路研究

                  图1 外部中断/事件控制器框图

2.3 唤醒事件管理

  STM32F10xxx可以处理外部或内部事件来唤醒内核(WFE)。唤醒事件可以通过下述配置产生:

● 在外设的控制寄存器使能一个中断,但不在NVIC中使能,同时在Cortex-M3的系统控制寄存器中使能SEVONPEND位。当CPU从WFE恢复后,需要清除相应外设的中断挂起位和外设NVIC中断通道挂起位(在NVIC中断清除挂起寄存器中)。
● 配置一个外部或内部EXTI线为事件模式,当CPU从WFE恢复后,因为对应事件线的挂起位没有被置位,不必清除相应外设的中断挂起位或NVIC中断通道挂起位。

在互联型产品中,以太网唤醒事件同样具有WFE唤醒功能。

2.4 功能说明

  要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置2个触发寄存器,同时在中断屏蔽寄存器的相应位写’1’允许中断请求。当外部中断线上发生了期待的边沿时,将产生一个中断请求,对应的挂起位也随之被置’1’。在挂起寄存器的对应位写’1’,将清除该中断请求。
  如果需要产生事件,必须先配置好并使能事件线。根据需要的边沿检测通过设置2个触发寄存器,同时在事件屏蔽寄存器的相应位写’1’允许事件请求。当事件线上发生了需要的边沿时,将产生一个事件请求脉冲,对应的挂起位不被置’1’。
  通过在软件中断/事件寄存器写’1’,也可以通过软件产生中断/事件请求。

2.4.1 硬件中断选择(外部中断配置)

  通过下面的过程来配置20个线路做为中断源:

● 配置20个中断线的屏蔽位(EXTI_IMR)
● 配置所选中断线的触发选择位(EXTI_RTSR和EXTI_FTSR);
● 配置对应到外部中断控制器(EXTI)的NVIC中断通道的使能和屏蔽位,使得20个中断线中的请求可以被正确地响应。

2.4.2 硬件事件选择

  通过下面的过程,可以配置20个线路为事件源:

● 配置20个事件线的屏蔽位(EXTI_EMR)
● 配置事件线的触发选择位(EXTI_RTSR和EXTI_FTSR)

2.4.3 软件中断/事件的选择

20个线路可以被配置成软件中断/事件线。下面是产生软件中断的过程:

● 配置20个中断/事件线屏蔽位(EXTI_IMR, EXTI_EMR)
● 设置软件中断寄存器的请求位(EXTI_SWIER)

2.5 外部中断/事件线路映像

通用I/O端口以下图的方式连接到16个外部中断/事件线上:

[stm32] STM32 Interrupts and events 系统了解(EXTI)及槽型光电开关tp850电路研究

          图2 外部中断通用I/O映像

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzjpj.html