eCan模块

xiaoxiao2021-03-01  27

eCAP模块

1.介绍

eCAP模块包括以下的资源:

*可分配的输入引脚。

*32-bit时间基准(计数器)。

*432bit时间窗捕获控制寄存器。

*独立的边缘极性选择。

*输入信号分频(2~62)。

*4Capture event均可引起中断。

2. eCAP模块功能分析

eCAP模块可以设置为event capture模式或者是APWM模式,一般而言前者比较常用,在这里我们只对第一种进行介绍。在event capture模式下,一般可以将eCAP模块分为以下几个模块:事件分频、边沿极性选择与验证、中断控制。

2.1 事件分频

输入事件信号可通过分频器分频处理(分频系数2~62),或直接跳过分频器。这个功能通常针对输入事件信号频率很高的情况下。

2.2边沿极性选择与验证

14个独立的边沿极性(上升沿/下降沿)选择通道。

2Modulo4 序列发生器对Each edge(共4路)进行事件验证。

3CAPx通过Mod4对事件边沿计数。CAPx寄存器在下降沿时被装载。

2.3 32-bit计数器(TSCTR

此计数器为event capture提供事件基准,而时钟的计数则是基于系统时钟的。当此计数器计数超过范围时,则会产生相应的溢出标志,若溢出中断使能,则产生中断。此计数器在计算事件周期时非常有效。详细的资料请参看spru807应用部分。

2.4中断控制

中断能够被capture eventsCEVT1-CEVT4,CTROVF)触发。计数溢出同样会提供中断。事件单独地被极性选择部分以及序列验证部分审核。这些事件中的一个被选择用来作为中断源送入PIE

设置中断的Proper过程

<!--[if !supportLists]-->1) <!--[endif]-->Disable global interrupts.

<!--[if !supportLists]-->2) <!--[endif]-->停止eCAP计数。

<!--[if !supportLists]-->3) <!--[endif]-->Disable eCAP interrupts

<!--[if !supportLists]-->4) <!--[endif]-->设置外设寄存器。

<!--[if !supportLists]-->5) <!--[endif]-->清除eCAP中断标志位。

<!--[if !supportLists]-->6) <!--[endif]-->Enable eCAP中断。

<!--[if !supportLists]-->7) <!--[endif]-->Start ecap 计数器。

<!--[if !supportLists]-->8) <!--[endif]-->Enable global 中断。

3. eCAP模块的理解

配置好eCAP模块的引脚后,外部事件由引脚输入,首先通过模块的分频部分,分频系数为2~62,也可以选择跳过分频部分。经过分频部分后的信号(通常频率会降低),送至边沿及序列审核部分,边沿审核即设置为上升沿或下降沿有效,序列审核则是分配当前对哪个寄存器(CAP1CAP4)作用的问题,之后就是中断部分了。引起中断的中断源有7个,event capture模式下有五个,分别是审核后各路的事件以及溢出中断。

相关资源:eCAN模块初始化
转载请注明原文地址: https://www.6miu.com/read-3650303.html

最新回复(0)