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.

[参考译文] CCS/DRV8301-69M-KIT:PM 无传感器项目(构建级别2):ADC 能够读取组 A 中的值、但无法读取组 B 中的值

Guru**** 2611705 points
Other Parts Discussed in Thread: DRV8301

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/685729/ccs-drv8301-69m-kit-pm-sensorless-project-build-level-2-the-adc-is-able-to-read-the-values-from-the-group-a-but-it-is-not-able-to-read-the-values-from-the-group-b

器件型号:DRV8301-69M-KIT
主题中讨论的其他器件:DRV8301

工具/软件:Code Composer Studio

您好!

我正在尝试使用卡上的 ADC 从 A 相和 B 相读取电流值。 但是、我只能获得 A 相(ADC 组 A)的电流。 ADC 组 B 的输出值都等于零。 我还使用示波器检查每个相位中是否有电流、情况就是这样。

在文件"f2806xileg_VDC_PM.h"中用以下行初始化相位 B 电流的 ADC B:
AdcRegs.ADCSOC1CTL.bit.CHSEL = 9;/*选择:ADC B1->相位 V 电流*/\
AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 5;\
AdcRegs.ADCSOC1CTL.bit.ACQPS = 6;\

转换结果在文件"PM_Sensorless.c"中使用以下行进行调用:
#ifdef F2806x_DEVICE_H
clarke1.as=((AdcResult.ADCRESULT0)*0.00024414-cal_offset_a)*2);//相位 A 电流。
clarke1.B=((AdcResult.ADCRESULT1)*0.00024414-cal_offset_B)*2);//相位 B 电流。
#endif

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

    您可以将"EnableFlag"设置为1以启用 DRV8301的 PGA、并使用万用表查看 TP15/TP16的电压。

    BTW、您使用的构建级别是什么? 1级未读取 ADC 结果、但您可以查看 AdcResult 寄存器进行检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我使用的是构建级别2。 我将"使能标志"设置为1、电机正在转动、但 ADC 只能读取 A 相电流的值、而不能读取 B 相电流的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否要测量放大器输出的电压、以便通过万用表进行 B 相电流采样? 如果您不运行电机、电压应该大约为1.65V? 如果您执行代码、您会从 ADC Result1寄存器中读取什么值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    电机未运行时、B 相放大器的输出电压为1.69V。 然而、当电机转动时、ADC ResultA1Register 等于0x0002。

    我还检查了 Vdc 的测量结果、得出了正确的结果。 只有 IB 测量值无法正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果所有测试点为1.69V、则可能必须检查此 ADC 通道的信号链、包括控制器的 ADC 引脚、但如果您不在示例工程中更改 ADC 通道配置、ADC 结果仍然不正确。 也许、如果您手头有另一个 controlCARD、您必须更改 controlCARD 以查看会发生什么情况。

    BTW、请确保 DRV8301的配置正确、例如 DC_CAL 引脚和 CS 校准模式。