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.

[参考译文] TMS320F280049C:InstaSPIN 实现中的 ePWM TZ 故障问题

Guru**** 2752855 points

Other Parts Discussed in Thread: LAUNCHXL-F280049C, INA240

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/912452/tms320f280049c-epwm-tz-faults-issue-in-instaspin-implementation

器件型号:TMS320F280049C
主题中讨论的其他器件:LAUNCHXL-F280049CINA240

大家好、

我一直致力于基于在 LAUNCHXL-F280049C 和 DRV8320RS 上实施的 InstaSPIN-FOC 在分立式硬件上实施。

在实施中、GPIO40被设置为 PWM 模块的输入 X-BAR、作为 TZ2 (单次触发 OSHT)信号。 由于我们有不同的栅极驱动器、因此我们在实施中未使用该 TZ 故障。 但是、我们仍在使用 ePWM 直流子模块的 DCAEVT1.FORCE 和 DCBEVT1.FORCE TZ 信号。 这些信号( TRIP7、TRIP8、TRIP9)的源是通过 ePWM X-BAR 从 CMPSS 模块中选择的。  

我已经根据我们离散硬件的电流限制修改了 CMPSS 中 DACHVALA 和 DACLVALA 的值。  

尽管根据我们的硬件修改代码、但 TZ 故障似乎无法按预期工作。 它们似乎是随机和间歇性设置的、硬件上没有实际故障。 我已经检查了故障和正常情况下的栅极脉冲、并且没有发现高侧和低侧 FET 之间存在任何交叉传导问题。 也没有注意到任何高电流尖峰。  

   也在这个论坛上看到了几篇关于这个问题的文章。  

ePWM 直流跳闸选择是否具有未讨论过的 F280049c 勘误文档中的问题? 如 GL 所指出。

如果不是、问题可能出在哪里?


最棒的

Amit Mathukiya

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

    我认为 F280049C 勘误表文件中没有讨论过 ePWM 和 XBAT 的任何问题。

    您可以参阅 motorControlSDK 中的示例代码、如果您的电路板没有 TZN 输入、则只需删除链接到 XBAR 输入的 TZN 即可。

    如果 CMPSSn 根据您的电路板连接到相关的 ADC 输入、请检查 HAL_setupCMPSSs()中的设置。

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

    [引用用户="Yanming Lua"]

    您可以参阅 motorControlSDK 中的示例代码、如果您的电路板没有 TZN 输入、则只需删除链接到 XBAR 输入的 TZN 即可。

    [/报价]

    这里是 HAL_setupFaults()函数、我在该函数中注释掉了 GPIO40的 X-BAR 配置(nFAULT 信号)。 TRIP7、8和9信号的其余设置库功能保持不变。

    //XBAR_setInputPin (XBAR_INPUT2、HAL_PM_nFAULT_GPIO);
    //XBAR_LOCINPUT2; 

    [引用用户="Yanming Lua"]

    如果 CMPSSn 根据您的电路板连接到相关的 ADC 输入、请检查 HAL_setupCMPSSs()中的设置。

    [/报价]

    基于模拟子系统图12-1和16.1简介、CMPSSn 未连接到 ADC、而是连接到模拟互连总线上的 PGA。 您是指 CMPSSn 子系统的 PGA 输入吗? 以下是 CMPSSn 子系统的配置。  

    - CMPSS5、3和1用于过流故障保护、并分别连接到 PGA5、3和1的输出。

    -每个 CMPSS 子系统(5、3、1)中的高电平和低电平比较器的负输入被选为以 VDDA 为基准的12位基准 DAC。 在硬件上测得的电压为3.33V  

    -最初,对于高 CMPSS 和低 CMPSS,DAC 的值设置为一半(2048),然后根据硬件的最大电流,在 main()中将其修改为适当的值。 即3940表示高电平、156表示低电平比较器、最大值为+/- 127A  

    -奇怪的是、它显示过流跳闸故障、即使 ADC (连接到 PGA5、3、1)缓冲器结果从未超过此值。  

    附加的是 AnalogSubsysRegs 值的图像、其中显示了具有 PGA 的 CPMSS 输入多路复用器。  

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

    您好、Yanming、

    您对此问题是否有任何更新?

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

    您好、Yanming、  

    经过进一步调查、我发现另一个问题是、当 CMPSS 系统的输入值(来自 PGA)处于高 CMPSS 和低 CMPSS 的设置负输入的特定范围内时、ePWM 开始毛刺脉冲。 一旦 CMPSS +ve 输入值高于(对于高比较器)或低于(对于低比较器)设置的-ve 输入值、ePWM 跳闸故障就会成功并将 ePWM 设置为低电平状态。  

    出于测试目的、DACA OUT (0.0V 至1.1V)用于改变 PGA 的输入(增益3)、并且 CMPSS 子系统针对跳闸区域故障进行相应设置 DACLVALA = 1860和 DACHVAL = 2979。 PGA 输出/CMPSS 输入处于以下任一范围时的 ePWM 毛刺脉冲- 1860至1887和2955至2979。 这是因为在这些范围内随机设置了 CTRIPL 和 CTRIPH 信号。  

    为什么 CMPSS 在特定范围内以这种方式运行? 可以采取哪些措施来解决此问题?  

    最棒的

    Amit

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

    您可以在数据表中查看以下页面、ADC 输入可以连接到相关的 CMPSS、而不仅仅是 PGA 的输出。

    SPRS945D、P97、图5-31。 模拟组连接
    SPRS945D、P98-99、表5-39。 模拟引脚和内部连接

    请参阅以下代码、为 CMPSS 配置数字滤波器和迟滞。

    //配置数字过滤器。 在本示例中、最大值为
    //用于时钟预分频、采样窗口大小和阈值。
    CMPSS_CONFIGFilterHigh (obj->cmpssHandle[cnT]、32、32、30);
    CMPSS_initFilterHigh (obj->cmpssHandle[cnt]);
    
    //初始化过滤器逻辑并开始过滤
    CMPSS_CONFIGFilterLow (obj->cmpssHandle[cnT]、32、32、30);
    CMPSS_initFilterLow (obj->cmpssHandle[cnt]);
    
    //设置 COMPHYSCTL 寄存器
    // COMP 迟滞设置为2倍典型值
    CMPSS_set迟滞(obj->cmpssHandle[cnt]、1); 

    请查看以下用于配置 ADC 和 CMPSS 模块的链接。

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/911930/3380961#3380961

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

    您好、Yanming、

    我同意 ADC 输入可以连接到同一模拟组中的相关 CMPSS。 我的意思是、我不使用直接 ADC (GX_ADCAB 或 GX_ADCC)作为高电平和低电平比较器(CMPx_HP 和 CMPx_LP)的同相输入、而是使用 PGAx_OUT。  

    我已经更改了数字滤波器和迟滞的配置。 数字滤波器在某种程度上有所帮助、但如果迟滞使其变得更糟的话。 这对我来说真的很奇怪。 它实际上增加了比较器阈值区域、而不是使其稳定。

     嗯、我已经正确配置了 ADC 和 CMPSS 模块并分别对它们进行了测试。  

    这一问题的可能解决方案是什么? 感谢您的帮助。 如果您需要更多详细信息、请告诉我。

    最棒的

    Amit  

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

    由于感应信号的噪声和 CMPSS DAC 的误差、迟滞应始终位于此处。 我认为您上面提到的变化范围应该是正常的、您需要为 CMPSS 设置有关电流保护值的适当阈值。

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

    为了回溯此问题、我还测试了 PGA 输入和输出、以比较和查看增益和偏移误差。 PGA 上的这些误差 随 PGA 输入的增加而显著(在范围的较高侧)、我认为这会影响 CMPSS 并使迟滞更糟。  

    即使在 器件初始化例程中调用 Device_cal()函数也无助于修整这些增益和偏移误差。 我相信、如果这些错误得到解决、可能也会缓解 CMPSS 问题。  

    是否有方法知道这些 PGA 反馈电阻器(Rout 和 Rgnd)的实际/接近相同值以修整增益和偏移误差?  

    如果不是、您是否会考虑分享一些有关有条不紊地修整这些内部 PGA 的信息、而不是进行试错? 甚至是可能做到的。

    为了让您了解这些误差、我将分享显示 ADC 测量电流值与外部探头测量电流值之间差异的测试结果。  

    C2000 ADC 测得的峰值电流值 探头测量的实际峰值电流值
    约54A 30.76 A
    30A 18.55A

    20A

    15A

    13.67A

    11.23A

     最棒的

    Amit

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

    您好、Yanming、

    您对此有什么想法吗?

    最棒的

    Amit

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

    Amit、您好!

    也许它与 C++相关的更多内容是如何编写分配的(变量)代码来处理+/- CMPx-A/B 跳闸值。 跳闸点设置 uint16_t 与适当的 int16_t 之间的范围、因为负整数之后会有符号来匹配所设置的静态跳闸阈值。 进行该更改会向高跳闸阈值和低跳闸阈值添加符号、即使在未使用 PGA 的情况下、也有助于减少过零尖峰导致的错误直流跳闸。 然而、即使在两个比较器之间添加了过多的迟滞、它仍然需要比预期更高的静态跳闸裕度。

    观察添加任何电容到 PGA 输入端的一个好地方可能会延长瞬态滚降时间、从而使假跳闸问题更难解决。 在我们的案例中、向300pF 焊盘添加2200pF、首先移除0r 并使用外部电流传感器、除了 LAB5电机 ID LQ/LD 电感之外、所有器件都能正常工作。  对于电感测试、电机的低阻抗和速度可达50-60Hz、最终会触发直流故障。 实验5代码的这一部分中的 PWM 栅极信号会产生真正的噪声、从而将相电压降至总线电压的一半以上。 FAST 估算器电机 ID 的调制技术似乎存在奇数频率谐波 SNR 问题。

       

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

    使电流探头更接近 DAC 跳闸设置的另一件事似乎是、首先通过调用 HAL_CALIBRATE 来校准 ADC。 实际上、我通过使用板载 x49c 滤波器焊盘、禁用 PGA 放大器并启用滤波电阻器来过滤 INA240输出。 还50µs 在 CMPSSx H/L 直流上启用具有25µs μ V 偏移的 PWM 消隐以及空白1 μ s 周期。 这停止了错误的跳闸、但看起来有点危险、因为我禁用了 Tz2以便与我们的测试直流逆变器配合使用、而使用了 DAC 禁用 PWM 输出。

    低 CMPSSx 具有反相输出、ADC 中的交流正弦波2048个计数向下增长到0V、似乎应该是有符号整数值。 请注意、默认情况下、DACVALow 寄存器设置为非常低的正值256、labs.h 然而、这是峰值反转或负跳闸点计数256、它有时似乎作为无符号整数工作。 然而、对于过零事件有无符号值的情况是奇数的、这些值每半个周期变为负、样本计数是反向的、2048到256。

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

    Amit、您好!

    您在电路板上使用什么电流传感器? 分流电阻器? 还是霍尔传感器?

    您可能会在 F28004x TRM (SPRUI33C)的第14.3节中找到 Rout 和 Rgnd、并且您应该选择合适 的外部电阻器来匹配增益电阻器。

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

    是否有更新? 如果您已经自行解决了此问题、并且没有任何其他问题、我们将关闭此主题。 谢谢!

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

    Amit 的商店可能因 Covid19而关闭。 考虑到这个问题、PGA 放大器似乎没有检测到远低于地面的过零瞬态事件? INA240差分放大器检测到低于接地值-4V。 INA240以奇数方式执行 CMPSS 正输入、即使向上送入 CPMSSx +输入的5.6k 串联电阻也是如此。

    主要区别在于 CMPSS +输入不是以+1.65v 为中心、单向电流检测设置42mv 偏移、刚好高于接地值。 我 主要测试了 INA240双向输出、以中基准电压(+1.65V)为中心、差异很小、注意到 CMPSS 错误的 OVC 跳闸次数更少。 总之、PGA 放大器可能更适合用于 CMPSSx OVC 检测。

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

    您好、Yanming、

    我无意中点击了"这解决了我的问题"、而不是"回复"。 为了回答您之前的问题、我们在我们的应用中使用分流电阻器。  在修改硬件并使 我们能够在某种程度上缓解问题。 最初、它在启动序列期间导致100%的过流故障现在、CMPSS 模块在20%的时间内导致过流故障、并且在示波器上看不到任何电流尖峰。  

    最棒的

    Amit

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

    尊敬的 GL:

    感谢您的建议。 我真的没有时间实施和测试它、因为我一直忙于其他一些任务。 我们将尝试实施它、看看这是否会对我们的情况产生任何影响。  

    最棒的

    Amit

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

    您可以查看《InstaSPIN 用户指南》中的第14章(管理启动、低速和速度反转时的满负载)以提高启动性能。

    《InstaSPIN-FOCTm和 InstaSPIN-MOTIONTm用户指南 》http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf 

    并更改 hal.c 中 HAL_setupCMPSS ()中 CMPSS 的数字滤波器值、以避免开关噪声。

    //配置数字过滤器。 在本示例中、最大值为
    //用于时钟预分频、采样窗口大小和阈值。
    CMPSS_CONFIGFilterHigh (obj->cmpssHandle[cnT]、32、32、30);
    CMPSS_initFilterHigh (obj->cmpssHandle[cnt]);

    //初始化过滤器逻辑并开始过滤
    CMPSS_CONFIGFilterLow (obj->cmpssHandle[cnT]、32、32、30);
    CMPSS_initFilterLow (obj->cmpssHandle[cnt]);

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

    你(们)好,Amit

    很高兴听到您的"确定"这种病毒影响了这么多人。 我不确定在 Yanmig 的示例中是否正确设置了滤波器值(32、32、30)将 TRM 文本除名。 我如何根据主题的 TRM 文本设置滤波器样本值实际上无关紧要。 隐藏的真相是(labs.h) DACL/H 跳闸值与写入那些设置 HAL_setupCMPSS ()的值之间的关系。

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

    Amit、您好!

    您可以查看 F28004x TRM (SPRUI33C)的第16.6和18.11节、选择合适的滤波器值、该值应有助于避免电流感应信号上的开关噪声。  如果您有任何疑问、请告诉我。 如果没有其他问题、我们将关闭此主题。 谢谢。