增强型PWM(EPWM)如何输出互补功能?

2023-11-01

1、 概念

互补:两根线,输出的PWM,只有一端导通,和死区概念类似。

死区时间:指在这段时间,上下都没有输出

带死区的PWM波可以防止上下两个器件同时导通。也就是说,当一个器件导通后关闭,再经过一段死区,这时才能让另一个导通。

例如:

红色线条的拉低关断一段时间(dead time)后,再拉高下面打开蓝色的

蓝色线条的拉低关断一段时间(dead time)后,再拉高上面打开红色的

在这里插入图片描述

2、简单输出带死区的互补PWM波

2.1、寄存器配置
1)、寄存器 TBPRD = 1001个计数周期
(2)、寄存器 CMPA = 70,EPWMA通道的相位
(3)、寄存器 CMPB = 30,EPWMB通道的相位

(4)、寄存器 TBCTL ,配置为增减模式,计数器从0递增到TBPRD,再从TBPRD递减到0,配置TBCLK分频参数为1,且持续运行

(5)、寄存器 AQCTLA,配置counter为0、counter为PRD时无输出(保持之前状态),
counter为CMPA递增阶段输出高,counter为CMPA递减阶段输出低。

(6)、寄存器 AQCTLB,配置counter为0、counter为PRD时无输出(保持之前状态),
counter为CMPB递增阶段输出低,counter为CMPA递减阶段输出高。

2.2、数值计算
增减模式时,频率 frequency = 主时钟 / TBCLK分频参数 / TBPRD周期 / 2

EPWMA通道高电平占空比 = (TBPRD - CMPA) / TBPRD = 1 - (CMPA / TBPRD)

EPWMB通道高电平占空比 = CMPB / TBPRD

死区相位 = (CMPA - CMPB)
2.3、输出原理

蓝色和绿色的线条是需要的波形
在这里插入图片描述

3、利用反向配置,输出带死区的互补PWM波

3.1、寄存器配置
//(1)、(2)、(3)、(4)、(5)和 2.1节一样,这里只说明不同的配置6)、寄存器 AQCTLB,配置counter为0、counter为PRD时无输出(保持之前状态),
counter为CMPB递增阶段输出高,counter为CMPA递减阶段输出低。

(7)、寄存器 DBCTL,配置EPWMB通道反向
3.2、数值计算和 2.2节一致
3.3、输出原理

蓝色和绿色的线条是需要的波形

在这里插入图片描述

4、实际波形

上述第2节和第3节的不同的配置,均能得到下图的波形

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

增强型PWM(EPWM)如何输出互补功能? 的相关文章

  • 韦东山嵌入式教程第四篇Linux驱动基础知识学习笔记(1)——Hello驱动程序

    驱动入门 Hello驱动程序 1 怎么写出一个驱动程序 确定主设备号 定义自己的file operations结构体 实现对应的open read write函数 填入file operations结构体 实现入口函数 安装驱动程序时 就会
  • OpenGL驱动质量的事实现状(精简翻译版)

    原文 http richg42 blogspot com 2014 05 the truth on opengl driver quality html 一 厂商A 为大多数开发者所使用 功能最全 测试得最好 几乎是事实上的标准驱动 其驱动
  • ARM体系结构简介 —— 迅为

    目录 单片机和ARM处理器 内存管理单元 MMU 高速缓冲存储器 CACHE 指令集 ARM的指令系统 ARM处理器工作模式 ARM处理器的内部寄存器 ARM处理器的异常 ARM中断向量 ARM架构的发展 单片机和ARM处理器 内存管理单元
  • AutoSar标准下ADC的结果访问(Adc_ReadGroup与Adc_GetStreamLastPointer)的异同

    系列文章目录 等待更新中 文章目录 系列文章目录 前言 1 什么是ADC的结果访问 2 ADC访问模式 3 AUTOSAR标准配置案例分析 3 1 Configuration 3 2 图形展示结果指针初始化 3 3 使用Adc GetStr
  • STM32MP157驱动开发——Linux LCD驱动(上)

    STM32MP157驱动开发 Linux LCD驱动 上 0 前言 一 LCD 和 LTDC 简介 1 LCD 简介 1 分辨率 2 像素格式 3 LCD 屏幕接口 4 LCD 时间参数 5 RGB LCD 屏幕时序 6 像素时钟 7 显存
  • Linux设备驱动的软件架构思想与设备驱动的基础内容总结

    Linux设备驱动的软件架构思想与设备驱动的基础内容总结 Linux是一个兼容性特别强的一个系统 而兼容性的实现与驱动强大的适应性密不可分 而这个具体的实现是离不开 总线bus和类class的管理方式 Linux使用bus统一的管理一系列相
  • Linux驱动_多点电容触摸

    一丶Linux下多点电容触摸驱动框架 电容触摸屏IC是FT5426 为IIC协议芯片 因此需要编写IIC驱动 触摸IC会发出中断信号 并在中断服务函数中上报信息 因此需要编写中断框架 触摸屏向Linux内核上报的信息都属于Input子系统
  • 嵌入式:驱动开发 Day4

    作业 通过字符设备驱动分步注册方式编写LED驱动 完成设备文件和设备的绑定 驱动程序 myled c include
  • ARM(IMX6U)裸机模仿STM32驱动开发实验(定义外设结构体)

    参考 Linux之ARM IMX6U 裸机模仿STM32驱动开发格式 作者 一只青木呀 发布时间 2020 08 15 12 11 56 网址 https blog csdn net weixin 45309916 article deta
  • Failed to execute /linuxrc. Attempting defaults... 解决方案

    今天想移植个根文件系统 使用的板子是友善之臂的S3C2440 这个很多书上都有介绍 难度倒也不是很大 按照手册一步步的来 移植完之后 烧写到flash里面 发现不能运行 怎么回事 检查了一遍 发现和教材上一样 难道教材有问题 在网上找了移植
  • 异步通知实验(信号)

    目录 异步通知 异步通知简介 驱动中的信号处理 应用程序对异步通知的处理 硬件原理图分析 实验程序编写 修改设备树文件 程序编写 编写测试APP 运行测试 编译驱动程序和测试APP 运行测试 在前面使用阻塞或者非阻塞的方式来读取驱动中按键值
  • 驱动学习(六)ioctl

    驱动学习 六 ioctl 文章目录 驱动学习 六 ioctl 1 ioctl 2 命令码 2 1 自定义命令码 2 2 标准命令码 2 2 1 合成标准命令码的宏函数 3 测试ioctl linux内核给用户提供了两类系统调用函数 一类是数
  • 一个主设备号是如何支持多个次设备?

    1 主次设备号 参考博客 字符设备驱动详解 主次设备号 注册 卸载字符设备驱动 创建设备节点 地址映射 2 次设备号介绍 1 在老的驱动程序里是不需要次设备号的 在老版内核中注册驱动用register chrdev 函数 只需要传入主设备号
  • Macronix MX25L25645G NOR Flash无法擦除问题分析

    1 问题现象描述 处理器使用的 SAM9X60 使用的内核版本是 5 10 80 在调试 Macronix MX25L25645G NOR Flash时 发现flash驱动加载成功后 使用 mtd debug 工具 erase flash时
  • inux字符驱动之read、write部分

    本期主题 linux字符驱动之read write部分 往期链接 linux设备驱动中的并发 linux设备驱动中的编译乱序和执行乱序 linux设备驱动之内核模块 linux字符驱动 linux字符驱动之ioctl部分 linux字符驱动
  • 杂项设备(misc device)和字符设备(char device)区别

    杂项设备 misc device 杂项设备也是在嵌入式系统中用得比较多的一种设备驱动 在 Linux 内核的include linux目录下有Miscdevice h文件 要把自己定义的misc device从设备定义在这里 其实是因为这些
  • printk()和printf()的比较

    1 前言 print函数和printf函数是对孪生兄弟 在功能作用上几乎是一样的 在使用上有一些区别 1 printk 和printf 之间的一个显著区别在于printk 允许通过指定一个标志来设置优先级 从而决定这条打印是否需要打印出来
  • 采用通信方式控制台达B2伺服驱动器运行在速度模式

    目录 前言 一 伺服驱动器恢复出厂设置 二 伺服驱动器设置为速度模式 三 关闭告警信息 四 通讯功能设置 五 采用通信功能控制伺服驱动器按速度模式运行 总结 前言 最近 使用台达B2伺服驱动器做项目 项目中用伺服电机的速度模式驱动一个螺杆按
  • uboot下UCLASS框架详解---结合项目工作中spi master和flash驱动开发

    文章目录 一 综述 二 UCLASS架构解析 2 1 uclass 2 2 udevice 2 3 uclass driver 2 4 driver 2 4 1 spi master driver 三 uboot代码解析 3 1 DM的初始
  • OpenHarmony基于HDF简单驱动开发实例

    背景 OpenHarmony 3 0 LTS qemu small system demo liteos a qemu 添加配置 device qemu arm virt liteos a hdf config device info de

随机推荐

  • 纯手工开发的网站如何快速对接CMS系统

    纯手工开发的网站如何对接CMS系统 在如今的建站市场上 大部分网站都是基于模板CMS系统建站 比如大家所熟知的织梦 帝国 WP等等 用这些CMS建站最大的好处就是有丰富的建站模板可供选择 建站费用低且大部分模板CMS系统开源相对来说易部署
  • 提高eclipse的性能,去除validate验证,关闭checking for update自动更新

    一 去除validate验证 1 给eclipse桌面快捷方式添加参数 这些按自己的机器来配置 可google到很多资料 如 D java eclipse3 2 1 eclipse exe XX UseParallelGC XX PermS
  • STM32硬件错误HardFault_Handler的处理方法

    在用Keil对STM32的程序进行仿真时程序有时会跑飞 停止仿真程序会停在HardFault Handler函数里的死循环while 1 中 这说明STM32出现了硬件错误 STM32出现硬件错误可能有以下原因 1 数组越界操作 2 内存溢
  • java动态加载jar文件并执行方法

    在项目开发的过程中 有时候需要动态灵活的加载某个jar包并执行里面的方法的时候 我们可以使用本篇文章写得方式去动态的加载jar包而不用使用原始方式引入jar包作为lib去使用 接下来介绍如何动态加载jar包 直接上代码 核心的方法就是下面这
  • 【windows】Git中添加密钥、ssh密钥的创建与查看(打开id_rsa.pub文件)

    Git的安装和下载参考 里面有下载路径和安装方法 比较全面 自行下载 推荐用迅雷下 不然很慢 https www cnblogs com donglt 5211 p 9374551 html 1 创建密钥 下载成功后 在C盘user目录下点
  • blender 给某个类型添加自定义属性

    import bpy Int bpy types Ojbect myInt bpy porps IntProperty name test max 10 min 1 default 5 Float bpy types Mesh myFloa
  • sqlite3安装错误 node-pre-gyp http 403

    sqlite3安装错误 如图可以发现 访问 https mapbox node binary s3 amazonaws com sqlite3 v5 0 1 napi v6 win32 x64 tar gz 报错 403 我们用浏览器进去
  • sqli-labs靶机训练(11-15)

    less 11 POST型 1 寻找漏洞类型 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img YrAkcwyg 1641296909427 C Users 84305 AppData Roaming Typora
  • 攻防世界web

    攻防世界web 前言 准备ctf比赛 这里把攻防世界分值低于5分的基本刷了一遍 分值再高刷不动了 练习 view source 没难度知识禁用了右键点击 ctrl u查看源码拿到flag get post 这题没什么好说的 按着提示来就能拿
  • 又一个开源工具搞完了,工作效率直接翻倍

    博客首页 派 大 星 欢迎关注 点赞 收藏 留言 本文由派大星原创编撰 系列专栏 开源专栏 本系列主要输出作者自创的开源项目 作品 低代码生成器平台 大家好 我是派大星 距离上一次开发出开源项目的时间已经过去一段时间了 也不知道大家有没有使
  • 使用本地mysql+linux实现mysql主从同步

    1 配置linux 保证linux已经安装好了mysql 1 1修改该linux配置文件 vim etc my cnf 1 2重启linux的mysql systemctl restart mysqld 1 3使用账户密码登录linux中的
  • Arduino小车资料整理

    目录 一 小车简介 二 材料清单 三 Arduino UNO R3简介及使用说明 四 各模块安装接线及测试 1 驱动模块接线及测试 1 减速直流电机 2 L298N电机驱动模块 3 具体接线 4 代码及测试 2 巡线模块接线及测试 1 TC
  • 解决 font-weight 无效的问题

    近期调页面时有几个 font weight 需要修改 无论怎么调整字体粗细都没有变化 深入研究后总结下文 初探 本地写个例子 代码如下 p class thin This is a paragraph p p class normal Th
  • springboot 定时任务@Scheduled 和 异步@Async

    使用 EnableScheduling开启功能 Configuration EnableScheduling public class ScheduleConfig 编写任务 Component public class Scheduled
  • linux下使用动态壁纸(fantascene)

    让你的linux桌面动起来 幻梦动态壁纸 我也是突发奇想 做了这么一个程序 目前在多个linux下可以运行 支持双屏 理论上说支持mpv gt 27 0 qt gt 5 6的系统版本可编译 ubuntu16 04可以自行删减代码和编译 或者
  • java玫瑰花代码_Java版给爱人表白的玫瑰花程序代码

    1 书写表白语句的frame 渐入功能 package com wanju blessing import java awt Color import java awt Container import java awt Dimension
  • 常用眼底图像数据集简介及下载--糖尿病视网膜病变 EyePacs,APTOS2019,STARE数据集

    1 糖尿病视网膜病变图像介绍 1 微动脉瘤通常出现在病变早期 它是由于眼部毛细血管缺氧导致血管壁变薄 从而在视网膜上呈现出深红色的点状物 2 出血点一般出现在血管附近 它是由于血管阻塞导致血液渗出形成的 呈现暗斑状 3 软性和硬性渗出物的形
  • python中变量,python中变量的概念

    python中变量的概念 在python中 变量就是一种标识符 它是数据的名字 更专业的理解 变量是内存中数据的引用 编程语言里的变量和初中学习代数时的方程变量很相似 前面学习数字类型 bool类型时 我们一直在交互式解释器里进行操作 目的
  • java springboot 实现从数据库查询数据下载为md格式文件

    java springboot 实现从数据库查询数据下载为md格式文件 param param response 功能描述 下载文件 标题 byId getTitle 内容 byId getTextContent 格式 response s
  • 增强型PWM(EPWM)如何输出互补功能?

    1 概念 互补 两根线 输出的PWM 只有一端导通 和死区概念类似 死区时间 指在这段时间 上下都没有输出 带死区的PWM波可以防止上下两个器件同时导通 也就是说 当一个器件导通后关闭 再经过一段死区 这时才能让另一个导通 例如 红色线条的