版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微控制器原理及应用
PrincipleAndApplicationOfMicrocontroller
第八章捕获模块的基础知识1C2000的eCAP2eCAP的软件架构3应用实例---“捕捉瞬息万变”43根据你们对ECAP模块课程预习的理解,请举例生活中可以应用该模块的案例,并通过图文形式简要说明ECAP模块在该案例中是怎么应用的。作答主观题10分48.1嵌入式系统简介
8.1.1
捕获模块的基础知识5
捕获模块:捕获模块可以捕获MCU引脚的电平跳变(上升沿、下降沿),并记录电平跳变的时刻。跟定时器模块一样,捕获模块也有对时间的处理,也是通过计数器来实现的。捕获模块可以用于外部事件的精确时间测量。只要被检测信号能够转换为脉冲信号,捕获模块就可以对该脉冲信号进行捕获。8.1.1捕获模块的基础知识设时钟频率f=100Hz,3次捕获保存在捕获寄存器CAPReg1、CAPReg2、CAPReg3中,那么CAPReg1=1、CAPReg2=4、CAPReg3=8。
高电平时间:Ton=(CAPReg2–CAPReg1)/f=0.03s脉冲周期:T=(CAPReg3-CAPReg1)/f=0.07s脉冲占空比:D=(CAPReg2–CAPReg1)/(CAPReg3-CAPReg1)=3/76捕获模块的应用:电机的转速测量(需要利用传感器把转速转换为脉冲信号)脉冲信号的周期和占空比测量位置传感器输出脉冲的时间测量脉冲编码型电压或电流传感器的电压或电流幅值的测量8.1.1捕获模块的基础知识78.2.1eCAP的概述
8.2.2eCAP的内部结构8.2.3eCAP的功能描述8.2C2000的eCAP88.2.1eCAP的概述eCAP模块的主要特性:32位计数时基4个32位的事件时间戳寄存器(CAP1-CAP4)4级序列器,与捕获输入信号的上升沿或下降沿同步输入捕获信号的预分频(2-62分频)4个捕获事件的边沿极性可独立选择
差分(Delta)模式时间戳捕获
绝对(Absolute)模式时间戳捕获9eCAP模块的主要特性:
单触发捕获模式:捕获1-4个事件后停止捕获
连续捕获模式:循环进行1-4个事件的捕获
中断功能:4个捕获事件都可以触发中断
捕获模式不使用时,eCAP模块可以配置为单通道PWM输出8.2.1eCAP的概述108.2.2eCAP的内部结构eCAP功能框图:11输入信号经过事件预分频(Eventprescale)、极性选择(Polarityselect)后到达事件决策模块(Eventqualifier)。事件决策模块根据捕获模式(Continuous/OneshotCaptureControl)的配置,产生装载捕获寄存器的触发信(LD1~LD4),把捕获计数器(TSCTR)的当前值CTR装载到捕获寄存器中(CAP1、CAP2、CAP3、CAP4)。根据复位配置(CTRRSTx)可输出信号(Deltamode)复位捕获计数器。捕获事件(Captureevents)可发出捕获事件中断信号(CEVT)给PIE。
另外,eCAP1~eCAP4可通过时钟同步信号(SYNCIn)进行计数器初始值(CTRPHS)的装载。8.2.2eCAP的内部结构128.2.3eCAP的功能描述1.预分频:预分频器可以对输入脉冲信号进行预分频(2-62分频,2的倍数),或者直接旁路,不经过预分频器。事件预分频控制功能框图预分频波形132.边沿极性选择:边沿极性可以选择上升沿捕获或下降沿捕获。eCAP模块有4个独立的边沿极性选择,每一个分别对应一个捕获事件。3.连续/单次模式控制:1)Modulo4counter:事件触发计数器,由捕获事件触发计数。计数值只能是0、1、2、3。8.2.3eCAP的功能描述142)Stopvalue:单次停止计数(STOP)或连续循环计数(WRAP)的比较值。3)One-shotcontrollogic:连续模式/单次模式的选择。4)RE-ARM:重装载控制。在单次模式时,如果RE-ARM=1,那么Mod4将被复位,开始新一轮的捕获计数和装载,一直到Mod4的计数值与Stopvalue相等时停止。8.2.3eCAP的功能描述154.事件决策:事件决策模块综合各子模块的配置(极性选择、连续/单次模式),当有符合要求的外部事件输入时产生装载捕获寄存器的触发信号(LD1~LD4)。根据配置可输出计数器复位信号(Deltamode)和捕获事件中断信号。5.捕获寄存器:捕获寄存器共有4个:CAP1、CAP2、CAP3和CAP4。捕获事件发生时,如果允许寄存器装载计数值(由CAPLDEN控制),那么触发信号(LD1、LD2、LD3或LD4)将触发CAP寄存器装载计数器TSCTR的当前值。8.2.3eCAP的功能描述166.32位计数器和相位控制:该子模块为eCAP模块提供时基信号。32位计数器TSCTR提供捕获事件的计数时基,该计数器的时钟源为系统时钟SYSCLK。有两种情况可以打断计数器当前的计数:相位同步和差分模式。8.2.3eCAP的功能描述17相位同步:如果允许相位同步控制,即ECCTL2[SYNCI_EN]=1,那么硬件同步信号(SYNC)或软件强制同步信号(SWSYNC)可以触发计数器TSCTR装载初始计数值CTRPHS。差分模式:如果捕获方式设置为差分方式,捕获事件装载计数值后复位TSCTR。任何一个装载完成信号LD1~LD4都可以触发Dleta_mode信号复位TSCTR。8.2.3eCAP的功能描述187.eCAP中断控制:eCAP捕获模式时有5个中断事件,即捕获事件1(CEVT1)、捕获事件2(CEVT2)、捕获事件3(CEVT3)、捕获事件4(CEVT4)、TSCTR计数器溢出(CTROVF)(计数值从FFFFFFFF回到00000000)。
每个中断事件都有中断允许(ECEINT)、中断标志位(ECFLG)、中断标志位清零(ECCLR)和强制中断(ECFRC)四种要素。8.2.3eCAP的功能描述19中断框图8.2.3eCAP的功能描述20212223248.3.1寄存器及驱动函数
8.3.2驱动函数描述8.3.3软件思维导图8.3eCAP的软件架构258.3.1寄存器及驱动函数eCAP寄存器及其驱动函数表寄存器描述地址驱动函数名功能TSCTR时间戳计数器0x6A00CAP_getTSCTR读取并保存TSCTR的值CTRPHS计数相位偏移值寄存器0x6A02CAP_setCTRPHS配置计数器初值CAP1捕获寄存器10x6A04CAP_getCap1读取CAP1的值CAP2捕获寄存器20x6A06CAP_getCap2读取CAP2的值CAP3捕获寄存器30x6A08CAP_getCap3读取CAP3的值CAP4捕获寄存器40x6A0ACAP_getCap4读取CAP4的值26寄存器描述地址驱动函数名功能ECCTL1eCAP控制寄存器10x6A14CAP_setprescalerCAP_setCapEvtPolarityCAP_setCapEvtResetCAP_enableCaptureLoadCAP_disableCaptureLoad配置输入信号分频系数、配置捕获事件极性、配置计数器计数模式、使能捕获装载、禁止捕获装载ECCTL2eCAP控制寄存器20x6A15CAP_setModeCapCAP_enableTimestampCounterCAP_disableTimestampCounterCAP_enableSyncInCAP_disableSyncInCAP_setStopWrapCAP_setCapContinuousCAP_setCapOneShotCAP_rearm启用捕获模式使能捕获的计数器禁止捕获的计数器使能相位同步禁止相位同步配置捕获事件的次数配置为连续捕获模式配置为单次捕获模式重新装载ECEINTeCAP中断使能寄存器0x6A16CAP_disableIntCAP_enableInt禁止捕获事件触发中断使能捕获事件触发中断ECFLGeCAP中断标志寄存器0x6A17
指示是否有中断使能ECCLReCAP中断清除寄存器0x6A18CAP_clearInt清除中断标志位ECFRCeCAP中断强制寄存器0x6A19
强制中断事件8.3.1寄存器及驱动函数278.3.2驱动函数描述函数名CAP_getCap1函数原型uint32_tCAP_getCap1(CAP_HandlecapHandle)功能描述读取捕获寄存器的值并保存输入参数eCAP的结构体指针myCap返回值捕获值示例://读取捕获寄存器1的值并保存到CapValue_CAP1变量中CapValue_CAP1=CAP_getCap1(myCap);eCAP模块驱动函数的描述和示例函数CAP_getCap128函数CAP_setprescaler函数名CAP_setprescaler函数原型voidCAP_setprescaler(CAP_HandlecapHandle,CAP_Prescale_By_e)功能描述输入事件分频系数输入参数1eCAP的结构体指针myCap输入参数2分频系数,为库函数定义的枚举变量返回值无示例://输入事件进行两分频处理CAP_setprescaler(myCap,CAP_Prescale_By_2);8.3.2驱动函数描述29函数CAP_setCapEvtPolarity函数名CAP_setCapEvtPolarity函数原型voidCAP_setCapEvtPolarity(CAP_HandlecapHandle,constCAP_Event_eevent,constCAP_Polarity_epolarity)功能描述设置捕获事件的捕获极性输入参数1eCAP的结构体指针myCap输入参数2捕获事件号,为库函数定义的枚举变量输入参数3捕获极性,上升沿或下降沿,为库函数定义的枚举变量返回值无示例://设置捕获事件1为上升沿捕获CAP_setCapEvtPolarity(myCap,CAP_Event_1,CAP_Polarity_Rising);8.3.2驱动函数描述30函数CAP_setCapEvtReset函数名CAP_setCapEvtReset函数原型voidCAP_setCapEvtReset(CAP_HandlecapHandle,constCAP_Event_eevent,constCAP_Reset_ereset)功能描述设置计数器为差分模式或绝对值模式输入参数1eCAP的结构体指针myCap输入参数2捕获次数,为库函数定义的枚举变量输入参数3计数器使能或禁止,为库函数定义的枚举变量返回值无示例://捕获事件2发生时,复位TSCTR,差分模式CAP_setCapEvtReset(myCap,CAP_Event_2,CAP_Reset_Enable);//捕获事件3发生时,不复位TSCTR,绝对值模式CAP_setCapEvtReset(myCap,CAP_Event_3,CAP_Reset_Disable);
8.3.2驱动函数描述31函数CAP_enableCaptureLoad函数名CAP_enableCaptureLoad函数原型voidCAP_enableCaptureLoad(CAP_HandlecapHandle)功能描述使能捕获装载输入参数eCAP的结构体指针myCap返回值无示例://使能捕获装载CAP_enableCaptureLoad(myCap);8.3.2驱动函数描述32函数CAP_setModeCap函数名CAP_setModeCap函数原型voidCAP_setModeCap(CAP_HandlecapHandle)功能描述启用捕获模式输入参数eCAP的结构体指针myCap返回值无示例://启用捕获模式CAP_setModeCap(myCap);8.3.2驱动函数描述33函数CAP_enableTimestampCounter函数名CAP_enableTimestampCounter函数原型voidCAP_enableTimestampCounter(CAP_HandlecapHandle)功能描述启动捕获的计数器输入参数eCAP的结构体指针myCap返回值无示例://捕获计数器开始计数CAP_enableTimestampCounter(myCap);8.3.2驱动函数描述34函数CAP_enableSyncIn函数名CAP_enableSyncIn函数原型voidCAP_enableSyncIn(CAP_HandlecapHandle)功能描述使能相位同步输入参数eCAP的结构体指针myCap返回值无示例://使能相位同步CAP_enableSyncIn(myCap);8.3.2驱动函数描述35函数CAP_setStopWrap函数名CAP_setStopWrap函数原型voidCAP_setStopWrap(CAP_HandlecapHandle,constCAP_Stop_Wrap_estopWrap)功能描述设置eCAP模块捕获事件的次数输入参数1eCAP的结构体指针myCap输入参数2捕获次数,为库函数定义的枚举变量返回值无示例://设置eCAP模块的捕获事件次数2次CAP_setStopWrap(myCap,CAP_Stop_Wrap_CEVT2);8.3.2驱动函数描述36函数CAP_setCapContinuous函数名CAP_setCapContinuous函数原型voidCAP_setCapContinuous(CAP_HandlecapHandle)功能描述设置eCAP模块为连续捕获模式输入参数eCAP的结构体指针myCap返回值无示例://设置eCAP模块为连续捕获模式CAP_setCapContinuous(myCap);8.3.2驱动函数描述37函数CAP_setCapOneShot函数名CAP_setCapOneShot函数原型voidCAP_setCapOneShot(CAP_HandlecapHandle)功能描述设置eCAP模块为一次循环捕获模式输入参数eCAP的结构体指针myCap返回值无示例://设置eCAP模块为一次循环捕获模式CAP_setCapOneShot(myCap);8.3.2驱动函数描述38函数CAP_rearm函数名CAP_rearm函数原型voidCAP_rearm(CAP_HandlecapHandle)功能描述捕获事件重新装载输入参数eCAP的结构体指针myCap返回值无示例://设置eCAP捕获事件重新装载CAP_rearm(myCap);8.3.2驱动函数描述39函数CAP_disableInt函数名CAP_disableInt函数原型voidCAP_disableInt(CAP_HandlecapHandle,constCAP_Int_Type_eintType)功能描述禁止捕获中断输入参数1eCAP的结构体指针myCap输入参数2捕获中断参数,为库函数定义的枚举变量返回值无示例://禁止所有捕获中断CAP_disableInt(myCap,CAP_Int_Type_All);//禁止捕获事件2中断CAP_disableInt(myCap,CAP_Int_Type_CEVT2);
8.3.2驱动函数描述40函数CAP_clearInt函数名CAP_clearInt函数原型voidCAP_clearInt(CAP_HandlecapHandle,constCAP_Int_Type_eintType)功能描述清除中断标志位输入参数1eCAP的结构体指针myCap输入参数2捕获中断参数,为库函数定义的枚举变量返回值无示例://清除全局中断标志位CAP_clearInt(myCap,CAP_Int_Type_All);//清除捕获事件4的中断标志位CAP_clearInt(myCap,CAP_Int_Type_CEVT4);8.3.2驱动函数描述418.3.3软件思维导图1.引脚配置:步骤1:配置引脚功能(GPIO_setMode)步骤2:配置引脚方向(GPIO_setDirection)步骤3:使能/禁止内部上拉电阻(GPIO_setPullUp)步骤4:输入配置为异步系统时钟(GPIO_setQualification)422.捕获功能配置:
步骤5:捕获模式(CAP_setModeCap)
步骤6:配置连续模式或单次模式(CAP_setCapContinuous、CAP_setCapOneShot)
步骤7:配置捕获事件次数(CAP_setStopWrap)
步骤8:输入信号分频(CAP_setprescaler)8.3.3软件思维导图43
步骤:9:边缘极性选择(CAP_setCapEvtPolarity)
步骤10:配置事件的差分模式或绝对值模式(CAP_setCapEvtReset)
步骤11:启动捕获装载(CAP_enableCaptureLoad)
步骤12:启动捕获计数器开始计数(CAP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人格阴暗面测试题及答案
- 2026年护理理论培训测试题及答案
- 2025危化品泄漏应急处置持证上岗培训教案 考证专用
- 2022年党群宣传岗面试押题汇编及逐字稿答案完整版
- 2026年冬季安全生产措施测试题及答案
- 2026年滑雪五级理论考试一次上岸专属习题集附答案
- 黑龙江哈尔滨市萧红中学校七年级(下)2026年3月份教与学质量监测道德与法治(含解析)
- 膀胱癌患者护理
- 实习的安全协议书
- 夫妻签订结婚协议书有效
- 幼儿园年度业务活动开展情况总结
- 家装渠道合同协议书
- (高清版)JT∕T 1402-2022 交通运输行政执法基础装备配备及技术要求
- HG-T 2521-2022 工业硅溶胶介绍
- JTT495-2014 公路交通安全设施质量检验抽样方法
- 初中数学基于核心素养导向的大单元教学设计(共50张)
- 从班会课到成长课程德育教师的班会课微革命
- 《诚实守信,立身之本》主题班会课件
- 王力语言学史(三)
- 干制食用菌HACCP计划
- 熄焦塔脚手架专项工程施工方案
评论
0/150
提交评论