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

HVPM_Sensorless中PWM波周期的问题

各位工程师好,我在测试HVPM_Sensorless 2833x例程中,使用示波器观察程序输出的PWM波形,发现它的周期是150us,但是程序是设置的确实100us,这是怎么回事呢,难道是我理解错了?

float32 T = 0.001/ISR_FREQUENCY;    // Samping period (sec), see parameter.h 

pwm1.PeriodMax = SYSTEM_FREQUENCY*1000000*T/2;  // Prescaler X1 (T1), ISR period = T x 1 

计算可得T=0.0001,pwm1.PeriodMax=7500,TBCLK=150M,没有分频的

一个ET事件触发一个pwm中断,所以pwm采样周期和pwm开关周期是一样的吧

但为什么示波器观察周期是150us呢,很苦恼。。。

麻烦大师指点下

Johnson Chen1:

楼主你好 .

明天帮你测试一下。

各位工程师好,我在测试HVPM_Sensorless 2833x例程中,使用示波器观察程序输出的PWM波形,发现它的周期是150us,但是程序是设置的确实100us,这是怎么回事呢,难道是我理解错了?

float32 T = 0.001/ISR_FREQUENCY;    // Samping period (sec), see parameter.h 

pwm1.PeriodMax = SYSTEM_FREQUENCY*1000000*T/2;  // Prescaler X1 (T1), ISR period = T x 1 

计算可得T=0.0001,pwm1.PeriodMax=7500,TBCLK=150M,没有分频的

一个ET事件触发一个pwm中断,所以pwm采样周期和pwm开关周期是一样的吧

但为什么示波器观察周期是150us呢,很苦恼。。。

麻烦大师指点下

eassion yin:

回复 Johnson Chen1:

thanks Johnson,等你的好消息

各位工程师好,我在测试HVPM_Sensorless 2833x例程中,使用示波器观察程序输出的PWM波形,发现它的周期是150us,但是程序是设置的确实100us,这是怎么回事呢,难道是我理解错了?

float32 T = 0.001/ISR_FREQUENCY;    // Samping period (sec), see parameter.h 

pwm1.PeriodMax = SYSTEM_FREQUENCY*1000000*T/2;  // Prescaler X1 (T1), ISR period = T x 1 

计算可得T=0.0001,pwm1.PeriodMax=7500,TBCLK=150M,没有分频的

一个ET事件触发一个pwm中断,所以pwm采样周期和pwm开关周期是一样的吧

但为什么示波器观察周期是150us呢,很苦恼。。。

麻烦大师指点下

Johnson Chen1:

回复 eassion yin:

楼主,

今天测试了一下PWM周期确实为100us即10K没有问题。

我测试的程序为

C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0\HVPM_Sensorless_2833x

请问楼主是用的TI的EVM板吗?是否有更改TI  例程?

测试波形如下:

 

 

各位工程师好,我在测试HVPM_Sensorless 2833x例程中,使用示波器观察程序输出的PWM波形,发现它的周期是150us,但是程序是设置的确实100us,这是怎么回事呢,难道是我理解错了?

float32 T = 0.001/ISR_FREQUENCY;    // Samping period (sec), see parameter.h 

pwm1.PeriodMax = SYSTEM_FREQUENCY*1000000*T/2;  // Prescaler X1 (T1), ISR period = T x 1 

计算可得T=0.0001,pwm1.PeriodMax=7500,TBCLK=150M,没有分频的

一个ET事件触发一个pwm中断,所以pwm采样周期和pwm开关周期是一样的吧

但为什么示波器观察周期是150us呢,很苦恼。。。

麻烦大师指点下

eassion yin:

回复 Johnson Chen1:

Hi Johnson,

我使用的CCS4.2.1版本跟HVMotorCtrl+PfcKit_v2.0不兼容,所以我测试的是V1.7里的程序,不知道这两个版本是否有差别,我使用的是DSP28335LITE-081225这个板

各位工程师好,我在测试HVPM_Sensorless 2833x例程中,使用示波器观察程序输出的PWM波形,发现它的周期是150us,但是程序是设置的确实100us,这是怎么回事呢,难道是我理解错了?

float32 T = 0.001/ISR_FREQUENCY;    // Samping period (sec), see parameter.h 

pwm1.PeriodMax = SYSTEM_FREQUENCY*1000000*T/2;  // Prescaler X1 (T1), ISR period = T x 1 

计算可得T=0.0001,pwm1.PeriodMax=7500,TBCLK=150M,没有分频的

一个ET事件触发一个pwm中断,所以pwm采样周期和pwm开关周期是一样的吧

但为什么示波器观察周期是150us呢,很苦恼。。。

麻烦大师指点下

eassion yin:

回复 Johnson Chen1:

Hi Johnson,

原因已经找到了,是我搞错了,真不好意思,我的板子上的晶振是20M的,倍频是10,所以示波器才会显示150us,但是我好奇的是为什么PLLSET函数里不用设置PLLSTS[DIVSEL]的值,系统就默认OSCCLK/2分频了,就得到系统时钟为100M,这是怎么回事呢

赞(0)
未经允许不得转载:TI中文支持网 » HVPM_Sensorless中PWM波周期的问题
分享到: 更多 (0)