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.

[参考译文] TMS570LS3137:TMS570LS3137 DRV8301 ADC 电流感测问题

Guru**** 2589280 points
Other Parts Discussed in Thread: TMS570LS3137, DRV8301

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/848476/tms570ls3137-tms570ls3137-drv8301-adc-current-sense-problem

器件型号:TMS570LS3137
主题中讨论的其他器件: DRV8301

您好!

我正在使用项目 FOCD_ENCODER_SPEED。

1。

drv->adc_current-gain_a = 0.0000305176;

为什么 ADC_CURRENT_GAIN_A 为 0.0000305176?

2.

//更新 ADC 对象
adcGetData (adcREG1、adcGROUP1、obj->AdcResults1);//((ADCmeas (Q12)/2^12))*2.
obj->adcData.I.value[0]=((obj->AdcResults1[0].value<4)-obj->cal_offset_a)* obj->adc_current_gain_a;//相位 A 电流。
obj->adcData.I.value[1]=(obj->AdcResults1[2].value<4)-obj->cal_offset_B)* obj->adc_current_gain_B;//相位 B 货币。

 obj->adcData.I.value[0]是相电流的 pu 值还是实值?

3.

根据 F28069的 DRV830x 电流感应放大器增益设置、有针对 BASE_CURRENT 的设置选项。

TMS570LS3137能否像 F28069那样设置 BASE_CURRENT?

谢谢你。

 

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

    您好 Rita、

    请参阅下面的注释。

    1。

    drv->adc_current-gain_a = 0.0000305176;

    为什么 ADC_CURRENT_GAIN_A 为 0.0000305176?

    >>这只是您可以使用 GUI 覆盖的默认值(1/32k)。

    2.

    //更新 ADC 对象
    adcGetData (adcREG1、adcGROUP1、obj->AdcResults1);//((ADCmeas (Q12)/2^12))*2.
    obj->adcData.I.value[0]=((obj->AdcResults1[0].value<4)-obj->cal_offset_a)* obj->adc_current_gain_a;//相位 A 电流。
    obj->adcData.I.value[1]=(obj->AdcResults1[2].value<4)-obj->cal_offset_B)* obj->adc_current_gain_B;//相位 B 货币。

     obj->adcData.I.value[0]是相电流的 pu 值还是实值?

    >>这是 A 相电流的实际值。

    3.

    根据 F28069的 DRV830x 电流感应放大器增益设置、有针对 BASE_CURRENT 的设置选项。

    TMS570LS3137能否 像 F28069那样设置 BASE_CURRENT?

    >>我不知道在 F28069上执行的操作。

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

    感谢您的信赖。

    1。

    关于问题2,为什么 obj->adcData.I.value[0]是相电流的实际值?

    为什么 相电流的实际值不是 obj->adcData.I.value[0]* base_current?

    在 F28069+DRV8301中、

    通过 选择 DRV_GAIN、ADC_CURRENT 放大、

    如果 DRV_GAIN = 80、则 BASE_CURRENT = 10.3125。

    因此、我可以获得 A 相电流、即 IA * base_current。

    为什么 TMS570 + DRV8301 不需要多路复用 BASE_CURRENT?

    2.

    如何在项目 FOD_ENCODER_SPEED 上更改8301.c 中的 DRV_GAIN?

    如何设置 电流分流放大器和其他控制的控制寄存器2 (地址:0x03)?

    谢谢你。

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

    我不熟悉针对这个控制环路的 F28069实现。

    DRV8301和 TMS570LS3137之间有一个 SPI 接口。 DRV8301寄存器的所有配置均通过 DRV_setup 函数中的该接口完成。 SPI 接口使用高端定时器(HET)模块进行仿真。

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

    我不会通过   DRV_setup 函数中的 SPI 接口以及  DRV8301 和 TMS570LS3137之间的 SPI 接口看到 DRV8301寄存器的任何配置。

    SPI 接口在项目的什么位置? 8301.c?

    谢谢你。

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

    是的。 此8301.c 文件使用具有 HET 程序源代码的8301.het 生成。

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

    我发现   通过 SPI 接口对 DRV8301寄存器的配置为8301.het。

    ;SPIMO 的意见
    ;假设用户想要转出0x5A5A = 0101 1010 0101 1010
    ;但是 HET 代码将首先移出 MSB,这将在 HET 代码中排列为25位数据,如所示
    ;0101 1010 0101 1010 0000 0000 0
    ;因此它变为0x0B4B400。 这是为了发送0x5A5A 而要编程到数据字段的值
    ;DRV8301 Reg1 Write 0x13D8 => 0001 0011 1101 1000 0000 0 => 0x027B000
    ;DRV8301 Reg1读取0x8000 => 1000 0000 0000 0000 0000 0 => 0x1000000
    ;DRV8301 Reg1 Write 0x180D => 0001 1000 0000 1101 0000 0 => 0x0301A00
    ;DRV8301 Reg1读取0x8000 => 1000 0000 0000 0000 0000 0 => 0x1000000

    但我发现控制寄存器2只有10位。

     为什么 DRV8301 Reg1写入0x180D => 0001 1000 0000 1101 0000 0 => 0x0301A00

    有16位?

    如何设置8301.het 以生成8301.c 和8301.h?

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

    我了解   在8301.het 上 DRV8301寄存器的配置。

    如何设置8301.het 以生成8301.c 和8301.h?

    谢谢你。

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

    我发现 DRV8301 Reg2 Write 0x180D => 0001 1000 0000 1101 0000 0 => 0x0301A00

    分流放大器和杂项控制 D3的控制寄存器2 = 1 D2 = 1。

    这意味着增益为80V/V

    如果 DRV_GAIN = 80、则 BASE_CURRENT = 10.3125。

    因此、我可以获得 A 相电流、即 IA * base_current。

    适用于 TMS570 + DRV8301吗?

    谢谢你。

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

    您可以使用此值覆盖默认的 CURRENT_GAIN。 演示中支持的最大工作电流可能受到套件中包含的电源模块的限制。 我们没有此演示的设计文档、因为它早已完成(~2012)。