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.

[参考译文] TMS320F2800157-Q1:TMS320F2800157-Q1电压读取问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1356151/tms320f2800157-q1-tms320f2800157-q1-voltage-read-issue

器件型号:TMS320F2800157-Q1
主题中讨论的其他器件:DRV8301C2000WARETMDSCNCD2800157

尊敬的 TI 团队:

我们以 TMS320F2800157-Q1 (RHB 32引脚 VQFN)和 DRV8301为基础打造了用于 BLDC 电机控制的定制硬件。 对于此组合、我们指的是这篇文章- https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1240255/tmdscncd2800157-tmdscncd2800157

针对使用实验 C:\ti\c2000\c2000\c2000\c2000_convid_sdk_5_01_00_00\solutions\universal_motorcontrol_lab\f280015x Ware_Motor 的软件框架

文件://C:/ti/c2000/C2000Ware_Motor SDK_5_01_00_00/docs/C2000 Ware_Motor SDK_SDK.pdf Getting_Started_Guide

根据第55到59页、我们已在中更改了以下参数 user_mtr.h 文件   

//! 简明定义标称直流母线电压 V

#define USER_M1_NOMINATE_DC_BUS_VOLTAGE_V (48.0f)

//! \short 定义 AD 转换器的最大电压
// AD 转换器的满量程电压,而不是电流电压


#define USER_M1_ADC_FULL_SCALE_VOLTAGE_V (66.324f)//将分频器用作 R1:95.3K、R2:4.99K

//! 简明定义模拟电压滤波器极点位置、Hz
#define USER_M1_VOLTAGE_FILTER_POLE_Hz (335.5f)//电容器0.1uf

//! 简明定义 AD 转换器的最大电流
#define USER_M1_ADC_FULL_SCALE_CURRENT_A (330F)

并且我们已根据板更新了引脚映射。 当我们运行代码时、 电压恰好是 VDC 总线表达式上的一半、甚至计算出的电流偏移也是一半

我们已使用万用表检查了引脚上的电压、情况正常、但在表达式屏幕上、我们可以看到一半的电压。 出现此问题的可能原因是什么?  

提前感谢、

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

    大家好、

    通过在 hal.c 文件中将 Voltage 基准更改为外部解决了此问题。  我们更改了下面的行。  

    以前

    adc_setVREF (obj->adcHandle[0]、adc_reference_internal、adc_reference_3_3V);
    adc_setVREF (obj->adcHandle[1]、adc_reference_internal、adc_reference_3_3V);

    我们根据下面的行进行了更改

    //基于 TMDSCNCD2800157的套件
    adc_setVREF (obj->adcHandle[0]、adc_reference_external、adc_reference_3_3V);
    adc_setVREF (obj->adcHandle[1]、adc_reference_external、adc_reference_3_3V);

    但是、当我们启用运行标志时、表达式页上出现2个错误。  Vf 偏移

     faultMtrNow.bit.moduleOverCurrent = 1;

    faultMtrNow.bit.vsfOffSet = 1;

    faultMtrNow.bit.voltageOffset = 1 ;  

    如何调试该问题?

    谢谢。

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

    "我知道,你是我的女人,我不会伤害你的。"

    查看最近的发布、电压偏移故障表示计算出的电压偏移超出系统设定的可接受上限/下限。

    对于采用3分流器配置的通用电机控制实验、预期的失调电压为0.5个单位。 这表明在电压检测电路中、直流失调电压为1.65V (在3.3V 中)。

    如果计算值超过默认值的+-0.05、则将其视为超出范围。

    • 默认值为 USER_M1_Vx_OFFSET_SF、其中"x"是 A、B 或 C
    • 上限/下限由  USER_M1_Vx_OFFSET_SF +/- USER_M1_VA_OFFSET_SF_DELTA 设置 
    • USER_M1_VA_OFFSET_SF_DELTA 为0.05

    为了进行调试、请在启动期间探测电压检测电路的输出、并确保它们的读数约为1.65V。  请告诉我这是否有帮助!

    此致、
    杰森·奥斯博尔恩

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

    Jason、您好!

    启用运行标志后、表达式页面出现错误。

     faultMtrNow.bit.moduleOverCurrent = 1;

    如何调试该问题?

    提前感谢。

    拉姆·辛格

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

    RAM、

    moduleOverCurrent 指示的故障表示过流故障、可能的原因如下:

    • 来自驱动器 IC 的 nFault 信号已指示故障情况、通常为过流。 我建议使用示波器探测 nFault 引脚、以检查是否存在此情况。
    • 否则、ADC 和 CMPSS 外设已在电流检测电路上读取过流条件。

    如果过流情况的原因是 nFault 信号、则可以读取 DRV8301状态寄存器以确定具体的故障源。 调试取决于故障内容-请参阅 DRV8301数据表。

    如果过流情况的来源是 CMPSS 外设、则可以读取 CMPSS 的状态寄存器以确定确切的故障源。 如果是这种情况、请检查以确保 USER_MOTOR1_OVER_CURRENT_A 足够高、足以满足电机的电流消耗。

    请注意:  这有可能是一个实际的过流情况。 如果是这种情况、最可能的答案往往是 user_mtr1.h 中未正确设置电机的物理参数、或者硬件存在问题、例如超出驱动器 IC 的规格。

    此致、
    杰森·奥斯博尔恩

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

    你好 Jason ,

    感谢您的答复。

    我们已根据您的建议检查了此电路板。 请找到以下答案

    • 来自驱动器 IC 的 nFault 信号已指示故障情况、通常为过流。 我建议使用示波器探测 nFault 引脚、以检查是否存在此情况。

        我们 通过示波器检查了 nFault 引脚。 处于高电平状态。 此外、我们还没有将 DRV8301的 nFault 引脚与微控制器相连。 仅 LED 与 DRV8301 nFault 引脚连接。 此外、我们尚未在固件中启用 SPI 外设。

    •  ADC 和 CMPSS 外设已在电流检测电路上读取过流条件。

    我们还没有将任何电机与该板连接。 我们刚才启动板是为了检查 PWM 是否从 DRV8301 IC 发出、  

    此外、控制器会输出 PWM、直到我们切换 DRV 使能 GPIO。 一旦我们启用 DRV 引脚、我们的模块就会检测到过流和电压故障并禁用 PWM。

    我们还使用示波器验证了控制器的模拟和电压输入、所有结果都正确无误。  

    相电压感测引脚:0V

    相电流检测引脚:1.648V

    请指导我们执行进一步的调试步骤。  

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

    RAM、

    首先、C2000的 nFault 输入不应保持悬空。 悬空 nFault 信号可能会因不正确而导致跳闸、但根据您最近的帖子、我不认为这是您的问题的原因。

    通用电机控制实验的逻辑假设所有硬件都已正确连接、并且在启动过程中会进行检查。 例如、DRV8323RS 固件尝试执行 SPI 读取以验证 ENABLE 命令是否正常运行。 请参阅  DRVIC_ENABLE (...)  停止。

    此致、
    杰森·奥斯博尔恩