搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家自动化
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
大数据平台搭建全过程(VMware+Xshell+Hadoop)_如何利用xshell进行大数据开发
2
2019阿里巴巴Java研发实习生面经(一面+二面)_菜鸟一般面试几轮 java
3
数据库--链表(基本操作,尾部插入,定点插入,删除指定,释放全部)_链表与数据库结合
4
共享虚拟主机容量越大越好嘛?
5
图像卷积操作_图像卷积运算
6
oracle-简单的存储过程demo_存储过程简单demo
7
Flink- CDC2.X源码分享_flink cdc源码
8
超详细易懂FFT(快速傅里叶变换)及代码实现_傅立叶变换编程
9
集成学习((ensemble learning)
10
【代码随想录算法训练营第五十五天|742.接雨水、84.柱状图中最大的矩形】
当前位置:
article
> 正文
【TIM/PWM】定时器输出比较_简述通用定时器的输出比较过程
作者:我家自动化 | 2024-07-06 00:21:16
赞
踩
简述通用定时器的输出比较过程
一、输出比较简介
OC
(
Output Compare
)输出比较
输出比较可以通过比较
CNT
与
CCR
寄存器值的关系,来对输出电平进行置
1
、置
0
或翻转的操作
用于输出一定频率和占空比的
PWM
波形(PWM波形是驱动电机的必要条件)
每个高级定时器和通用定时器都拥有
4
个输出比较通道
(可以同时输出四路PWM波形)(四个通道有各自的CCR,但共用一个CNT计数器)
高级定时器的前
3
个通道额外拥有死区生成和互补输出的功能
输出比较功能:使用输出比较电路时,CNT和CCR(Capture/Compare Register)进行比较,CNT计数自增,CCR是我们设定的值,当CNT大于CCR、CNT小于CCR、CNT等于CCR时,输出就会相应的置1、置0,如此就可以输出电平不断跳变的PWM波形了
补充:IC(Input Capture)输入捕获、CC(Capture/Compare)输入捕获和输出比较的单元
捕获/比较寄存器是输入捕获和输出比较共用的,当使用输入捕获时它就是捕获寄存器,当使用输出比较时它就是比较寄存器
二、PWM简介
PWM
(
Pulse Width Modulation
)脉冲宽度调制
在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域
使用PWM波形可以等效地实现一个模拟信号的输出
从图可以看出:高低电平跳变的数字信号,可以等效为虚线所示的模拟量
当高电平时间长一点,低电平时间短一点的时候,波形偏上
当低电平时间长一点,高电平时间短一点的时候,波形偏下
PWM
参数:
频率 = 1 / Ts Ts:代表一个高低电平变换周期的时间
PWM的频率越快,等效模拟的信号就越平稳,同时性能开销越大,一般PWM频率都在几K到几十KHz
占空比 = Ton / Ts Ton:高电平时间
占空比决定了PWM等效出来的模拟电压的大小
占空比越大,等效的模拟电压越趋近于高电平;
占空比越小,等效的模拟电压越趋近于低电平
占空比与模拟电压的等效关系是线性的:比如高电平是5V,低电平是0V
占空比为50%时电压就是2.5V
占空比为20%时电压就是1V
分辨率 = 占空比变化步距
分辨率就是占空比变化的精细程度
占空比以1%、2%、3%这样以1%的步距跳变,那么分辨率就是1%
占空比以1.1%、1.2%、1.3%这样以0.1%的步距跳变,那么分辨率就是0.1%
三、输出比较模块输出PWM波形原理结构
输出通路
流程分析:
输出模式控制器左边就是CNT和第一路CCR1,它俩不断进行比较
当CNT大于CCR1、CNT等于CCR1时就会给输出模式控制器传一个信号,输出模式控制器改变它输出oc1ref的高低电平
接着ref信号可以前往主模式控制器,可以把ref映射到主模式的TRGO输出上去
ref的主要去向还是下面这路极性选择,给这个寄存器写0,信号就会走上面,信号电平不翻转,进来什么样出去还是什么样;给这个寄存器写1,信号就会走下面,信号通过非门取反,信号电平翻转
之后就是输出使能电路,选择要不要输出
最后就是OC1引脚(CH1通道的引脚,在引脚定义表里可以知道具体是哪个GPIO口)
输出模式控制器
输入模式控制器的输入是CNT和CCR的大小关系,输出是REF的高低电平
输出比较模式:
图表为输出模式控制器里面的执行逻辑
冻结:不管CNT和CCR谁大谁小,直接REF保持不变,维持上一个状态
用处:正在输出PWM波,需要暂停一会儿输出,一但切换为冻结模式后,输出就暂停了,高低电平维持在暂停时刻的状态不变
匹配时置有效电平
置完高电平就完事了,不适合输出连续变化的波形,适合定时输出一个一次性的信号
匹配时置无效电平
置完低电平就完事了,不适合输出连续变化的波形,
适合定时输出一个一次性的信号
匹配时电平翻转
可以方便地输出一个【频率可调,占空比始终为50%】的PWM波形
比如设置CCR为0,则CNT每次更新清零时,就会产生一次CNT=CCR的事件,导致输出电平翻转一次
每更新两次事件(电平翻转两次),输出为一个周期————输出PWM波形的频率=更新事件频率/2
强制为无效电平
与【冻结】模式差不多,如果想暂停波形输出,并且在暂停期间保持低电平
强制为有效电平
与【冻结】模式差不多,如果想暂停波形输出,并且在暂停期间保持高电平
PWM模式1
可用于【输出频率和占空比都可调】的PWM波形(主要用PWM模式1的向上计数方式)
PWM模式2
可用于【输出频率和占空比都可调】的PWM波形(PWM模式2实际上就是PWM模式1输出的取反)
四、PWM基本结构
蓝色线CNT从0开始自增,一直增到黄色线ARR99,在清零之后继续自增
设置一条红色线:CCR,执行输出比较单元设置的比较逻辑
例如:
从图中可以看出占空比受到CCR值设置的调控
如果CCR值设置高一些,输出的占空比就变大;CCR值设置低一些,输出的占空比就变小
五、参数计算
PWM
频率:
Freq = CK_PSC / (PSC
+ 1) / (ARR
+ 1)
PWM周期对应计数器的一个溢出更新周期——PWM频率等于计数器的更新频率
PWM
占空比:
Duty = CCR / (ARR
+ 1)
PWM
分辨率:
Reso = 1 / (ARR
+ 1)
分辨率(占空比变化步距),ARR越大,CCR能设置的范围就越大,对应的分辨率就越大
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/我家自动化/article/detail/791353
推荐阅读
article
api
封装
请求
的过程_
api
封装
是
什么意思...
1,
api
封装
是
为了简便的
请求
数据首先一般项目会有一个request文件,一个
api
文件和一个manager文件requ...
赞
踩
article
AI十大
流行
算法
_
主流
ai
算法
...
为此,我们将数据项绘制为 n 维空间中的点,其中,n 是输入特征的数量。神经网络本质上是一组带有权值的边和节点组成的相互...
赞
踩
article
【
免费软件
】如何解决
Mac
移动硬盘
不能写入
_
mounty
下载
...
NTFS 格式硬盘在 Windows 可读可写,在 macOS 可读不可写,国内有售价 100+ 的 macOS 付费软...
赞
踩
article
mac python3.8使用
modin
.pandas报错
Please
`
pip
install
m...
本人今天python从3.7升级到3.8,使用
modin
时报错
Please
pip
install
modin
[ray]...
赞
踩
article
探索
PyForms
:一款
强大
的
Python
GUI
构建
工具...
探索
PyForms
:一款
强大
的
Python
GUI
构建
工具项目地址:https://gitcode.com/UmSenh...
赞
踩
article
吉林大学
大数据专业
并行
与
分布式
2023
期末考试
题目
_
并行
与
分布式
程序设计
期末考试
...
2.一道MPI编程题,提供了所有可能用到的MPI函数原型。非0进程先接受来自上一个进程的data,并将它乘以50%,然后...
赞
踩
article
如何配置
Android
Studio
Gradle
以解决Sync
failed
download
问...
如何配置
Android
Studio
Gradle
以解决Sync
failed
download
问题前言在初次接触An...
赞
踩
article
MySQL
笔记——
MySQL
数据库
介绍
以及在
Linux
里面安装
MySQL
数据库
,对
MySQL
数据库
的...
本文主要
介绍
MySQL
数据库
介绍
以及在
Linux
里面安装
MySQL
数据库
,对
MySQL
数据库
的简单操作,
MySQL
的外接...
赞
踩
article
java
web
首页
_[
Java
教程]设置
java
web
工程中
,
默认访问
首页
的
几种方式...
[
Java
教程]设置
java
web
工程中
,
默认访问
首页
的
几种方式0 2016-12-06 18:00:071.dem...
赞
踩
article
金融风险
管理:利用
机器
学习
预测
市场波动...
1.背景介绍金融市场是一种复杂、不确定的系统,其波动性和风险是市场参与者面临的重要挑战。
金融风险
管理的目标是识别、评估和...
赞
踩
article
Pandas
常用
API
_
modin
.
pandas
不支持
的
api
...
系列(Series)
pandas
.Series( data, index, dtype, copy)# data 数据采...
赞
踩
article
十分钟
看
懂
时序
数据库
(I)-
存储
...
2017年
时序
数据库
忽然火了起来。开年2月Facebook开源了beringei
时序
数据库
;到了4月基于PostgreS...
赞
踩
article
numpy
巨全
的
api
及
详细
介绍
(适合小白!机器学习前置技术栈)
_
numpy
api
...
本文
详细
介绍
了NumPy中
的
ndarray属性,包括shape、维度、大小、数据类型等,并展示了如何创建数组,如随机数矩...
赞
踩
article
基于微信
小
程序
的
学生宿舍
管理系统
设计
与实现(源码+
数据库
+文档)_
学生宿舍
自选
小
程序
...
本文介绍了宿舍
管理系统
小
程序
的开发全过程。通过分析宿舍
管理系统
小
程序
管理的不足,创建了一个计算机管理宿舍
管理系统
小
程序
的...
赞
踩
article
成功解决使用
BCEWi
t
hLogi
t
sLoss
()时
Run
t
imeError
: resul
t
t
yp...
resul
t
t
ype
floa
t
can'
t
be cas
t
t
o
t
he
desired
ou
t
pu
t
t
ype
l...
赞
踩
article
Windows11
+ Linux (Ubuntu22.04)
双系统
最简
安装
详细避坑版_
win11
...
准备工作(非常重要!!!一步一个坑!1. 首先我们有一个
安装
了
Windows11
系统的电脑,准备一个8G以上的U盘(或者...
赞
踩
article
前端
web3
入门
脚本
二:初探
dex
,
在
dex
完成一笔
swap
...
现
在
市面上大多数去中心化交易所(简称
dex
)都是fork的uni
swap
的代码
,
名气比较大的如eth上的sushi 以及...
赞
踩
article
Flink
CDC
MySQL
同步
MySQL
错误记录...
Flink
CDC
MySQL
同步
MySQL
错误记录
Flink
CDC
MySQL
同步
MySQL
错误记录 ...
赞
踩
article
快捷键
没有响应
的
处理办法_
openark
内核
模式
没反应...
问题描述Chrome Ctrl+W无法关闭 Tab,Obsidian excalidraw 无法使用Ctrl+D复制元素...
赞
踩
article
Mac
os
数据库
管理软件:
Navicat
Premium
for
Mac
16.3.5中文版_nav...
Navicat
Premium
16 for
Mac
是一款强大的
数据库
管理和开发工具,支持多种
数据库
系统,如MySQL、...
赞
踩
相关标签
vue.js
前端
算法
python
pip
c语言
gradle
android studio
android
windows
java
mysql
笔记
数据库
Linux
centos
java web 首页
机器学习
人工智能
pandas
时序数据库
numpy
线性代数
矩阵