各位工程师好,我在测试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,这是怎么回事呢