DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析

彭会锋

本篇主要针对不太熟悉的TZ 故障捕获 和 DB 死区产生两个子模块进行学习研究

感觉TI的寄存器命名还是有一定规律可循的

SEL主要用于选择位  CTL主要用于控制位 EINT主要用于使能中断  FLG是标志查询位 CLR中断标志清除位  FRC 软件强制使能设置位

1 TZ 故障捕获子模块

TZ子模块可以工作在Cycle-by-Cycle、One-Shot两种模式下,这两种状态的区别是:

  • one-shot是永久起作用的,恢复它只有人工清除。
  • 而Cycle-by-Cycle却是本周期有用,下一周期自动恢复

外部触发选择寄存器TZSEL 寄存器设置选项如下:

TZCTL主要设置TZA 和TZB寄存器即可,主要定义当外部触发事件发生时,定义EPWMxA和EPWMxB所采取的动作:

TZEINT 中断使能寄存器  控制周期触发和单次触发的中断标志使能

TZFLG 是外部触发标志寄存器  TZCLR外部触发清零寄存器  这两个理解起来比较简单,所以不再做过多说明,就是中断的时候查询标志位,然后中断发生了就把标志位清零即可!

TZFRC 外部触发强制寄存器

TZ寄存器配置代码
    EALLOW;
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_HI; // Forced Hi (EPWM1A = High state)
EPwm1Regs.TZCTL.bit.TZB = TZ_FORCE_HI; // Forced Hi (EPWM1B = High state)
EPwm1Regs.TZFRC.bit.OST = ; // Forces a fault on the OST latch and sets the OSTFLG bit.
EDIS;
 DB 死区产生
2.1 DB寄存器设置

2.2 死区产生子模块内部结构

结合上图可以看出,DBCLT[IN_MODEL]就是选择哪个作为输入信号源进行延时控制;通过延时模块之后,实现上升沿和下降沿的延时功能;

然后有一个反相器模块,可以产生互补的输出信号,是否反转可以通过寄存器DBCTL[POLSEL]进行设置,感觉这个寄存器就是设置信号是否反转的,如果是1就反转,如果0就不反转,就这样子!

DBCTL[OUT_MODE]主要作用是选择那个信号进行输出,如果选择0,那么之前的延时的信号就被旁路掉了,整个DB模块就不起作用了,选择1才会产生死区功能;

2.3 经典死区配置方案(感觉这里的后缀 C 就是互补的意思,没后缀则无互补,这个在2.4的波形图里面可以得到更好的体现)

2.4 加入死区延时的波形输出 (对比着2.2看2.3和2.4的图是最好明白寄存器配置的,也好理解输出波形是怎么样子的!)

2.5 寄存器配置代码
// DBCTL (Dead-Band Control)
//==========================
// OUT MODE bits
#define DB_DISABLE 0x0
#define DBB_ENABLE 0x1
#define DBA_ENABLE 0x2
#define DB_FULL_ENABLE 0x3
// POLSEL bits
#define DB_ACTV_HI 0x0
#define DB_ACTV_LOC 0x1
#define DB_ACTV_HIC 0x2
#define DB_ACTV_LO 0x3
// IN MODE
#define DBA_ALL 0x0
#define DBB_RED_DBA_FED 0x1
#define DBA_RED_DBB_FED 0x2
#define DBB_ALL 0x3

  // Active Low PWMs - Setup Deadband
  EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;  //这里基本上都是配置两个波形都是有延时才输出的,不会旁路掉延时波形
  EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_LO; //低电平有效,这里会对电平进行一个反转
  EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL; //选择 epwmxa作为信号源作为延时依据
  EPwm1Regs.DBRED = EPWM1_MIN_DB; //设置上升沿的延时
  EPwm1Regs.DBFED = EPWM1_MIN_DB; //设置下降沿的延时
  EPwm1_DB_Direction = DB_UP;

DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析的更多相关文章

  1. DSP EPWM学习笔记1 - EPWM定时中断

    DSP EPWM学习笔记1 - EPWM定时中断 彭会锋 EPWM模块组成 EPWM有7个子模块组成:时间基准 TB.比较功能 CC.动作限定 AQ.死区产生 DB.斩波控制 PC.故障捕获 TZ.事 ...

  2. DSP - Bootloader学习笔记2

    DSP - Bootloader学习笔记2 彭会锋 1 本文主要以F2812为例进行说明的: F28027内部资源 F28027内存映射  

  3. DSP bootloader学习笔记1

    DSP bootloader学习笔记1 彭会锋 参考: TMS320F28xx DSP中内部Flash的应用研究 http://wenku.baidu.com/view/83e9837931b765c ...

  4. golang学习笔记6 beego项目路由设置

    golang学习笔记5 beego项目路由设置 前面我们已经创建了 beego 项目,而且我们也看到它已经运行起来了,那么是如何运行起来的呢?让我们从入口文件先分析起来吧: package main ...

  5. 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试

    机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...

  6. 学习笔记之html5相关内容

    写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是  input的里面的 ...

  7. rails学习笔记: rake db 相关命令

    rails学习笔记: rake db 命令行 rake db:*****script/generate model task name:string priority:integer script/g ...

  8. Noah的学习笔记之Python篇:命令行解析

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  9. python学习笔记——(一)基础设置

    python的学习,今天就开始上开发环境Pycharm,这样以后在调试,使用和学习起来就方便很多. 我用的是JetBrains PyCharm Community Edition 2018.1.1 x ...

随机推荐

  1. 传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)

    在做结构体向字节数组转换的时候,常遇到"传递给系统调用的数据区域太小"的错误,究其原因是因为英文与汉字的编码方式不同,一个汉字等于两个字节,而一个英文字母等于1个字节.所以,对于如 ...

  2. JSONObject.fromObject

    JSONObject.fromObjectjava.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRun ...

  3. ironpython 2.75 在c#中的使用

    ironpython的介绍请自行搜索. 一句话,python是一个类似lua js的动态预言.ironpython是在net环境执行python的类库. 效果:在网站中调用一个python文件test ...

  4. Android——学习:线性布局权重分配

    LinearLayout在Android中被广泛使用,LinearLayout有一个比较重要的属性——android:layout_weight.按照字面理解就是该控件的权重,这个值默认是 零(0). ...

  5. Yii2文件上传

    首先在app\controllers下建立TestController.php,内容为如下代码: <?php namespace app\controllers; use Yii; use yi ...

  6. Nginx模块学习之————accesskey权限模块使用(Nginx防盗链详细解说),防止别人下载文件和图片

    nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链 1.具体安装教程:http://www.cnblogs.com/tinywan/p/5983694. ...

  7. [置顶] 将项目从tomcat 迁移到JBoss

    注:针对的是jboss5.0,其它版本没有测试过 ,主要参考了:http://www.diybl.com/course/3_program/java/javajs/20100719/460908.ht ...

  8. linux rwxrwxrwt文件夹属性

    /tmp 的permission是rwxrwxrwt chmod 0777 /abc       rwxrwxrwx chmod  777 /abc        rwxrwxrwx chmod 17 ...

  9. ElasticSearch(ES)和solr的关系和区别

    可以参考这篇文章:http://www.cnblogs.com/chowmin/articles/4629220.html Solr 2004年诞生(当时是Solar). ElasticSearch ...

  10. Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决

    这两天编程弄Android照相机模块,设置好各种参数后,发现预览的时候,照片是颠倒了,不是上下颠倒而是颠倒90°. 我的手机是华为U9200,用的Android4.0.3,后来看到http://www ...