Other Parts Discussed in Thread: SFRA
部件号: TMS320F28386D
主题中讨论的其他器件: SFRA、 C2000WARE
您好:
我尝试在 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 对象的数组指针是否正确指向存放数据的数组。

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