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.

[参考译文] TMS320F28388D:使用 BOOSTXL-3PhGAN TripFlagDMC 触发构建3的 FCL 示例

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183812/tms320f28388d-fcl-example-using-boostxl-3phgan-tripflagdmc-triggering-build-3

器件型号:TMS320F28388D
主题中讨论的其他器件:TMDXIDDK379D

大家好、

我正在使用 具有 F28388D MCU 和 BOOSTXL-3PhGAN的定制板运行 FCL 项目(在 PMSM 上使用快速电流环路、基于 EtherCAT 的互联伺服驱动器)。 PMSM 连接到 BOSSTXL、我们使用增量编码器 ABZ -> QEP_POS_ENCODER

增量构建级别1运行良好。

增量构建级别2、我能够以开环方式运行电机、电机旋转、速度我们接近 speedRef、测量/估算位置、基准看起来正常:
DAC 输出 B 和 C 上的 rg1.Out 和 posEncElecTheta[position_Encoder]:

因为我使用 的是 BOOSTXL-3PhGAN 而不是 tmdxiddk379d、所以我没有 LEM 电流传感器、而是  INA240A 电流传感器。

分流电阻为5m Ω、INA240A 增益为20、100mV/A

我的 F28388D ADC 基准使用3V 基准、但 BOOSTXL INA 使用3V3基准、因此我稍微放宽了范围、但对于测试、我希望可以>


我想正确定义我的电流传感器、但我很难。  

我的 ADC 范围为0-3V、INA 传感器提供1.7V @ 0A、这提供了+/-1.3V =+/- 13A 输入的范围

#define BASE_LEM_CURRENT    13    //  ----- do -----

#define  LEM_TO_SHUNT    1.307189542   // (13.0/9.945)

这有道理吗? 我是否需要更改 offset_lemv 和 lemw 等其他任何内容?

我尝试将电流可视化以查看测量是否正确、我显示 clarke1As 和 Bs、电流的形状看起来正常、但振幅毫无意义。

为什么 clarke1.As 和 Bs 仅从-0.4缩放、它是安培单位? 对于 DAC 、存在1.5v 偏移、比例是多少?

确认电流读数良好的最佳方法是什么?

当电机停止分阶段消耗电流 时、我尝试检查 clarke1As 和 Bs 与我的电源的比较值、@15V PSU 上的电流为1A、但 B+AS = 0.55A、我是否缺少什么?

我尝试了构建3、但一旦我启用了标志 TripFlagDMC (在构建2中没有发生)。

我阅读了有关同一问题的所有主题、但 它没有帮助。

另一件事是直接使用 ADC 而非 SDFM 测量 VBUS 检测、我使用 ADC A5 SOC2:

// ********************************
// VBUS at A5
// ********************************
// trigger on ePWM1 SOCA/C
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM1_SOCA,
ADC_CH_ADCIN5, 28);

// Read and update DC BUS voltage for FCL to use
//
static inline float32_t getVdc(void)
{
    float32_t vdc;

//    vdc = ((int32_t)SDFM_getFilterData(SDFM1_BASE, VDC_SDFM_FILTER) >> 16) *
//                      SD_VOLTAGE_SENSE_SCALE;
    vdc = ADC_readResult(ADCARESULT_BASE, ADC_SOC_NUMBER2) * BOOSTXL_VOLTAGE_SENSE_SCALE;

    if(vdc < 1.0)
    {
        vdc = 1.0;
    }

    return(vdc);
}

我在调试器中的读数可以、但您有任何问题吗?  Vdcbus 是在 FCL 控制的任何位置使用、还是仅用于调试/显示?

 

谢谢你

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

    您好、Hal、

    由于节假日、我们的主题专家将能够在2023年1月13日之前回复您。 很抱歉给我带来不便。

    最棒的

    Ryan Ma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="500478" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183812/tms320f28388d-fcl-example-using-boostxl-3phgan-tripflagdmc-triggering-build-3 ]这是否合理? 我是否需要更改 offset_lemv 和 lemw 等其他任何内容?

    是的、您还需要根据您的硬件更改失调电压。

    [引用 userid="500478" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183812/tms320f28388d-fcl-example-using-boostxl-3phgan-tripflagdmc-triggering-build-3 ]我在调试器中的读数可以、但您有任何问题吗?  Vdcbus 是在 FCL 控制的任何位置使用、还是仅用于调试/显示?

    Vdcbus 将在 FCL_runPICtrlWrap()中用于重新计算 FCL 的 KP&Ki。 您可以将采样值链接到 每单位格式的 FCL_params.Vdcbus。

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

    您好、Yanming、  

    我仍然很困惑。  
    OFFSET_lemW 和 OFFSET_lemV 是定义的第326行:

    但是、如果我更改偏移线326、在我的例子 中、2252 @0A、然后第1016行、它再次设置为0:

    Vdcbus 将在 FCL_runPICtrlWrap()中用于重新计算 FCL 的 KP&Ki。 您可以将采样值链接到 每单位格式的 FCL_params.Vdcbus。

    我只是简单地更改了函数 getVdc (void)、FCL.Vdcbus 保持不变、因此它应该是好的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="500478" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183812/tms320f28388d-fcl-example-using-boostxl-3phgan-tripflagdmc-triggering-build-3/4469419 #4469419"]但如果我更改偏移行326,在我的例子 中为22552 @0A,则第1016行再次设置为0:

    这意味着电流采样不正确。 请检查 ADC 结果、查看其值是否可变且与偏移电压匹配。