STM32 不同主频下的定时器死区设置

2023-12-22 20:20

本文主要是介绍STM32 不同主频下的定时器死区设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

根据datasheet里的以下说明,算出各种主频下,DTG赋值和具体死区时间的对应关系,可供查询参考。


这里写图片描述
这里写图片描述


在168M的定时器时钟下 :

DTS=1/168M=5.95238ns。
所以第一个公式,死区时间能从5.95ns的步进从0调整到 127*5.95=755.95ns
第二个公式,(64 +0 )*2*5.95 ~(64 + 63)*2*5.95 = 761.9 ~ 1511.9ns
第三个公式, (256 ~ 504)*5.95= 1.5238us ~ 3us
第四个公式, (512 ~ 1008)*5.95 = 3.0476us ~ 6us

我设置为224(E0),就是11100000,DT=(32 + 0)*(16*f) = 3us

我要把死区设为2us,在第三个公式,倒推出DTG【7:0】=202;

我要把死区设为1.5us,在第二个公式,倒推出DTG【7:0】=190;
我要把死区设为1us,在第二个公式,倒推出DTG【7:0】=148;
我要把死区设为900ns,在第二个公式,倒推出DTG【7:0】=139;//892ns
倒推出DTG【7:0】=140;//904.4ns
我要把死区设为800ns,在第二个公式,倒推出DTG【7:0】=131;//797.3ns

我要把死区设为700ns,在第一个公式,倒推出DTG【7:0】=118;//702.1ns
我要把死区设为600ns,在第一个公式,倒推出DTG【7:0】=101;//600.95ns
我要把死区设为500ns,在第一个公式,倒推出DTG【7:0】=84;//499.8ns
我要把死区设为400ns,在第一个公式,倒推出DTG【7:0】=67;//398.65ns
我要把死区设为300ns,在第一个公式,倒推出DTG【7:0】=50;//297.5ns


在144M的定时器时钟下 :

TDTS=1/144M=6.94444。
所以第一个公式,死区时间能从5.95ns的步进从0调整到 127*6.94444=881.94ns
第二个公式,(64 +0 )*2*6.94444~(64 + 63)*2*6.94444= 888.88ns~ 1763.88ns
第三个公式, (256 ~ 504)*6.94444= 1.7777us~ 3.5us
第四个公式, (512 ~ 1008)*6.94444=

我要把死区设为1.5us,在第二个公式,倒推出DTG【7:0】=173;
我要把死区设为1.2us,在第二个公式,倒推出DTG【7:0】=150;
我要把死区设为1.1us,在第二个公式,倒推出DTG【7:0】=143;
我要把死区设为1us,在第二个公式,倒推出DTG【7:0】=136;
我要把死区设为900ns,在第二个公式,倒推出DTG【7:0】=139;//902.77ns

我要把死区设为800ns,在第一个公式,倒推出DTG【7:0】=115;//798.6ns

我要把死区设为700ns,在第一个公式,倒推出DTG【7:0】=101;
我要把死区设为600ns,在第一个公式,倒推出DTG【7:0】=86;
我要把死区设为500ns,在第一个公式,倒推出DTG【7:0】=72;


在72M的定时器时钟下:

TDTS=1/72M=13.888。
所以第一个公式,死区时间能从5.95ns的步进从0调整到 127*13.888=1763.88ns

这篇关于STM32 不同主频下的定时器死区设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525347

相关文章

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Springboot如何配置Scheduler定时器

《Springboot如何配置Scheduler定时器》:本文主要介绍Springboot如何配置Scheduler定时器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Springboot配置Scheduler定时器1.在启动类上添加 @EnableSchedulin

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4