Thread 中讨论的其他器件:controlSUITE
工具/软件:Code Composer Studio
是否有办法使用 CCS 中的代码在内部测量直流总线电压?
如果有示例代码、请指引我查看。
谢谢你
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.
工具/软件:Code Composer Studio
是否有办法使用 CCS 中的代码在内部测量直流总线电压?
如果有示例代码、请指引我查看。
谢谢你
请通过以下链接下载 controlSUITE、并将其安装到您的 PC 上。
https://www.ti.com/tool/controlsuite
每个电机控制示例代码都测量直流总线电压、您可以参阅项目文件夹中的硬件和软件、如下所示。
C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1
我使用了来自 HVACI_Sensorless_PFC 的以下代码片段来测量直流总线电压:
if (HistPtr >= HistorySize)
HistPtr = 0;
//箱车平均值-将原始样本输入箱车数组中
Hist_Vbus[HistPtR]= AdcResult.ADCRESULT4;// Vbus
// VrectAvg 和 VrectRMS 为 Q24:转换为 Q12
Hist_VrectAvg[HistPtr]=(Int16)(VrectAvg >> 12);
Hist_VrectRMS[HistPtr]=(Int16)(VrectRMS >> 12);
// Freq_Vin 为 Q15;转换为 Q12
Hist_Freq_Vin[HistPtR]=(Int16)(Freq_Vin >> 12);
//测量
//在表达式窗口中查看以下变量:
// Gui_IPFC、Gui_Vbus、Gui_VrectAvg、Gui_VrectRMS、Gui_Freq_Vin (全部为 Q06)
//计算可在表达式窗口中看到的 GUI 值。
temp_Vbus = temp_VrectAvg = temp_VrectRMS = temp_Freq_Vin = 0;
对于(i = 0;i <历史大小;++I){
temp_Vbus += Hist_Vbus[i];
TEMP_VrectAvg += HIST_VrectAvg[i];
TEMP_VrectRMS += Hist_VrectRMS[i];
temp_Freq_Vin += Hist_Freq_Vin[i];
}
Gui_Vbus =((long) temp_Vbus *(long) K_Vbus)>> 15;
Gui_VrectAvg =((long) temp_VrectAvg *(long) K_VrectAvg)>> 15;
Gui_VrectRMS =((long) temp_VrectRMS *(long) K_Vrms)>> 15;
Gui_Freq_Vin =((long) temp_Freq_Vin);
++HistPtr;
根据突出显示的线路、ADC 通道 4用于测量总线电压。 但是、初始化时也会发现以下代码:
//初始化 DMC 套件修订版1.1的 ADC
ChSel[0]= 1; //虚拟测量值。 避免出现第1个样本问题 Rev0 Picollo*/
ChSel[1]=1; // ChSelect:ADC A1->相位 A 电流
ChSel[2]=9; // ChSelect:ADC B1->相位 B 电流
ChSel[3]=3; // ChSelect:ADC A3->相位 C 电流
ChSel[4]=15;// ChSelect:ADC B7->相位 A 电压
ChSel[5]= 14;// ChSelect:ADC B6->相位 B 电压
ChSel[6]= 12;// ChSelect:ADC B4->相位 C 电压
ChSel[7]= 7; // ChSelect:ADC A7->DC 总线电压
ADC_MACRO_INIT (ChSel、TrigSel、ACQPS)
根据上述代码、ADC 通道7被分配用于直流总线电压。
我很困惑我应该使用哪个通道来获得正确的值。 非常感谢您的帮助。
非常感谢大家的参与。
感谢您的解释。
代码工作正常、但为了验证这些值、我尝试使用万用表手动测量直流总线。 但是表达式窗口中的值与万用表显示的值之间存在显著差异。
通过让探针位于 BS1和 GND 之间、可获得万用表读数。
下表显示了它们之间的差异:
| 万用表读数 | 表达式窗口中的值 |
| 61.1伏 | 41.3V |
| 90.2 V | 59.9 V |
| 111.5 V | 73.5 V |
这种差异是有原因的、还是有错误? 请解释造成这种差异的原因。
希望得到解释。 谢谢你。