This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于controlSUITE内的ADC offset问题

Other Parts Discussed in Thread: CONTROLSUITE

   最近在看controlSUITE里面的例程,看到“C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x”的HVPM_Sensorless_2833x里面讲到offset的问题,初始的offset设置为0,在电机还没启动时,经过一个interrupt void OffsetISR(void)程序,讲ADC的初始偏置求出来了,笔者算了一下,滤波的效果很好。然后在interrupt void MainISR(void),算电流标幺值的程序为

clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.

这里直接将采来的标幺值减去offsetA,不是应该减去0.5再减去offset吗?采来的AdcMirror.ADCRESULT1)*0.00024414取值范围不应该是0:1,为什么没减0.5呢?

  • offset那个偏值就是0.5,应该采样采的只有正值,而实际电流是有正负的,这样0就是采样的中性点

  • 我的意思是我在代码中找不到把offset设置为0.5的地方。

  •      初始值设置为0,然后经过了一个offset的滤波环节,只是是offset获得了没有电流时候的ADC本身偏差值,并没有设置0.5的过程啊?

  • 我的理解是这样的,设计的时候是采样范围做归一,就是0.00024414这个系数了,而offset作为实际中点,就是0.5了

  •     设计的时候,给端口输入的电压只能是0~3V,那么得到的(AdcMirror.ADCRESULT1)*0.00024414这个值必然是在0~1之间,那么注释当中-0.5~0.5就得不到嘛。

  • chuang hou 说:

        设计的时候,给端口输入的电压只能是0~3V,那么得到的(AdcMirror.ADCRESULT1)*0.00024414这个值必然是在0~1之间��那么注释当中-0.5~0.5就得不到嘛。

    再说一次(第三遍了,囧),offset是0.5

  • chuang hou 说:

        设计的时候,给端口输入的电压只能是0~3V,那么得到的(AdcMirror.ADCRESULT1)*0.00024414这个值必然是在0~1之间,那么注释当中-0.5~0.5就得不到嘛。

    或者这么说吧,offset对应的电位是1.5V左右

  •    我明白offset应该是0.5左右,我的意思是,我offset的值是哪句代码得到的,应该有一个初始的设置过程,offset = 0.5之类的吧

  • chuang hou 说:

       我明白offset应该是0.5左右,我的意思是,我offset的值是哪句代码得到的,应该有一个初始的设置过程,offset = 0.5之类的吧

    初始校准时,输入电平为1.5V,interrupt void OffsetISR(void)中求取的offset是使用的归一化系数,算出的值就是0.5了

  •     多谢,懂了