F280049C的捕获模块功能强大,既可以实现捕获功能的输入,又可以实现APWM的输出。作为捕获功能时,可以实现对信号脉宽、周期、频率、占空比的测量。还可以用来对外界边沿信号的捕获。

特点:

  1. 任何一个GPIO引脚都可以配置作为捕获的输入引脚,可设置为上升沿、下降沿捕获。使用起来很方便。
  2. 每一个捕获模块都拥有一个32位的时间戳(time stamps)计数器,计数频率为CPU主频。
  3. 每一个捕获模块都包含四个捕获事件寄存器,捕获到信号时会装载此时的计数值到32位的CAPx寄存器中。
  4. 捕获模式包含的中断源有:CEVT1-CEVT4中断、计数器溢出中断。

示例图如下所示:

(1)引脚配置

我配置的是GPIO5引脚作为捕获的输入,使用了X-BAR的INPUT1输入通道。

相关的配置如下所示:

void InitECapGpio(void)
{EALLOW;InputXbarRegs.INPUT1SELECT = 5;         //使用INPUT1--GPIO5引脚GpioCtrlRegs.GPADIR.bit.GPIO5 = 0;      //配置为输入GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0;      //配置为上拉GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 3;    //GPIO配置为非同步模式EDIS;
}
  1. 配置INPUT1对应到GPIO5引脚
  2. 配置GPIO5引脚作为上拉输入模式
  3. 配置eCAP的ECCTL0[INPUTSEL]寄存器

(2)eCAP初始化配置

程序源代码如下所示:

void InitECap(void)
{EALLOW;ECap1Regs.ECCTL0.bit.INPUTSEL = 0;                  //ECap1捕获引脚对应到INTPUT1ECap1Regs.ECCTL1.bit.CAP1POL = EC_RISING;           //上升沿捕获ECap1Regs.ECCTL1.bit.CAP2POL = EC_FALLING;          //下降沿捕获ECap1Regs.ECCTL1.bit.CAP3POL = EC_RISING;ECap1Regs.ECCTL1.bit.CAP4POL = EC_RISING;ECap1Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;         //捕获到事件不清空计数器ECap1Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;ECap1Regs.ECCTL1.bit.CAPLDEN = EC_ENABLE;           //使能装载ECap1Regs.ECCTL1.bit.PRESCALE = EC_DIV1;            //输入信号不分频ECap1Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE;        //配置为捕获模式ECap1Regs.ECCTL2.bit.CONT_ONESHT = EC_CONTINUOUS;   //连续计数模式ECap1Regs.ECCTL2.bit.SYNCI_EN = EC_DISABLE;ECap1Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCO_DIS;ECap1Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;            //时间戳计数器自由运行ECap1Regs.ECEINT.bit.CEVT3 = 1;                     //事件3中断捕获使能EDIS;
}

eCAP配置示意图如下所示:

配置步骤:

  1. 配置捕获信号极性,分别配置了事件1(上升沿捕获)、事件2(下升沿捕获)、事件3(上升沿捕获)
  2. 捕获到事件后计数器不清零。不使用Delta模式(捕获到事件后计数器清零)
  3. 捕获信号后计数器装载使能(捕获到事件后从计数器装载计数值到捕获寄存器)
  4. 输入信号分频设置
  5. 配置为捕获模式
  6. 配置为连续计数模式(捕获到事件后事件计数器加一,0->1->2->3->0)
  7. 只使用一个捕获模块,不需要使用同步功能(使用多个捕获模块是按需求使用捕获模块。同步功能主要是用来同步计数器)
  8. 配置计数器为连续计数模式(计数器从0x00000000->0xFFFFFFFF),计满最大值后会产生计数溢出中断(if enable)

(3)中断配置

本例程中配置的是事件3触发中断,相应的配置程序如下所示:

中断入口配置:

    EALLOW;  // This is needed to write to EALLOW protected registerPieVectTable.ECAP1_INT = &ECap1ISR;EDIS;PieCtrlRegs.PIEIER4.bit.INTx1 = 1;IER |= M_INT4; // Enable CPU Interrupt 1PieCtrlRegs.PIEACK.bit.ACK4 = 1;

中断函数配置:

__interrupt void ECap1ISR(void)
{ECap1Regs.ECCLR.bit.INT = 1;Tst1 = ECap1Regs.CAP1;          //读取捕获时刻的计数值Tst2 = ECap1Regs.CAP2;Tst3 = ECap1Regs.CAP3;if(Tst2>Tst1&&Tst3>Tst2){Proid = Tst3 - Tst1;duty = (Tst2 - Tst1)*1.0/Proid;}PieCtrlRegs.PIEACK.bit.ACK4 = 1;
}

中断函数中主要是读取CAP寄存器中的值,用于计算信号的脉宽频率;还需要清除中断标志位,以及全局中断应答。

注:F280049C实现捕获功能的完整CCS程序我已经上传到了CSDN上,该程序主要是实现对方波信号脉宽、频率的测量。需要的可自行下载哈,程序中有不懂得地方都可以给我留言。下载链接如下:

https://download.csdn.net/download/fanxianyan1993/11978084

提问方式:有啥不懂的可以随时向我提问哈,扫描下方二维码我会在第一时间给大家回复的哈,谢谢。

DSP TMS320F280049C之捕获eCAP(1)相关推荐

  1. DSP TMS320F280049C——互补波形(一)

    刚开始接触和学习DSP,和大家分享一下,一起交流学习!!! 以下配置可以实现:EPWM1A与EPWM1B的互补波形,周期为100kHz,死去时间300ns,占空比50%. 首先,在实现波形配置之前需要 ...

  2. DSP TMS320F280049C 新征程

    新搞的板子到了 ,LAUNCHXL-F280049C  后面基于这个板子学习分享 另外本人手中有少量TMS320F280049CPZS现货 下面是TB链接 https://item.taobao.co ...

  3. TMS320F280049C 学习笔记1 概述及GPIO

    索引 前言 心情记录 动机 概述 硬件平台 软件资源 参考文献 参考设计 关于GPIO 前言 心情记录 真的是好久没有写博客了. 回顾了一下博客的文章列表,想着是不是删掉一些没营养的文章,后来想想算了 ...

  4. dsp软件单元测试,TMS320F2812DSP捕获单元测速 图文精.docx

    基于TMS320F2812 DSP捕获单兀测速 相关专题: 电子应用 时间:2009-10-13 10:24 来源: icbuy 亿芯网 1引言 应用于高层建筑.银行.机场和油田等场合的柴油发电机组, ...

  5. 初学DSP(1)-TMS320F280049C入门

    目录 前提 知识点 深入了解DSP和ARM的关系(相同与区别) DSP CMD学习笔记(连接物理存储和逻辑存储) CMD文件详解与DSP存储空间 DSP 程序远程升级 / Bootloader设计指南 ...

  6. 初学DSP(2)-TMS320F280049C代码探究

    英文缩写 C28X CPU+FPU(floating-point processor) Trigonometric Math Unit (TMU) Viterbi, Complex Math and ...

  7. 国产DSP,32位双核CPU,pin2pin替代TMS320F280049C,高频400MHz

    QX320F280049C,特性: 1.32位双核CPU,高频400MHz 2.IEEE754单精度浮点单元(FPU) 3.三角法数学单元(TMU) 4.Viterbi/复杂数学单元(VCU-I) 5 ...

  8. 把变量赋值给寄存器_用C语言对DSP的寄存器进行操作?

    欢迎FPGA工程师加入官方微信技术群 在嵌入式软件的开发过程中,我们常用的语言主要是:汇编语言和C语言.相比较于汇编语言,C语言对我们来说,更贴近我们的一些语言习惯.在DSP的开发过程中,我们主要还是 ...

  9. 三相锁相 c 语言 程序,轻松玩转DSP——基于TMS320F2833x(Word+PDF+ePub+PPT)

    作者:马骏杰(作者),尹艳浩(作者),王旭东(作者)&0更多 出版:机械工业出版社; 第1版 (2018年12月5日) 服务:人工校对0错代录+录完后精校排版 此为收费服务:会收取文档代录之人 ...

  10. 【ARM-Linux开发】【DSP开发】AM5728介绍

    AM5728 Sitara Processors 1.    介绍 1.1 AM572x概述 AM572x是高性能,Sitara器件.以28nm技术集成: 结构设计主要考虑嵌入式应用,包括工业通讯,人 ...

最新文章

  1. 基于CORS的geoserver同源访问策略
  2. 【重点】Java大厂面试10个知识点汇总
  3. AD属性修改 office 365 delivery management 设定
  4. arm9重启ssh服务_部署ssh使用rsa登录配置
  5. [Java面经] 关于面试的二三事.
  6. ASP.NET部署与安装_MSI制作图文教程.
  7. asp.net多语言设置方法
  8. 0.python class
  9. GB28181 PTZCmd控制指令笔记
  10. 微信小程序表单必填项设置
  11. 《The Alchemist》阅读笔记
  12. raid卡直通模式会走缓存吗_磁盘阵列 RAID 技术如何保护数据
  13. 线性规划单纯形法python实现与代码详细解读
  14. 搜索引擎常用搜索技巧
  15. Pandas 基础知识
  16. 360软件管家下载|360软件管家电脑版下载
  17. 过滤器实现单一用户登录
  18. console.log() 与 console.dir() 的区别:
  19. 计算机工作原理(简述)
  20. 阿里云云计算ACP学习(四)---内容与网络分发CDN

热门文章

  1. 软件需求包括3个不同的层次 业务需求 用户需求和功能需求
  2. 全球消费精品消博会亮相!科蒂、资生堂、欧莱雅、奔富、保乐力加、红牛、雀巢、拜耳、澳佳宝都来了 | 美通社头条...
  3. 挣脱注意力经济:为什么应该练习数字极简主义?
  4. 调查:人工智能技术的应用现状
  5. OPENCV使用深度学习进行年龄性别识别的C++代码
  6. Vue-Waterfall-Easy插件详细使用教程
  7. 计算机主机电源灯不亮,电脑主机开不了机、电源灯不亮解决方法与技巧
  8. 金融中需要的计算机知识,金融笔试中的综合知识一般会考什么?
  9. 求不规则图形外接圆的算法 (附:三角形外接圆计算公式)
  10. 排查tomcat项目假死原因的简单方法