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.

[参考译文] CCS/TMDSHVMTRPFCKIT:TMDSCND28035

Guru**** 2589245 points
Other Parts Discussed in Thread: CONTROLSUITE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/843216/ccs-tmdshvmtrpfckit-tmdscnd28035

器件型号:TMDSHVMTRPFCKIT
Thread 中讨论的其他器件:controlSUITE

工具/软件: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被分配用于直流总线电压。  

    我很困惑我应该使用哪个通道来获得正确的值。 非常感谢您的帮助。  

    非常感谢大家的参与。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以查看此套件的原理图、该原理图可在以下文件夹中找到、A4是 PFC 的输出、A7是逆变器直流总线的输入、如果将它们连接在一起、则二者应相等。

    (C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\~HVMotorCtrl+PFC-HWdevPkg\HVMotorCtrl+PFCKit-R1.1)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的解释。

    代码工作正常、但为了验证这些值、我尝试使用万用表手动测量直流总线。 但是表达式窗口中的值与万用表显示的值之间存在显著差异。  

    通过让探针位于 BS1和 GND 之间、可获得万用表读数。

    下表显示了它们之间的差异:

    万用表读数 表达式窗口中的值
    61.1伏 41.3V
    90.2 V 59.9 V
    111.5 V 73.5 V

    这种差异是有原因的、还是有错误? 请解释造成这种差异的原因。

    希望得到解释。 谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您使用的电压标度和计算公式可能不正确、您可以再次检查。