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.

[参考译文] LAUNCHXL-F280049C:ADC 满量程、状态 RS

Guru**** 2594890 points
Other Parts Discussed in Thread: BOOSTXL-DRV8320RS, DRV8320

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/895749/launchxl-f280049c-adc-full-scale-state-rs

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件:BOOSTXL-DRV8320RSDRV8320

 为什么 pUserParams->estWaitTime[EST_State_RS]= 0需要>12至15安培的电流;

真正的问题可能是40V 9A SMP 电源组如何工作、而48V 20A SMP 在 SDK 2.1 (FOC)中对 ADC FS 值执行任务。

然而、当 RS 等待状态被分割时、相电流峰值被减少并且 user.c 设置 RS Fine 10使得电流峰值远远高于 USER_MOTOR_MAX_CURRENT_A  (9.2)。

降低的峰值电流:pUserParams->estWaitTime[EST_State_RS]=(int32_t)(USER_EST_FREQ_Hz / 4);

更少的电流峰值更准确的 L-L/2电阻:pUserParams->RsWaitTime[EST_RS_State_Fine]=(Int32_t)(1.0 * USER_EST_FREQ_Hz);//1.

如果是直列式慢熔保险丝(12A-15A)、则通过 INA240A1监控器和2m Ω 分流器从以下(典型直流逆变器) ADC 换算系数进行熔断。

USER_ADC_FULL_SCALE_CURRENT_A = ((float32_t)(77.5))

//! 简要介绍 A、B 和 C 相的 ADC 电流偏移
#define IA_OFFSET_A (-38.75)//~=0.5*USER_ADC_FULL_SCALE_CURRENT_A  
#define IB_OFFSET_A (-38.75)//~=0.5*USER_ADC_FULL_SCALE_CURRENT_A  
#define IC_OFFSET_A (-38.75)//~=0.5*USER_ADC_FULL_SCALE_CURRENT_A  

当(user.h)电机值大于5A 且转子达到60Hz、USER_MOTOR_RES_EST_CURRENT_A 8.2或转子失速(空载)时、ADC 满量程 FS 似乎会关闭。

即使通过 BoostXL-drv8320rs、也无法轻松旋转电机。 看起来 SDK v2.1具有转子位置限制、 FAST 估算器会忽略 USER_MOTOR_MAX_CURRENT_A。

TI 可能需要大型 SPM 电机来测试 SDK、而不是20V 电池设备中使用的小扭矩类型。 尝试使用标准48V、15A-20A SMP 使 LAB5旋转1µH μ H 至10µH μ H SPM 电机 ID 60Hz、然后您可能会以不同的方式看到此帖子。 通常、它会使转子旋转高达60Hz、但 OC 故障会进入 Flux_OL、而较小的 SMP 电流电压骤降会保护 OC。 此 SMP (48V 20A)具有作为电流峰值的0电压骤降、因此 ADC FS 更准确地达到了对 USER_MOTOR_MAX_CURRENT_A 的限制

为什么   在 EST_State_RS 期间允许相电流上升到高于 USER_MOTOR_MAX_CURRENT_A 9.2 10A 的水平?

/*线路到线路电阻*/
pUserParams->estWaitTime[EST_State_RS]= 0;

状态 RS 真的需要50%的占空比来确定远高于 USER_MOTOR_MAX_CURRENT_A 的 L-L 相电阻和斜坡电流吗?

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

    48V SMP 通过 x49c ePWM 死区(220ns)导致1/2电桥击穿、从而熔断内联12A 保险丝、奇怪的是相同的 C 相。 在刻录4 NFETS 后非常沮丧、并且在完全调试并生成6步换向示例之前、不会很快使用 SDK。 这意味着、在50%占空比 ID 状态下、DAC 首先在 Tz2之前停止 OC。

    CCS 实时器件调试禁用 motorVars.flagRunIdentAndOnLine bool 开关忽略 大多数鼠标点击(悬停0x1)、会延迟人类停止混乱的尝试。 当 多次进入0x0时、调试系统需要响应速度快得多、并且不会将 bool sate 切换回0x1。

    直流逆变器在64安培300瓦 TO220 NFET 上熔断12A 保险丝、带铜散热器和80mm 风扇、建议 RS 状态接通周期不安全。 即使对于 BoostXL、NexFET 也不是那么可靠、无法快速击穿两个分流器、人们点击的 motorVars.flagRunIdentAndOnLine 被忽略。 即使是从默认 ADC 设置中尝试备用 BoostXL 二次致命损耗、因此牺牲了我们的测试直流逆变器。

    取出:SMP 直流电源40V-48V 的电压骤降会在 LAB5电机 ID 中隐藏不正确的 ADC FS 电流行为。 当软件未正确管理当前负载时、电机限制(user.h)无法保护硬件免受自然灾害的影响。

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

    我对您的问题和上面的描述感到困惑。 如果   您使用 的是 BoostXL-drv8320rs 板、为何将 USER_ADC_FULL_SCALE_CURRENT_A 更改为77.5? 我们已经多次回复您、请确保电流和电压信号传感良好、并且如果您使用自己的电路板、请根据硬件正确设置参数。

    如果可能、您可以发布原理图和 user.h 以帮助我们解决问题、但仍有问题。

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

    [引用 user ="Yanming Lua"]如果   您使用 的是 BoostXL-drv8320rs 板、为什么 USER_ADC_FULL_SCALE_CURRENT_A 更改为77.5?

    我们同时使用 BoostXL 和加密狗连接的直流逆变器-而不是同时使用。 两个 SDK (FOC)都无法正常工作、以使 ADC SF 能够管理电流峰值。 与后置状态类似、48V 20A SMP 不会骤降、并且相电流在整个 ID 周期内保持非常强。

    电源组(40V 9Amp) SMP 电压在 ID 状态期间下降、从而保护 BoostXL 和我们的软件狗直流逆变器。 launchXL 是启动新产品开发的途径。 也就是说、SDK (FOC)不应在其他 ADC SF 中工作、但在任何一个测试用例中都无法正常工作、这是没有理由的!

    [引用用户="Yanming Lua"]我们已经多次答复您,请确保电流和电压信号检测良好,并且如果您使用自己的板,请根据硬件正确设置参数。

    SDK 代码(user.h)限制无法保护任何连接的逆变器硬件(lauchxL-x49c)免受 FAST 估算器即将发生的损坏。 奇怪的是、使用48V 20A SMP 时、在64安培的情况下、击穿两个相同的相位 C 显然足以证明所述的限制(user.h)故障>5A 电机电流。 同样、袋装电源仅保护硬件免受损坏。 我们先前的测试仅使用40V 9A 电源组在任一测试用例上产生的问题更少。 同样、这仅在 SMP 在 LAB5电机 ID 期间 R/L 或 RS 驱动电流期间不降低电压时发生。 或许可以使用一个很好的 SMP 进行测试、因为任何一个测试用例都可以验证 ADC 比例因子是否偏小。

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

    [报价用户="Yanming Lua"]您可以发布原理图和 user.h、以帮助我们解决问题(如果可能)、但您仍有疑问。

    为什么 A 相和 C 相电流检测样本 CRIS 交叉(hal.c)与(hal.h)? 正弦电流的正确对齐通常是检测/处理 SOC 采样相位准时的相同相位。 例如、BoostXL 快速入门指南表3检测顺序 PGA4=A、PGA6=B、PGA2=C 然而 hal.h 的 SOC 相位 A 样本读取采样相位 C,在 HAL_readADCDDataWithOffsets()中顺序相反。 订单未讨论 SPRUHJ1H–2013年1月–2019年6月修订了第17章"分流电流测量"。 我知道订单是否更改、电流非常高、会导致 R/L、但使用40V 9A 电源组时、我没有更改下面显示的订单。  

    也许第二次 NFETS 短路我的故障有红色/馈送设置2µs (hal.h)、认为200ns 不是 x10ns。 2µs,在许多系统中,死区时间似乎不是那么长。 检查100V、120A、3.8m Ω NFETS 的成本(4.50美元)、与 NexFET 400A 相似的480A 脉冲。 和100V、77A、200A、8.3m Ω(2.75美元)、前提是以下 SOC 订单为1:1、与更合理的构建成本匹配。 奇怪的测试逆变器66A 200V 18m Ω NFETS 在40V 9A SMP 下多次工作 SPM 高达60Hz、但开始出现较大的 OC 问题48V、20A SMP。  然而、1/2桥驱动器在两次短路1/2桥 NFET 时都是正常的。 因此、脉冲宽度可能超出了 NFET 的 SOA、看起来像是击穿。 将 EST_State_RS 从 默认值(USER_EST_FREQ_Hz / 4)更改为0后、立即发生奇怪的短路。  

    直到发生这种变化、它将 SPM 斜升至60Hz、但仍通过48V 20A SMP 使直流 OC 跳闸、进入 RatedFlux_OL 状态。 由于实验5在 R/L 期间烧坏了2个分流器、即 BoosXL-drv8320rs、因此 SDK 代码仍然可疑 同样、通过 is05_MOTO_id.c 和 flagBypassLockRotor= false (lab。h)处理 ACIM Id 额定电流的目的是什么?

    此外、对于任何触发区直流计数、CMPSSx 直流滤波器 PGA 中心输出(1.65v) 2048个计数不是 EPWM Tz2峰值电流。 BoostXL 98mV/A x12 PGA 增益的直流计数将高得多(labs.h)。 这样便可将 drv8320rs Vds 故障设置为15.6A (is05_moter_id.c)。 然而、RateFluxOL 绝不会因48V 20A SMP 而跳闸 nFault、这应该是正确的。 如果在 drv8320rs Vds 之前正确配置的直流跳闸故障 ePWM、似乎没有固件 Tz2保护。 奇怪的 CMPSSx 直流计数+/-3056 (16.23A) labs.h 跳闸且从不 drvSPI8320Vars.Ctrl_ReG_05.VDS_LVL = DRV8320_VDS_LEVEL_1P300_V =(15.6A)。 配置了两个 ePWM 跳闸、但只有直流 A/B 跳闸在48V 20A SMP 下出现故障、这仍然非常令人困惑。  

    1.可能会因 HV 套件样品订单混淆而导致奇数相位顺序或标签错误?

    通过读取数据偏移处理的样本的似乎 PGA 输入应为 A=A、B=B、C=C?

    3、ADC B9是否因 C9为 PGA+IN 或用途混淆、原因何在?

    这就是使用外部电流监控器时的逻辑顺序:

    // hal.c
    
    //为 hvkit_rev1p1配置 SOC
    
    // ISENA - PGA4_OF ADCC8->RC0 INA240 (J5-46)/RC-过滤器//PGA4+IN->C9->RC0 J7-67
    ADC_setupSOC (obj->adcHandle[2]、ADC_SOC_NUMBER0、ADC_TRIGGER_EPWM1_SOCA、
    ADC_CH_ADCIN8、HAL_ADC_PGA_OFxABC_SAMPLE_WINDOW);
    
    // ISENB - PGA6_OF ADCA8->RA0 INA240 (J5-45)/RC-过滤器//PGA6+IN->A15->RA0 J7-68 (C3)或 J3-24 (B0)
    ADC_setupSOC (obj->adcHandle[0]、ADC_SOC_NUMBER0、ADC_TRIGGER_EPWM1_SOCA、
    ADC_CH_ADCIN8、HAL_ADC_PGA_OFxABC_SAMPLE_WINDOW);
    
    // ISENC - PGA2_OF ADCB8->RB0 INA240 (J5-48)/RC-FILTER //PGA2+IN->B9->RB0 J7-69
    ADC_setupSOC (obj->adcHandle[1]、ADC_SOC_NUMBER0、ADC_TRIGGER_EPWM1_SOCA、
    ADC_CH_ADCIN8、HAL_ADC_PGA_OFxABC_SAMPLE_WINDOW);
    
    // hal.h
    
    #if (BOOSTX_TO_LPD = BOOSTX_TO_J5_J6)
    //转换 A 相电流 G2_ADCC8->RC0 //PGA4->RB0/B9[1]
    值=(float32_t) adc_readResult (obj->adcResult[2]、adc_SOC_NUMBER0);
    pADCData->I_A.value[0]=值* CURRENT_SF;
    
    //转换 B 相电流 G4_ADCA8->RA0 //PGA6->RC0/C9[0]
    值=(float32_t) adc_readResult (obj->adcResult[0]、adc_SOC_NUMBER0);
    pADCData->I_A.value[1]=值* Current_SF;
    
    //转换 C 相电流 G6_ADCB8->RB0 /PGA2->RA0/A15[2]
    值=(float32_t) adc_readResult (obj->adcResult[1]、adc_SOC_NUMBER0);
    pADCData->I_A.value[2]=值* Current_SF;
    

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

    SDK 3.0的注释(IA、IB、IC) SOC 源与 PGA 源输入(hal.c)顺序似乎不正确。 还是 BoostXL-drv8320rs 快速入门指南表3不正确?

    上述代码 snip (J5/J7)注释显示了正确的1:1映射 ADC 输入 PGA_OUT、launchXL-49C 原理图确认。 A&C SOC 是否反转(hal.h)问题3?  非常令人困惑、但重要的是、什么采样 SOC 与偏移读取 SOC 对齐、否则 R/L 具有非常高的峰值电流。 在阅读语句 SDK v3.0 (hal.c)后感到困惑、认为 PGA1 = ISENC->ADCC9、但 TRM 显示 A11/B7、且原理图中的 P1l = J3引脚27。 TRM 表12显示了 PGA1_OUT A11/B7、而不是 C9和 P1l = J3 (原理图) ADCINB2引脚18 (P1l)。

    请说明最近是否更改了 TRM、原理图、表3? 为什么 FAST 估算器的 A 和 C 反向 SOC (hal.h)、或者确切地说是什么?

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

    BTW 我花时间查看 hal.c SDK 3.0也无法为直流源配置 ePWM 跳闸区域操作、 但它永远无法使用其配置方式。

    也许设计人员应该检查 TRM 并实际测试软件示例是否按描述工作、REM 的注释是准确的。 指住客户并不是一种高效的方法。

    例如、user.c 根据 TI 技术 SPRUHJ1H、设置额定磁通 ID x20等待仅适用于 ACIM。  然而、LAB5应在不应运行 SPM 的 Id 额定电流测试时运行。 为什么在适用于 SPM 的 SDK 3.0 LAB5中将此调用保持活动状态、SPM 电机的 Id 额定电流分支的用途是什么? 这似乎就是为什么 user.c 时间等待状态对于 SPM 不能正常工作的原因、并且在额定磁通 LC 期间会发生转子振动。 是否所有运行 Id 额定电流的电机都与 SPRUHJ1H 相反、说明仅运行感应电机运行 Id 额定时间等待?

    /*仅 ACIM */
    pUserParams->estWaitTime[EST_State_IDRATED]=
    (int32_t)(20.0 * USER_EST_FREQ_Hz);
    
    //我添加了 if 语句、它不存在并且这个测试针对 SPM 运行、标志设置为 true (labs.h)、为什么?
    //必须检查电机 ID 过程中似乎存在几个错误。
    
    if (motorVars.flagBypassLockRotor == false)
    {
    //
    //获取 ACIM 的磁电流
    //
    motorVars.IdRated_a = EST_getIdRated_a (estHandle);
    } 

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

    如果您在 BOOSTXL-DRV8320RS 的示例 lab05中没有更改任何内容、则该实验应该能够正常工作、包括使用内部 CMPSS 的过流保护。 您需要更改 motorVars.dacValH 和 motorVars.dacValL 的值以设置过流阈值、默认值太大、无法对过流保护进行三角测量。 如果  相电流非常低、则减小 motorVars.dacValH 并将 motorVars.dacValL 增大到接近2048的值。

    如果您在识别和运行电机方面仍有问题、请发布 user.h 和电机数据表。 我们可能会尝试在实验中测试类似的电机、以查看是否存在您始终提到的任何问题。