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.

[参考译文] TIDA-010031:TIDA-010031

Guru**** 2561060 points
Other Parts Discussed in Thread: MSP430FR2355

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1023242/tida-010031-tida-010031

器件型号:TIDA-010031
主题中讨论的其他器件:MSP430FR2355

你好。

我们对 BLDC 电机驱动器的 TIDA 板固件有一些疑问、如下所示。

可通过以下链接下载样片:

https://dev.ti.com/tirex/explore/node?a=VLyFKFf__1.0.4&node=AHncK.hWJ4vOir8iwD1B1w__coGQ502__LATEST

1-  当状态机处于 MOTOR_IPD 状态时、在 ISR 中为 SensorlessTrapController.IPDStatus 分配值 ADC_READ。 但是、发布此分配后、我看不到代码中的其他位置处理此分配。 看起来代码可能会达到这一点并无限期停留在这里。 从该状态中获取的逻辑是在何处实现的?

2 - 下面是  电机控制软件的 ISR 中使用的矢量。 无法在包括数据表在内的任何位置找到针对这些矢量的相应计数器寄存器等。  

我们参考 TIDA 板中使用的 msp430fr2355数据表

TIMER0_B0_VECTOR

TIMER2_B0_VECTOR

TIMER2_B1_VECTOR

TIMER3_B0_Vector

TIMER3_B1_Vector

3-  将加速度转换为角距的逻辑 通过以下方式实现:  

SensorlessTrapController.AccelVelocityInit +=

          SensorlessTrapController.AccelRate;//按加速率增加速度

      SensorlessTrapController.AccelDistance +=

          (SensorlessTrapController.AccelVelocityInit

              -(SensorlessTrapController.AccelRate >>1)>> 3;//计算距离

 

该逻辑的物理推导是什么?

 

此外、在上述代码中、 当 SensorlessTrapController.AccelDistance 达到值 20834时、表示它的行程为60度。 20834是如何推导出来的?

4- 我对状态机中的一个特定状态有几个问题- MOTOR_DIRECTION  

  1. Motor_Direction 的逻辑在哪里实现? 从我对守则的了解来看,我在任何地方都找不到这种守则?  
  1. ApplicationStatus.currentstate 设置为 MOTOR_DIRECTION 后、如何恢复到不同的状态? 我在任何地方都找不到用于更改此分配的任何状态的代码。 看起来它可能只是卡在那里。  

  

请帮助我们详细了解它

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

    你(们)好

    您可以在 ISR.C 中看到 IPDStatus 跳转的条件

    2.您可以在 MSP430FR2355.h 中找到相应的定义

    我们需要确认此详细信息

    在正常情况下、我们不会进入 MOTOR_DIRECTION 状态、也不会对其进行处理。

    谢谢

    简森

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

    您好简森、

    对答案1进行查询:  代码仅在 IPDStatus = BRAKE 时(根据此段所在的 if 语句)才会输入此段。 但我们目前已将 IPDStatus 分配为 ADC_READ。 代码如何/从 ADC_READ 的 IPDStatus 移动到制动器?

    请回答其余问题。

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

    您好、Adnan、

    请参阅以下代码:

    _interrupt void ADC_ISR (void)

    谢谢。

    简森

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

    您好简森、

    请回复剩余未结点。

    Adnan。

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

    您好、Adana、

    很抱歉迟到了。

    对于该代码、电机的电角是在开环中计算的。 他的物理公式推导是速度和距离的计算公式。 我们将其加速度设置为80Hz/s 加速度与60°电角相关。 加速度越快、开环中的换向就越快。 通过转换获得相同的60°、它决定了开环中的换向速度以及加速度。

    谢谢

    简森

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

    大家好、感谢您的回答。 但我们正在寻找更详细的方法。 具体而言、我们希望使用 MSP430FR2355针对特定应用来控制电机、并且我们需要修改此代码、以便根据我们的应用来更改 PWM 周期、加速率等。 我们正在尝试了解如何计算这些常量(例如、ACCEL_60_DEENes)。 您是否能够分享基于物理的公式、 加速率与60度角的关系或转换等?

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

    尊敬的 Vinay:

    计算公式基于:

    将其转换为角度、因为60°=PI/3、可以根据计算结果获得角度值

    顺便说一下、您是哪家公司、我认为 TI 的销售团队可以为您提供一定数量的支持、以便您能够快速开展研发工作

    谢谢

    简森

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

    感谢简森! 这很有帮助!

    我认为我所在组织的某个人已经与 TI 销售部门保持联系、我认为他们提到此论坛将是获得最快响应的途径。