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.

[参考译文] TMS320F2.8069万M:F2.8069万M ISO控制卡和InstaSpin软件-如何访问ADC值?

Guru**** 2538930 points
Other Parts Discussed in Thread: MOTORWARE, DRV8301

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1088300/tms320f28069m-f28069m-iso-control-card-and-instaspin-software---how-are-adc-values-accessed

部件号:TMS320F2.8069万M
主题中讨论的其他部件:MOTORWAREDRV8301

您好,

我使用的是一种定制PCB设计,主要基于F2806X ISO控制卡。

我正在尝试了解InstaSpin代码中的ADC值与实际物理ADC信道之间的关系。

HAL_readAdcData读取相电流(A,B,C),反EMF (A,B,C)和总线电压的值。

这是7个值。

ADC_ResultNumber_1,...Number_2,..._3等...与原理图不对应。

例如,原理图上的ADC_A0不是相电流A,而是EXT_IC-FB。

ADC引脚如何映射到AdcData?

此外,当 有14个A到D输入被占用时,为什么AdcData中只包含7个值?

代码中实际使用了哪些代码?

我打算使用几条A到D线路来测量空气压力和温度,因此我正在尝试了解如何安装这些线路

在InstaSpin实验室已经使用的现有结构中,我将它用作我自己的代码的模板。

谢谢!

Dave Reagan

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

    顺便说一下,我的设计基于DRV8301-HC-EVM评估板D版

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

    您可以忽略前面的大多数消息,但我仍然有问题:

    “当 占用了14个A到D输入时(在DRV-8301-HC-EVM板上),为什么在AdcData中只包含7个值?”

    谢谢!

    戴夫

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

    由于您使用的是自己的主板,请按照步骤更改示例实验,并在运行lab02a/b/c之前验证硬件主板的电流和电压信号。 确保电流和电压采样工作正常。

    1.在hal.c中更改PWM和ADC配置,请参阅指南motorware_hal_tutorial.pdf。

    C:\ti\motorware\motorware_1_01_00_18\docs\tutorials

     

    2.根据user.h中的硬件板设置正确的参数

    #define user_IQ_full标度电压V          (xx)

    #define user_voltage_filter_pole_Hz              (xx)

    #define user_ADC_FULL比例电压V      (xx)

    #define user_IQ_full比例当前A          (xx)

    #define user_ADC_FULL比例电流A      (xx)

     

    3.确保hal.h中HAL_readAdcData()中的电流系数符号与电流感应电路匹配。 请参阅InstaSPIN用户指南(SPRUHJ1, https://www.ti.com/lit/spruhj1)中的5.2 2电流反馈极性一章,设置电流比例因子的符号。

     

    静态内联void HAL_readAdcData (HAL_Handle Handle,HAL_AdcData_t *pAdcData)

      _IQ Current_SF =(+/-) HAL_getCurrentScaleFactor (句柄);

    }

    InstaSPIN_FOC实验室只需要3相电流,3相电压和1直流总线电压信号来控制电动机,因此只需使用7个ADC通道和采样值。 您可以参阅 motorware_hal_tutorial.pdf以使用更多ADC信道。

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

    您好Yanming,

    感谢你的帮助。

    我找到了ADC引脚最终映射到AdcData的位置。 它在hal.c中,在子例程HAL_setupAdds中。

    但是,似乎在评估板上设置了ADC通道,这些通道未在代码中使用。

    IA-FB (注意没有"EXT")-
    在DRV8301-HC-EVM板上,它占用ADC_SocChanNumber_A1 ----------- > ADC_SocNumber_?
    问号表示似乎没有分配此信道编号的SocNumber。
    在同一电路板上,它还占用ADC_SockChanNumber_B3 ------- > ADC_SocNumber_?
    IB-FB -
    在DRV8301-HC-EVM板上,它占用ADC_SocChanNumber_B1 ------- > ADC_SocNumber_?
    在同一电路板上,它还占用ADC_SocChanNumber_B5 ----------------------- > ADC_SocNumber_?
    IC - FB -
    在DRV8301-HC-EVM板上,它占用ADC_SocChanNumber_A3 ------- > ADC_SocNumber_?
    在同一电路板上,它还占用ADC_SocChanNumber_A5 ------- > ADC_SocNumber_?

    IA-FB,IB-FB和IC-FB不仅占用A/D信道,即使这些信道未被代码使用,
    他们每个占用2个信道。 为什么?

    我认为,我不使用i-total,因为微控制器完全有能力将这些术语添加起来。
    但是,如果不使用求和放大器,为什么还要设计和构建这样的放大器呢?
    此外,为什么要为其分配A/D通道?

    幸运的是,我只需要另外2个A/D通道(1个用于压力传感器,1个用于温度传感器),这正是剩下的。

    如果只是在某个地方拼写出来,那么ADC_A1,ADC_A2,ADC_A3, ADC_A5,ADC_B1,ADC_B3和ADC_B5都是多余的,我本可以有一个更简单的电路板,它将更容易布置,而且麻烦也大大减少。 哦,看起来,印刷电路板在工作中又旋转了一个。 除非...这些信号有一些用途,我还没有发现。 事实上,它们是否在某处被使用?

    谢谢!

    戴夫

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

    DRV8301-HC-EVM板允许用户使用DRV8301的外部放大器 或内部 PGA进行电流感应。 用户可以选择一个组(2通道 或3通道)进行电流感应,因为实验示例使用ADC引脚连接到外部放大器。

     DRV8301-HC-EVM是通用平台,不仅适用于InstaSPIN-FOC,因此其它电路保留用于不同的算法或应用。 您可以参考示例实验室,在 DRV8301-HC-EVM上使用正确的ADC引脚和电流感应电路。

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

    啊! 谢谢Yanming!

    问题已解决。