首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

哈工大DSP精品讲义!!!(连载)

* 1个16位的捕获FIFO状态寄存器CAPFIF0x。

* 可选择通用定时器1/2(EVA)或者3/4(EvB)作为时

基。

* 6个16位2级深的FIFO栈(CAPxFlFO),每个对应一个捕获单元,

* 3个施密特触发器输入引脚(对于EVA,CAPl/2/3;

对于EVB,CAP4/5/6),每个捕获单元一个输入引脚(所有的输入和内部CPU时钟同步,为使跳变被捕获,输入必须在当前电平保持两个CPU时钟周期。

输入引脚CAP1/2和CAP4/5也可用作正交编码器脉冲电路的正交编码器脉冲输入)。

* 用户可定义跳变检测方式(上升沿,下降沿或二者)

* 6个可屏蔽的中断标志位,每个标志位对应一个捕获单元

6.8.2 捕获单元的操作

在捕获单元位能后,相应输入引脚上的指定转换会将所

选的通用定时器的计数值装入到相应的FlFO堆栈。同

时,如果有个或更多有效的捕获值保存在FlFO堆栈

(CAPx FlFO位不等于0)中,则相应的中断标志位被置

1。如果该个断标志没有被屏蔽,产生一个外设中断 请求。

每当将捕获到的新计数值存入到FlFO堆栈时,CAPFlFOx 的相应状态位被调整以反映FlFO堆栈的新状态。从捕获单元输入引脚处发生转换到所选通用定时器的计数值被锁存之间的延时需要2个CPU时钟周期。

1.捕获单元时间基准的选择

对EVA模块,与 CAP1和CAP2不问,捕获单元CAP3有白己独立的时基选择位,这就允许同时使用2个通用定时器, CAP1和CAP2共用一个,而CAP3单独使用一个。在EVB模块,CAP6有自己独立的时基本选择位。捕获操作不影响与任何GP定时器对应的任何GP定时器 操作或比较/PWM操作。

2.捕获单元的设置

为使捕获单元能正常工作,需对寄存器进行以下设置:

* 初始化捕获FlFO状态寄存器(CAPFlFOx),清除专用状

态位。

* 设置选定的GP定时器为一种操作模式。

* 如果需要,设置相应的GP定时器比较寄存器或GP定时

器周期寄存器。

* 设置相应的CAPCONA或CAPCONB。

6.8.3 捕获单元寄存器

捕获单元的操作由4个16位的控制寄存器CAPCONA/B和

CAPFlFOA/B控制。因为捕获电路的时间基准是由GP

定时器1/2或3/4提供的,所以TxCON(x=1,2,3或4)

寄存器用于控制捕获单元的操作。

另外,寄存器CMCONA/B也可用于正交编码器脉冲电路

的操作。

1.捕获控制寄存器CAPCONx

(1)捕获控制寄存器A(CAPCONA),映射地址:7420h。

CAPCONA各位的意义:

位15 CAPRES。捕获复位,该位只能写,任何读的结

果均为0。 向位15写0将清除所有的捕获和QEP寄存

器。但是,使能捕获功能时不需要向位15写1。

0 所有捕获单元和正文编码脉冲电路的寄存器清o

1 无动作

位14-13 CAPQEPN。捕获单元1和2的控制位。

00 禁止捕获单元1fu 2,FIF0堆栈保持原内容

01 使能捕获单元1和2

10 保留

11 保留

位15 CAPRES。捕获复位,该位只能写,任何读的结

果均为0。 向位15写0将清除所有的捕获和QEP寄存

器。但是,使能捕获功能时不需要向位15写1。

0 所有捕获单元和正文编码脉冲电路的寄存器清o

1 无动作

位14-13 CAPQEPN。捕获单元1和2的控制位。

00 禁止捕获单元1fu 2,FIF0堆栈保持原内容

01 使能捕获单元1和2

10 保留

11 保留

位14-13 CAPQEPN。捕获单元1和2的控制位。

00 禁止捕获单元1fu 2,FIF0堆栈保持原内容

01 使能捕获单元1和2

10 保留

11 保留


位12 CAP3EN。捕获单元3控制位。

0 禁止捕获单元3,其FlFO堆栈保持原内容

1 使能捕获单元3

位11 保留位。

位10 CAP3TSEL。捕获单元3的通用定时器选择位。

0 选择通用定时器2

1 选择通用定时器1

位9 CAP2TSEL。捕获单元1和2的通用定时器选择位。

0 选择通用定时器2

1 选择通用定时器1位8 CAP3TOADC。捕获单元3事件启动ADC转换位:

0 无操作

1 当CAP3INT标志位被置位时,启动ADC(模数转换

位7-6 CAP1EDGE。捕获单元1的边沿检测控制位。

00 无检测

01 检测上升沿

I0 检侧下降沿

11 上升沿、下降沿均检测

位5-4 CAP2EDGE。捕获单元2的边沿检测控制位。

00 无检测

01 检测上升沿

I0 检侧下降沿

2.捕获FIFO状态寄存器   CAPFlFOx中包括捕获单元的3个FlFO堆栈的状态位。如     果CAPFlFOx的状态位正在更新的同时(因为一个捕获     事件)向CAPFlFOx状态位写数据,写数据优先。   CAPFlFOx寄存器的写操作在编程中很有用。例如,如果     “01”写入CAPFlFOx位,则EV模块会认为FIFO有一个输      入。随后,每次FIFO获得一个新值,则将产生一个捕     获中断。    (1)捕获FlFO状态寄存器A(CAPFlFOA),          映射地址:7422h     捕获FlFO状态寄存器A(CAPFlFOA)各位的意义如下:
位15-14  保留位。   位13-12  CAP3FlFO。捕获单元3的FlFO状态位         00     空         01     有一个输入         10     有两个输入         11     有两个输入并又捕获到一个,第一个输入已丢                失。   位11-10  CAP2FlFO。捕获单元2的FlFO状态位         00     空         01     有一个输入


10 有两个输入

11 有两个输入并又捕获到一个,第一个输入已丢

失。

位9-8 CAP1FlFO。捕获单元1的FlFO状态位

00 空

01 有一个输入

10 有两个输入

11 有两个输入并又捕获到一个,第一个输入已丢

失。

位7-0 保留位

(2)捕获FlFO状态寄存器B(CAPFlFOB),          映射地址:7522h     与捕获FlFO状态寄存器A(CAPFlFOA)各位的意义相同。   6.8.4  捕获单元FIF0堆栈         每个捕获单元有一个2级深度FlFO堆栈。任何一个     FlFO堆栈的2级寄存器都是只读寄存器,它保存着相     应的捕获单元捕获的旧计数器值。因此,对FlFO堆栈     的一个读访问总是读出捕获到堆栈中的旧计数器值。     当位于FlFO堆栈顶部寄存器中的计数器值被读出时,     FlFO堆栈底部寄存器的新计数器值(如果有的话)就会     被压入项部寄存器
返回列表