TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F2812的死区时间设置问题

看了一个例程,程序如下:

EvaRegs.T1CON.all = 0x0840; //0x0840=0000 1000 0100 0000 连续增/减计数模式 时钟预定标x/1,禁止定时器比较操作 //使用内部高速时钟HSPLCK,使用自己使能位,仿真挂起立即停止

EvaRegs.DBTCONA.all = 0x0ff0;  /* 死区时间3.2us */ 

看到书上介绍,死区时间=DB定时器周期*DB预定标系数*CPU时钟周期。

按照这个公式,程序里面DBTCON(4:2)=100,查表知p=16,

DBTCON(11:8)=F,

那么死区时间就是15*16*6.67=1600ns=1.6us。为什么跟注释的3.2us差了1倍?

请问上面计算过程哪里出错了?谢谢。

alice wu:

补充一下,2812里面设置cpu频率150MHZ,因此cpu周期按照6.67ns计算。

看了一个例程,程序如下:

EvaRegs.T1CON.all = 0x0840; //0x0840=0000 1000 0100 0000 连续增/减计数模式 时钟预定标x/1,禁止定时器比较操作 //使用内部高速时钟HSPLCK,使用自己使能位,仿真挂起立即停止

EvaRegs.DBTCONA.all = 0x0ff0;  /* 死区时间3.2us */ 

看到书上介绍,死区时间=DB定时器周期*DB预定标系数*CPU时钟周期。

按照这个公式,程序里面DBTCON(4:2)=100,查表知p=16,

DBTCON(11:8)=F,

那么死区时间就是15*16*6.67=1600ns=1.6us。为什么跟注释的3.2us差了1倍?

请问上面计算过程哪里出错了?谢谢。

alice wu:

专家看到我~麻烦相关知道的TI专家回复一下,谢谢!

看了一个例程,程序如下:

EvaRegs.T1CON.all = 0x0840; //0x0840=0000 1000 0100 0000 连续增/减计数模式 时钟预定标x/1,禁止定时器比较操作 //使用内部高速时钟HSPLCK,使用自己使能位,仿真挂起立即停止

EvaRegs.DBTCONA.all = 0x0ff0;  /* 死区时间3.2us */ 

看到书上介绍,死区时间=DB定时器周期*DB预定标系数*CPU时钟周期。

按照这个公式,程序里面DBTCON(4:2)=100,查表知p=16,

DBTCON(11:8)=F,

那么死区时间就是15*16*6.67=1600ns=1.6us。为什么跟注释的3.2us差了1倍?

请问上面计算过程哪里出错了?谢谢。

alice wu:

回复 Joey Mao:

问题解决了,非常感谢,查完程序发现,HSPCLK确实设置的是75M。

SysCtrlRegs.HISPCP.all = 0x0001;//75m

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F2812的死区时间设置问题
分享到: 更多 (0)