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.

[参考译文] TMS320F28.0041万C:从InstaSPIN ROM切换到软件库

Guru**** 2537340 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1093308/tms320f280041c-switching-from-instaspin-rom-to-software-library

部件号:TMS320F28.0041万C

您好,

我们有一个项目使用TMS320F28.0041万C上的InstaSPIN ROM,用于无传感器FOC PMSM

它最初是基于3.00 软件开发软件开发软件开发软件开发软件开发软件开发软件开发软件开发软件开发软件(MotorControl 01.00

 

现在我们想使用没有ROM代码的CPU (供应链问题…)

在MotorControl SDK v.00.00 中,有一个可链接的库来替换4.00 函数:libraries\obiters\est_lib\lib\fast_full.lib

我们使用了此库,而不是libraries\obers\fast\lib\f2.8004万x\f28004x_fast_rom_symbols_fpu32.lib</s>2.8004万

由于结构的不同,即预定 义的userParams.h中的user_Params,_fall_fast_LIB,因此有必要对应用程序代码进行小幅更改

 

但是,与ROM lib相比,软件lib中缺少以下两个函数:

void EST_setupTraj (EST_handle handle,CTRL_handle ctrlHandle,const float32_t targetValue_SPD_Hz,const float32_t targetValue_ID_A);

void EST_configureCtrl (EST_handle handle,CTRL_handle ctrlHandle);

值得注意的是,这些是est/include/est.h中唯一需要CTRL_handle的函数。 它们在est_lib/include/est.h中丢失

 

它们仅用于电机ID,因此我们用模拟器替换了它们,电机现在可以使用软件库正常运行,但电机ID尚未正常工作。

 

我们查看了以下示例:universal_motorcontrol_lab_f2.8002万x:

EST_setupTrajState()的使用方式与EST_setupTraj()类似

对于EST_configureCtrl(),没有类似的函数。  

 

问题1:是否有从ROM到链接库的迁移指南?

 

问题2:如何更换缺失的EST_功能?

 

问题3:是否对不同快速滑槽的差异或特征进行了描述?

FAST_FLASH_lib.lib

FAST_FULL,lib.lib

FAST_PMSM_lib.lib

FAST_simone_lib.lib


此致,

沃尔夫冈

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ming J iang 说:
    问题1:是否有从ROM到链接库的迁移指南?

    请参阅《通用项目和实验室用户指南》 :https://www.ti.com/lit/ug/spruj26/spruj26.pdf ,其中有一章介绍了迁移。

    Ming J iang 说:
    问题2:如何替换缺少的EST函数?

    请参阅 通用实验室示例代码。

    Ming J iang 说:
    28.0041万 -software-library"]问题3:是否有不同快速库的区别或特性说明?

    请使用 FAST_FLASH_lib.lib或 FAST_FULL lib.lib作为 通用实验室。

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

    感谢您的回复。 然而,问题仍然存在:


    问题1:您指的是哪一章?  我找不到 人告诉我如何将 现有 ROM项目迁移到可链接库。

    问题2:见上文。  

    问题3:我能否将您的答案读作"不,没有这样的描述"? 我们使用 的是"FAST_FULL lib.lib"

    再说一遍:我们已经有一个项目,其中包含大量使用ROM库的应用程序代码。
    我们不能选择基于示例代码启动新项目。 相反,我们需要将可链接库集成到现有项目中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Q128.0041万 -software-library/4060501#4060501"]Q1:406.0501万:您406.0501万您指的正是哪一章?  我找不到 一个告诉我如何将 现有 ROM项目迁移到可链接库。[/QUOT]

    您只需添加/链接基于F2.8002万x电机控制通用实验室的F2.8004万x驱动程序库文件,并根据第3章(构建自定义板)更改hal.c和hal.h中的设备配置代码。

    Ming J iang 说:
    Q3109.3308万 -software-library/4060501#4060501"]Q3:28.0041万:能否406.0501万能否阅读406.0501万阅读您的答案"否,没有这样的描述?" 我们使用 的是"FAST_FULL,lib.lib"

    您可以使用"FAST_FULL lib.lib"。

    顺便说  一下,您可以继续使用ROM库,而无需切换到软件库,因为您使用的是F28.0041万C设备。

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

    抱歉,请查看我的原始帖子:
    要点是:"现在 我们想使用没有ROM代码的CPU "。
    (即'41或'49,而不是'41C,但确切的部分无关紧要)。

    我们的问题不在hal.c中,不在设备配置中,这都解决了,电机正在运行。

    我们的问题是软件库中缺少两个ROM功能(参见上面的问题2),这可能是电机ID不能正常工作的原因:

    void EST_setupTraj(EST_Handle handle, CTRL_Handle ctrlHandle, const float32_t targetValue_spd_Hz, const float32_t targetValue_Id_A);
    void EST_configureCtrl(EST_Handle handle,CTRL_Handle ctrlHandle);
    


     如果有任何提示可以替代这些建议,我们将不胜感激。
    很可能他们只是初始化或复制EST_HANDLE对象的一些成员变量,所以这不是什么大问题。

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

    如果您要在F2.8004万x中使用软件库,请参阅通用实验室,只需更改上述驱动程序的文件(用于F2.8004万x),hal.c,hal.h和user.h。

    您不能使用软件库直接替换ROM库,因为软件库是在不使用控制器(CTRL)对象的情况下优化的。 因此,标识将使用不同的控制流调用不同的功能。

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

    您的第1段是我们已经成功完成的。

    您的第2段描述了我们需要解决的问题。
    到目前为止,我们还没有找到任何关于功能和控制流程的差异以及如何克服这些差异的文档。
    在示例中筛选数千行代码也对我们没有太大帮助。

    我们必须支持具有相同代码库的ROM和软件库。 我们的电机控制代码用于多个项目。 它相当成熟,对 原始TI代码具有多项增强功能和变通办法。 因此,我们无法选择使用示例代码或为软件库重写电机控制代码的大部分内容。

    IOW:我们需要了解ROM和软件库之间的区别,并替换缺失的部分。 这似乎只是上面提到的两个简单的功能。 在一个完美的世界里,我们可以简单地找到他们的来源。 这是否可行(NDA没有问题)?

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

    抱歉。 没有说明不同之处的文档,因为软件库用于没有快速ROM的设备,并且有一个示例项目来说明如何使用软件库。

    您可以参考通用电机实验室来支持不同的控制算法,如FAST和ESMO,但您不能同时支持ROM和软件库,您只需在项目中选择其中一个。

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

    我们不想同时支持“ROM和软件库”。
    我们希望能够通过通常的预定义宏,不同的链接程序cmd文件和构建配置来构建其中任何一种。
    到目前为止,我看不出为什么这不起作用。 事实上,它已经起作用了-除了电机ID。
    EST_lib/include/est.h甚至支持"ROM_compatible"模式(行5442 ff)。

    我们将f2.8004万x_fast_rom_symbols_fpu32.lib替换为fast_full.lib.lib,并切换了头文件。
    我们的项目已构建,但仅缺少2个功能: EST_setupTraj()和 EST_configureCtrl()
    因此,我们为它们提供存根只是为了满足链接器:tadaa - 马达 正在运行。

    我们相信,如果我们能够正确地替换 EST_setupTraj()和 EST_configureCtrl()电机ID,也会起作用。

    问题:TI是否能够为我们提供EST_setupTraj()和 EST_configureCtrl()  ROM函数的源代码?
    我猜它们非常简单,只需复制或初始化一些结构成员即可。


    BTW:我们之所以出现这种情况,只是因为TI不能为C变体提供ROM代码。 因此,如果他们至少能够帮助我们解决软件方面的问题,那就更好了。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ming J iang 说:
    问题28.0041万问题:406.3525万:TI406.3525万TI是否能够为我们提供EST_setuprom的源代码和setuptrlum(   
    我猜它们非常简单,只需复制或初始化一些结构成员即可。[/QUOT]

    抱歉。 我们不能单独提供这两个函数的源代码。 在项目中使用这两个库似乎不需要源代码。

    BTW109.3308万 -software-library/4063525#4063525"]BTW:28.0041万:我们406.3525万我们之所以406.3525万之所以出现这种情况,只是因为TI无法提供ROM代码变体。 因此,如果他们至少能帮助我们解决软件方面的问题,那就更好了。[/QUOT]

    F2.8004万xC的InstaSPIN实验室提供了使用ROM库的示例代码,而通用电机控制实验室也提供了使用软件库的示例代码。 您只需使用宏定义符号来选择要在项目中使用的库,如 通用电机控制实验所示。

    EST_setupTraj()和 EST_configureCtrl()需要使用软件库中不支持的CTRL对象来保存内存使用情况。 如 上所述,请参阅通用电机控制实验室以实施软件库。

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

    是的,我们确实"使用宏定义符号来选择要使用的库",我在我的第一篇文章(_FULL FAST_LIB预定义)中已经提到了这一点。

    我看到这不会给我们带来任何东西,我们在绕圈跑。 我必须上报此事。

    感谢您迄今为止的努力。

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

    是的,如果要使用ROM库在F2.8004万xC上实现程序代码,则必须在项目中使用预定义的符号。 或者,您可能只需要使用软件库,因为您想使用不带快速掩码ROM的F2.8004万x。  

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

    当然,这是我们所做的,也是我们想要做的。 ROM库工作正常,软件库不完全正常。 因此,此线程。