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.

[参考译文] DRV8312-C2-KIT:ADC 结果转换的技术背景

Guru**** 2538955 points
Other Parts Discussed in Thread: INSTASPIN-BLDC

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/757476/drv8312-c2-kit-technical-background-of-adc-result-conversion

器件型号:DRV8312-C2-KIT
主题中讨论的其他器件: INSTASPIN-BLDC

大家好、

我使用的是 DRV8312-C2-KIT、我将深入了解电动势测量和 InstaSPIN-BLDC 功能。

我找到了 InstaSPIN-BLDC 的定义:

typedef 结构

Int32 Vag//内部:VAG 输入--包含实数 VA + VaOffset ->以接地为基准(_IQ)

Int32 VBG//内部:VBG 输入--包含实数 Vb + VbOffset -->以接地为基准(_IQ)

Int32 VCG//内部:VCG 输入--包含实际 VC + VcOffset -->以接地为基准(_IQ)

Int32 Van//内部:VA 至中性(_IQ)

Int32 VBN//内部:VB 到中性(_IQ)

Int32 Vcn//内部:VC 到中性(_IQ)

Int32 VaOffset// VaOffset (_IQ)

Int32 VbOffset// VbOffset (_IQ)

int32 VcOffset// VcOffset (_IQ)

Int32 Int_Threshold//输入:发生换向的积分阈值(_IQ)

Eintbool Vint_lockout//内部:反激电压锁定标志

int32 * vphase//内部:指向要计数的相电压的指针(_IQ)

int32 V_int//输出:积分器(_IQ)

Eintbool ComM_Trig//输出:换向触发脉冲

UINT16状态//输入:值0至5

} INSTASPIN_BLDC

Vag 表示 OUT_A 和接地之间的电压、Van 表示 OUT_A 和星形连接点之间的电压、VaOffset 是星形连接点和接地之间的电压。
这意味着 Vag = Van + VaOffset。
我在这里吗?

 

接下来、我不了解的 MainISR 中有一些行:
为什么 ADC 结果左移三倍/乘以八倍?

iqVaIn =_IQ15toIq ((AdcResult.ADCRESULT1<<3));

 

用于测量相电压的分压器为 ADC 提供 OUT_A 和接地之间的电压。
ADC 结果被写入 Vag (也就是说、按照我之前的假设、这是相同的)。
那么、为什么会进行偏移调整呢?

InstaSPIN_BLDC1.Vag = iqVaIn - InstaSPIN_BLDC1.VaOffset

 

最后一个问题是有关校准的问题。 在下面的行中做了什么?

InstaSPIN_BLDC1.VaOffset =_IQmpy (cal_filt_gain、iqVaIn)+ InstaSPIN_BLDC1.VaOffset


提前感谢您!

Sarah

 

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.否,Van 不等于 iqVaIn,且 VaOffset 不是星型连接点和接地之间的电压。 VaOffset、VbOffset 和 VcOffset 取决于硬件板的相位电压采样电路、每次上电时只需获取校准值、如下所示代码所示、该值在 PWM 输出关闭期间进行采样。 请参阅(BUILDLEVEL = LEVEL3)代码。
    InstaSPIN_BLDC1.VaOffset =_IQmpy (cal_filt_gain、iqVaIn)+ InstaSPIN_BLDC1.VaOffset;
    2.对于 IQVaIn =_IQ15toIq ((AdcResult.ADCRESULT1<3));ADCRESULT1是12位值、请使用向左移位将其转换为 IQ15。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、

    感谢您的回答、我已将其签出、并阅读了 BUILDLEVEL 3的代码和文档。
    我知道、VaOffset 只是测量失败的校正、左移运算符用于转换。
    但我仍然不知道它是如何工作的。
    让我尝试提出一些更详细的问题:

    1. InstaSPIN-BLDC 中的 Vag 和 Van 是什么意思? 哪些物理数量隐藏在此处?

    2.表达式 Vag = Van + VaOffset 是否适用? 如果不是、是否有其他表达式决定了这三个数量之间的关系?

    3.在下一行中将偏移量交给 InstaSPIN-BLDC 之前、为什么要减去偏移量?
    InstaSPIN_BLDC1.Vag = iqVaIn - InstaSPIN_BLDC1.VaOffset;//调整 VA_IN 的偏移

    4、至少需要将哪些数量移交给 InstaSPIN-BLDC、以便其正常工作? 是否可以有其他输入数量组合?

    5、cal_filt_gain 的值来自哪里? 我找到了以下代码并查看了电路图解、但我不知道"cal_filt_gain"是如何属于硬件/技术背景的。
    偏移校准 LPF 的//截止频率和时间常数
    #define WC_CAL100.0
    #define TC_CAL1/WC_CAL

    //定义 ISR 频率(kHz)
    ISR_FREQUENCY = 20;
    PWM_FREQUENCY = ISR_FREQUENCY;
    t = 0.001/ISR_FREQUENCY;//采样周期(秒)、请参阅 parameter.h

    //初始化电流偏移校准滤波器
    CAL_filt_GAIN =_IQ (T/(T+TC_CAL));

    6.为什么计算的失调电压类似于"Offset = Measurement * Gain + Offset"? 这看起来更像是一个加法而不是平均法。 为什么会有增益?
    InstaSPIN_BLDC1.VaOffset =_IQmpy (cal_filt_gain、iqVaIn)+ InstaSPIN_BLDC1.VaOffset;

    我非常期待您的回答!

    您好!
    Sarah
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、instaSPIN BLDC 库中包含的某些信息未公开披露。 我尝试根据示例项目回答您的问题。
    1.正如您在项目中提到并发现的、Vag 是接地相位电压、Van 是电机中性点相位电压。
    不可以、Van 将根据 Vag、VBG 和 VCG 进行计算。 Vaoffset 用于根据采样相电压校准和计算 Vag。
    3、如上一条消息中所述、InstaSPIN_BLDC1.VaOffset 的计算单位为"3级"、具体取决于硬件板。
    4.. InstaSPIN-BLDC 需要三个电压变量(Vag、VBG、和 VCG)来获得用于换向控制的 BEMF 过零点。
    这并不重要、它是根据低通频率的截止频率计算得出的、只是用来获得 va/b/coffset。 您可以更改截止频率、该频率必须远低于 PWM 频率。
    6、如问题5中所回答的那样、得到一个平均校准偏移是一个 LPF。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨!

    非常感谢、这真的很有帮助。
    我还有两个问题:

    我附加了测量电路的电路图。
    它直接复制自 DRV8312-C2-KIT 的文档。

    1)
    根据此计算、我计算了截止频率:
    f_c = 1/(2*Pi×R38*C50)= 1/(2*Pi×95.3k Ω 0.047µF)= 35.5Hz
    但在软件中、截止频率 WC_CAL 定义为100.0。
    我错过了什么? WC_CAL 来自哪里?

    2)
    根据电路图、我计算了测量电压与实际电压之间的关系:
    IqVaIn /偏移=(R39|Z_C50)/(R38+R39|Z_C50)
     -->||表示"并行"
     ->Z_C50表示 C50的容抗
    在进行一些变换后、我得到:
    |Offset|/|IqVaIn|= sqrt[(f/f_c)^2 +((R38+R39)/R39)^2]
    但与软件中的计算不一致:CAL_filt_GAIN = T / T + TC_CAL
    那么、"cal_filt_gain = T/T + TC_CA"等式来自哪里?

    我期待您的回答!

    Sarah

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    W_CAL 和 T_CAL 只是用于偏移校准的软件低通滤波器的参数、与 h/w 电压采样电路无关。 您可以将其设置为任何低于电机额定频率的值。
    2.您可以忽略滤波电容器的阻抗来计算相电压、因为其值远高于电阻。