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.

[参考译文] LAUNCHXL-F28379D:SFRA

Guru**** 2540720 points
Other Parts Discussed in Thread: SFRA, TIDA-01606, TMS320F28379D, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1163775/launchxl-f28379d-sfra

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:SFRATIDA-01606TMS320F28379DcontrolSUITE

您好!

我将使用并修改示例解决方案 TIDA_01606用于我自己的应用、并且在连接 SFRA GUI 时遇到一些问题。 我已经完成了我的代码与 TIDA_01606解决方案的比较、代码的 SFRA 部分没有区别。 我还尝试将 SFRA GUI 连接到原始的 TIDA_01606解决方案、但也未连接。 在 GUI 中、我选择浮点和正确的 COM 端口、但不会进行连接。 是否有关于从何处开始调试以了解 GUI 为何无法连接的任何建议? 我一直遵循'scpruik4a'中的说明。

我在此附上 SFRA 代码供您参考。

//
//包含的文件
//
#include "F2837xD_DEVICE.h"
#include "F2837xD_examples.h"
#include "sfra_F32.h"
#include "sfra_gui_scicomms_driverlib.h"
//
// SFRA 相关
//
#define TINV_SFRA_ISR_FREQ 20000
#define TINV_SFRA_幅度(float32_t) 0.01
#define TINV_SFRA_FREQ_START 1.
#define TINV_SFRA_FREQ_LENGTH 30
#define TINV_SFRA_SPEED 1.
//
// SFRA 阶跃^= 10 μ s (1/每十倍频步进数(52))
//
#define TINV_SFRA_FREQ_STEP_乘 法(浮点) 1.2f
#define TINV_SFRA_GUI_SCI_BASE SCIA_BASE
#define TINV_SCI_VBUS_CLK 100000000
#define TINV_SFRA_GUI_SCI_BAUDRATE 57600
#define TINV_SFRA_GUI_SCIRX_GPIO 85
#define TINV_SFRA_GUI_SCITX_GPIO 84
#define TINV_SFRA_GUI_SCIRX_GPIO_PIN_CONFIG GPIO_85_SCIRXDA
#define TINV_SFRA_GUI_SCITX_GPIO_PIN_CONFIG GPIO_84_SCITXDA
//
//如果将以下#define 设置为1 SFRA GUI,则指示 LED 上的状态
//否则 LED 代码被忽略
//
#define TINV_SFRA_GUI_LED_INDIRECTATOR1
#define TINV_SFRA_GUI_LED_GPIO 31.
#define TINV_SFRA_GUI_LED_GPIO_PIN_CONFIG GPIO_31_GPIO31
#define TINV_SFRA_GUI_PLOT_OL_STOPENY 1.
//
// SFRA 相关变量
//
float32_t TINV_plantMagVect[TINV_SFRA_FREQ_LENGTH];
float32_t TINV_plantPhaseVect[TINV_SFRA_FREQ_LENGTH];
float32_t TINV_olMagVect[TINV_SFRA_FREQ_LENGTH];
float32_t TINV_olPhaseVect[TINV_SFRA_FREQ_LENGTH];
float32_t TINV_freqVect[TINV_SFRA_FREQ_LENGTH];
SFRA_F32 TINV_sfra1;
//
//extern 访问 ROM 中的表
//
extern long FPUsinTable[];
void TINV_setupSFRA (void)
  SFRA_F32_RESET (&TINV_sfra1);
  SFRA_F32_CONFIG (&TINV_sfra1、
          TINV_SFRA_ISR_FREQ、
          TINV_SFRA_振 幅、
          TINV_SFRA_FREQ_LENGTH、
          TINV_SFRA_FREQ_START、
          TINV_SFRA_FREQ_STEP_倍增、
          TINV_plantMagVect、
          TINV_planPhaseVect、
          TINV_olMagVect、
          TINV_olPhaseVect、
          null、
          null、
          TINV_freqVect、
          TINV_SFRA_SPEED);
  SFRA_F32_resetFreqRespArray (&TINV_sfra1);
  SFRA_F32_initFreqArrayWithLogSteps (&TINV_sfra1、
                    TINV_SFRA_FREQ_START、
                    TINV_SFRA_FREQ_STEP_乘 法);
  SFRA_GUI_CONFIG (TINV_SFRA_GUI_SCI_BASE、
          TINV_SCI_VBUS_CLK、
          TINV_SFRA_GUI_SCI_BAUDRATE、
          TINV_SFRA_GUI_SCIRX_GPIO、
          TINV_SFRA_GUI_SCIRX_GPIO_PIN_CONFIG、
          TINV_SFRA_GUI_SCITX_GPIO、
          TINV_SFRA_GUI_SCITX_GPIO_PIN_CONFIG、
          TINV_SFRA_GUI_LED_Indicator、
          TINV_SFRA_GUI_LED_GPIO、
          TINV_SFRA_GUI_LED_GPIO_PIN_CONFIG、
          TINV_sfra1 (&T)、
          TINV_SFRA_GUI_PLOT_OL_STACLY);
空 TINV_runSFRABackGroundTasks (空)
  SFRA_F32_runBackgroundTask (&TINV_sfra1);
  SFRA_GUI_runSerialHostComms (&TINV_sfra1);

 

谢谢、此致、
研发团队、
科学技术有限公司
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请参阅以下文档第7.7.3节

    https://www.ti.com/lit/an/spracb8a/spracb8a.pdf?ts=1666363470753&ref_url=https%253A%252F%252Fwww.google.com%252F

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

    你(们)好

    我遵循了文档中提供的步骤。

    此问题未解决、 并且连接 SFRA GUI 仍有一些问题。

    代码中是否有任何错误?

    请帮助我解决问题。

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

    你(们)好  

    您刚才提到、即使使用原始 TIDA-01606代码也无法连接。 您能否使用原始代码按照提供的文档进行连接? 如果它连接、您可以与代码进行比较、以找出差异所在。

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

    你(们)好

    我尝试使用原始代码,步骤与文档中列出的步骤相同。 问题仍然没有解决。

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

    你(们)好

    这可能是由于分配了错误的 GPIO。 在这个带有  tms320f28379d 控制卡的参考设计中 、SCI TX 和 RX 引脚为 GPIO 28和29。 对于 launchpad、 SCI TX 和 RX 引脚为 GPIO 42和43。

    请相应地更改 GPIO 设置、然后重试。

    #define TINV_SFRA_GUI_SCIRX_GPIO 28.
    #define TINV_SFRA_GUI_SCITX_GPIO 29

    #define TINV_SFRA_GUI_SCIRX_GPIO_PIN_CONFIG GPIO_28_SCIRXDA
    #define TINV_SFRA_GUI_SCITX_GPIO_PIN_CONFIG GPIO_29_SCITXDA

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

    你(们)好

    我已更正代码并尝试运行。 这是修改后的代码。 我已经在由 EPWM2中断触发的100Hz 频率慢环路中运行 SFRA 后台任务。 但是、一旦我尝试连接到 GUI、代码就会终止并指向中断 void PI_reserved_ISR (void)。 这是它的屏幕截图。

    /*
     * sfra.c
     *
     *  Created on: 19-Oct-2022
     *      Author: rndl6
     */
    //
    // Included Files
    //
    #include "F2837xD_device.h"
    #include "F2837xD_Examples.h"
    #include "sfra_f32.h"
    #include "sfra_gui_scicomms_driverlib.h"
    //
    // SFRA related
    //
    
    #define TINV_SFRA_ISR_FREQ 20000
    #define TINV_SFRA_AMPLITUDE (float32_t)0.01
    #define TINV_SFRA_FREQ_START 1
    #define TINV_SFRA_FREQ_LENGTH 30
    #define TINV_SFRA_SPEED 1
    //
    // SFRA step Multiply = 10^(1/No of steps per decade(52))
    //
    #define TINV_SFRA_FREQ_STEP_MULTIPLY (float)1.2f
    
    #define TINV_SFRA_GUI_SCI_BASE SCIA_BASE
    #define TINV_SCI_VBUS_CLK 100000000
    #define TINV_SFRA_GUI_SCI_BAUDRATE 57600
    #define TINV_SFRA_GUI_SCIRX_GPIO 43
    #define TINV_SFRA_GUI_SCITX_GPIO 42
    #define TINV_SFRA_GUI_SCIRX_GPIO_PIN_CONFIG GPIO_43_SCIRXDA
    #define TINV_SFRA_GUI_SCITX_GPIO_PIN_CONFIG GPIO_42_SCITXDA
    //
    // if the following #define is set to 1 SFRA GUI indicates status on an LED
    // otherwise LED code is ignored
    //
    #define TINV_SFRA_GUI_LED_INDICATOR 1
    #define TINV_SFRA_GUI_LED_GPIO 31
    #define TINV_SFRA_GUI_LED_GPIO_PIN_CONFIG GPIO_31_GPIO31
    
    #define TINV_SFRA_GUI_PLOT_OL_PLANT 1
    //
    // SFRA Related Variables
    //
    float32_t TINV_plantMagVect[TINV_SFRA_FREQ_LENGTH];
    float32_t TINV_plantPhaseVect[TINV_SFRA_FREQ_LENGTH];
    float32_t TINV_olMagVect[TINV_SFRA_FREQ_LENGTH];
    float32_t TINV_olPhaseVect[TINV_SFRA_FREQ_LENGTH];
    float32_t TINV_freqVect[TINV_SFRA_FREQ_LENGTH];
    SFRA_F32 TINV_sfra1;
    //
    //extern to access tables in ROM
    //
    extern long FPUsinTable[];
    
    
    void TINV_setupSFRA(void)
    {
        SFRA_F32_reset(&TINV_sfra1);
        SFRA_F32_config(&TINV_sfra1,
                        TINV_SFRA_ISR_FREQ,
                        TINV_SFRA_AMPLITUDE,
                        TINV_SFRA_FREQ_LENGTH,
                        TINV_SFRA_FREQ_START,
                        TINV_SFRA_FREQ_STEP_MULTIPLY,
                        TINV_plantMagVect,
                        TINV_plantPhaseVect,
                        TINV_olMagVect,
                        TINV_olPhaseVect,
                        NULL,
                        NULL,
                        TINV_freqVect,
                        TINV_SFRA_SPEED);
    
        SFRA_F32_resetFreqRespArray(&TINV_sfra1);
    
        SFRA_F32_initFreqArrayWithLogSteps(&TINV_sfra1,
                                           TINV_SFRA_FREQ_START,
                                           TINV_SFRA_FREQ_STEP_MULTIPLY);
    
        SFRA_GUI_config(TINV_SFRA_GUI_SCI_BASE,
                        TINV_SCI_VBUS_CLK,
                        TINV_SFRA_GUI_SCI_BAUDRATE,
                        TINV_SFRA_GUI_SCIRX_GPIO,
                        TINV_SFRA_GUI_SCIRX_GPIO_PIN_CONFIG,
                        TINV_SFRA_GUI_SCITX_GPIO,
                        TINV_SFRA_GUI_SCITX_GPIO_PIN_CONFIG,
                        TINV_SFRA_GUI_LED_INDICATOR,
                        TINV_SFRA_GUI_LED_GPIO,
                        TINV_SFRA_GUI_LED_GPIO_PIN_CONFIG,
                       &TINV_sfra1,
                       TINV_SFRA_GUI_PLOT_OL_PLANT);
    
    }
    
    
    void TINV_runSFRABackGroundTasks(void)
    {
        SFRA_F32_runBackgroundTask(&TINV_sfra1);
        SFRA_GUI_runSerialHostComms(&TINV_sfra1);
    }
    

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

    您好!

    在中断中放置 SFRA 后台任务时、很难判断它为什么会停止。 您是否可以在 参考设计之后尝试将此任务置于基于计时器的任务(A0)中?  

    谢谢、

    Qing  

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

    您好!

    我尝试在基于计时器的任务中运行 SFRA 后台任务、但问题未得到解决。

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

    您可以尝试参考设计代码吗? 如果工作正常、您能否比较您的代码和参考设计代码之间的 SFRA 代码差异?  

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

    只需确认更改 GPIO 设置后、您可以连接 SFRA 并使用参考设计代码运行它、对吧?

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

    否、即使使用参考代码也不会进行连接。

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

    这是否意味着您可以使用自己的代码以稳定的方式连接 SFRA、并更正 GPIO 引脚。 但是、您无法将 SFRA 与参考代码连接、更正了 GPIO 引脚?

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

    我自己的代码以及 TI 提供的参考代码不会连接 SFRA GUI。 在这两种情况下、我都根据 LAUNCHXL F28379D 数据表更正了 GPIO 引脚。 根据数据 lanchpad 数据表、 SCI TX 和 RX 引脚为 GPIO 42和43。

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

    您好!

    我还尝试了 路径"C:\ti\controlSUITE\libs\app_libs\motor_control\libs\fcl_SFRA\v01_00_00\examples"中的现有 TI 代码"FCL_SFRA" 、以检查 SFRA GUI 连接性。

    我选择构建级别为'FCL_level6'并将程序调试到 MCU 中。 然后,我启动了 SFRA GUI,选择了相应的 COM 端口、Baurd 速率、数学模式。

    我没有更改代码、但没有与 GUI 建立连接。 我甚至尝试过其他 PC、但问题仍然相同。您能否向我们的时间线提供 WebEx 呼叫支持。

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

    您似乎 已经在与 TI 内部人员谈论这一点。 让我们看看如何从那里提供支持。