根据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 不同主频 定时器 死区设置
引用地址:
STM32 不同主频下的定时器死区设置
推荐阅读最新更新时间:2024-03-16 16:07
STM32中通过固件库自己编写系统时钟配置文件
使用HSE配置系统时钟 因为STM工程使用固件库,进入main函数时都已配置好时钟,所以我们自己编写时钟配置文件首先需要复位RCC寄存器! 使能HSE 判断HSE是否启动成功 使能预取指 设置FLASH等待周期 配置3条总线的倍频因子 配置锁相环,使能锁相环 等待锁相环稳定 选择锁相环输出为系统时钟,并等待其稳定 void HSE_sysclock_config( uint32_t RCC_PLLMul_x ) { //先复位RCC寄存器 RCC_DeInit(); /*使用HSE配置系统时钟*/ //使能HSE RCC_HSEConfig( RCC_HSE_ON ); //检测HSE是否启动成
[单片机]
字符转整型STM32史上最短 字符转整形 简简单单
一直奇怪为什么stm32处理数据那么麻烦,要指针数组判断等等跳来跳去的。 直到今天,我发现了 #include “string.h” #include “stdlib.h” !!! 那我就可以两句话搞定我的数据了!!! 而不是像之前那样子那么麻烦了:STM32字符转整型处理 ’ stm32c语言字符转正型,并且进行数据分割 #include string.h #include stdlib.h u8 DATA = X12Y34Y56Y78 ; int shuju_chuli(const char *shuju,char zifu ) { char *shu_ju_1=strchr(shuju,zifu)+1; /
[单片机]
STM32存储器结构&存储器映射
1 STM32系统结构 要想深刻理解STM32的存储器,需要首先知道STM32的系统结构。 如Figure 1,是STM32系统结构框图。 根据STM32 Reference manual (RM0008)中的描述,如图: 可以得知STM32系统结构的组成,每一个模块更为详细的内容,请参考相关文档。 RM0008文档中可以看出,STM32采用的是Cortex-M3内核,因此,有必要了解Cortex-M3的存储器结构。 图中还可以看出,Cortex-M3是通过各个总线和Flash、SROM相连接的。 2 STM32内核(Cortex-M3)的结构 以下是Cortex-M3模块框图:
[单片机]
STM32_TIM3_PWM_MDK
最近要驱动电机,看了下PWM的输出,有所总结,这次贴上。 stm32 的高级定时器 比较复杂,看了下例程,设置的东西太多了,就没有碰, 看了通用定时器还比较可爱,什么都刚刚好够用,就用它做了,这次用的是TIM3定时器3。 硬件平台用的是stm32f103vet6 100脚的。 由于手头没有示波器,所以用软件仿真,先上一张仿真图: 下面是代码部分Timer3.c C语言: Codee#20528 #include Timer3.h /******************************************************************************* * Func
[单片机]
时钟控制RCC应用与详细解析
时钟控制RCC 为什么需要时钟系统? 时钟系统就像一个中枢神经,驱动着芯片上所有的器件在同一时间按照特定的工作频率进行工作。我认为时钟系统有如下功能: ① 时钟系统相当于一个“频率适配器”。我们生活中常用的是电压适配器,全球每个国家的工频电压不太一样,我们如果到这些国家旅行不可能带适配于特定国家的电源充电器吧,这太繁琐了,要实现“一器多用”,就要有适配器的概念。在STM32中,有许多器件,这些器件在工作时需要的频率不一样,例如:GPIO工作在性能状态时其工作频率是72MHz,但是如果把那么高的频率用在ADC采样(工作的最大频率为14MHz)上就直接完犊子了,我们知道ADC是“模拟量- 数字量”,过高的频率会导致采样失真,就相当
[单片机]
STM32学习之:DMA详解
DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。 DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。 有多少个DMA资源? 有两个DMA控制器,DMA1有7个通道,DMA2有5个通道。 数据从什么地方送到什么地方? 外设到SRAM(I2C/UART等获取数据并送入SRAM); SRAM的两个区域之间; 外设到外设(ADC读取数据后送到TIM1控制其产生不同的PWM占空比); SRAM到外设(SR
[单片机]
STM32自动量程电压表设计方案
0 引言 在智能仪器中,常常用到自动量程转换技术,这使得仪器在很短的时间内自动选取最合适的量程实现高精度的测量。自动量程的实现一般通过控制输入信号的衰减放大倍数实现,就电压表来说其输入测量电压会大于其AD 转换器的输入范围,所以它的量程切换基本上是信号衰减倍数切换的过程。 1.系统整体方案与工作原理 系统功能框图如图1所示。STM32F103ZET6处理器是本系统的核心器件,负责控制整个系统的正常工作,包括读取AD 转换后的结果及200mV 与2V 档位的控制;按键输入动作响应;段式液晶的驱动;量程自动转换控制等。 系统功能框图 输入的电压信号经过量程转换模块,变成可供ADC模拟输入端能正常进行采样的电压。交流电压测量
[单片机]
如何使用555定时器构建一个简单的节拍器
555定时器IC是一种多功能元件,可用于各种电路,包括节拍器。节拍器是音乐家在练习过程中用来保持稳定节奏的装置。在本教程中,您将学习如何使用555定时器IC构建一个简单的节拍器。 零件清单 1×9V电池 1×555定时器IC 1×电位器,VR1250kΩ 1×电阻,R11kΩ 2×电容器,C1和C222μF 1×扬声器,8Ω 555定时器配置为非稳态模式,这意味着它可以生成连续的脉冲序列。这些脉冲的频率决定了节拍器的速度。 时序组件:电阻(VR1和R1)和电容器(C1)决定脉冲间隔,可以通过改变VR1的电阻来调整。 电容放电:输出在高电平和低电平状态之间切换,导致C2充电和放电,进而在扬声器中产生声音。 喇叭输出:当输出引
[嵌入式]