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.

[参考译文] TMS320F28386D:SFRA 不工作(幅度矢量未填充)

Guru**** 2815985 points

Other Parts Discussed in Thread: SFRA

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1594084/tms320f28386d-sfra-does-not-work-magnitude-vector-not-filled

部件号: TMS320F28386D
主题中讨论的其他器件: SFRAC2000WARE

您好:

我尝试在 F28386 微控制器上运行 SFRA 采集、但无法正常工作。 我在其他微控制器和工程(具有 32 位 FPU)中运行 SFRA 有经验、因此我认为这几乎相同、但我遇到了一些问题。

若要在此微控制器上测试 SFRA、我将执行以下操作:

    test_value = SFRA_F32_inject(0);
    test_output = 100*test_value;
    SFRA_F32_collect(&test_value,&test_output);

所以、我期望 SFRA 扫描的结果具有 40dB 的增益和 0 的相位。  

实际情况是、当我运行扫描时、 我只能在调试器中看到相位数组正在更新、但幅度数组保持为 0

运行 SFRA 扫描时、我可以看到频率索引正在正确增加、如果插入调试点、我可以看到 TEST_VALUE 和 TEST_OUTPUT 都被扰动正确激励。  

有关如何实现 SFRA 库的更多详细信息:

  • 由于是 F28386D、因此我直接与进行链接 “sfra_F64_tmu_eabi.lib"</s>“ 软件库
  • 我会在链接器中正确放置 sfra 段:

/* SFRA library data */
   SFRA_F32_Data: > RAMGS5_13, PAGE = 1, ALIGN = 64

  • 我正在正确地初始化 SFRA:
void sfra_reset(void)
{
    SFRA_F32_reset(&SFRA.object);

    SFRA_F32_config(&SFRA.object,
                    SFRA_IV.freq_routine,
                    SFRA_IV.amplitud,
                    SFRA_FREQ_LENGTH,
                    SFRA_IV.freq_start,
                    SFRA_FREQ_STEP_MULT,
                    SFRA_IV.plant_Mag,
                    SFRA_IV.plant_Phase,
                    SFRA_IV.OL_Mag,
                    SFRA_IV.OL_Phase,
                    SFRA_IV.CL_Mag,
                    SFRA_IV.CL_Phase,
                    SFRA_IV.freq,
                    1.0);

    SFRA_F32_resetFreqRespArray(&SFRA.object);

    SFRA_F32_initFreqArrayWithLogSteps(&SFRA.object,SFRA_IV.freq_start,SFRA_FREQ_STEP_MULT);
}
  • 我还以 1 毫秒的周期调用 SFRA_F32_runBackgroundTask 函数
  • 我在以 6KHz 运行的 ISR 中调用 SFRA_F32_inject/collect 函数。
  • 我已经检查 SFRA 对象的数组指针是否正确指向存放数据的数组。

3ce37b8d-7ab2-4d57-a031-0b1a0a9618b9.png

我在做什么? SFRA 是否与该微控制器不兼容、或者是否缺少任何东西?

非常感谢。

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

    大家好、TI 有人能帮忙吗? 非常感谢。

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

    Jorge

    请问您提供的小信号频率注入是什么?

    根据代码、您将 SFRA_F32_inject 函数参数值提供为“0",“,这、这表示上图中 Ref 为“0"。“。

    小信号频率注入振幅将等于 SFRA_Amplitude。  

    那么、您是否可以提供配置的 SFRA_Amplitude?  

    您可以参考“C2000 C2000TM Ware_Digital 频率响应分析器 (SFRA) 库用户指南(修订版 A)“中的“C2000 C2000TM 软件频率响应分析器 (SFRA) 库用户指南“(C2000Tm)中的“C2000WS.Power_SDK_5_xxx\libraries\sfra\examples"以“以了解更详细的功能、也可以参考“3.2 “部分

    此致、

    Shashank

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

    您好、Shashank、

    SFRA 注入的振幅设置为 0.01。 由于精度方面、在调试器中、它可以看到为 0.009999…… 这可以在我发布的调试器映像中看到。

    我期望基准为零是正确的、因此激励信号将就是 SFRA 注入信号。  

    我仍然不明白什么可能会导致幅度矢量未填充...

    我在其他 MCU(例如 F28335 或 F28004)上没有此问题  

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

    Jorge

    您是否可以尝试添加“sfra_F32_tmu_eabi.lib"(“(应该(应该适用)。
    您能否提供作为 SFRA_F32_Config 输入提供的所有定义来帮助进行调试?

    谢谢、

    Shashank