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.

[参考译文] CCS/TMS320F28069M:使用 IQ 数学库和 LAUNCHXL-F28069M 生成正弦波时出错

Guru**** 2964790 points

Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/940151/ccs-tms320f28069m-error-in-sine-wave-generation-using-iq-math-library-and-launchxl-f28069m

器件型号:TMS320F28069M
Thread 中讨论的其他器件:controlSUITE、 C2000WARE

工具/软件:Code Composer Studio

尊敬的先生/女士:

我正在尝试使用 TMS320F28069-Launch Pad 使用斜坡发生器对象(在太阳能库中提供)生成正弦波。

步骤1. 使用频率为50kHz 的 ePWM 中断创建的中断。

步骤2. 创建了斜坡生成对象。

           RAMPGEN_IQ rgen1;

步骤3. 已启动斜坡生成对象。

         RAMPGEN_IQ_init (&rgen1);

         rgen1.Freq =_iQ24 (grid_FREQ);

         rgen1.StepAngleMax =_iQ24 (1.0/INV_FREQ);

步骤4:从服务例程调用斜坡生成宏

           RAMPGEN_IQ_MACRO (rgen1);

 

步骤5:将斜坡发生器的输出分配给一个变量以查看输出(GLOBAL_Q=24)、

 

             TRI=_IQ24toF (rgen1.out);

 

##我在三变量中得到了一个适当的斜坡波形、该波形从零开始到一并重复。

步骤6. 我尝试使用数学库创建一个正常的正弦波。

             va_ref=sin (tri*2*pi);

 

##在这里、我还得到了正确的正弦波形。

 

步骤7. 现在、我尝试使用 IQ 数学库。 (GLOBAL_Q=24)、(InvSione 作为_IQ24发起)

           InvSine =_IQsincPU (rgen1.out);

 

###但在这里、我无法获得正确的正弦波形。 每当正弦波形触摸放大"1"时、就会开始出现一些失真。

 

 

###我尝试使用库中的其他工具(即 SPLL 和其他工具)、也会出现相同的失真。

  1.  数学库中正常 sin 的第一个案例

 

 

2.从工程中删除了第二个用_IQsincu 函数生成的例"math.h"

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

    尊敬的先生/女士:

    我在项目中向项目"Solar_Lib_IQlib"和"IQmath_fpu32.lib"添加了以下库文件。

    在编译上述工程时、编译已成功完成、但在控制台窗口中给出了注释。

    ________________________________________________________________

    "c:/ti/controlSUITE/libs/app_libs/solar/v1.2/IQ/lib/Solar_Lib_IQ.lib "-lIQmath_fpu32.lib

    警告:中缺少构建属性供应商部分 TI

      "../IQmath_fpu32.lib ":无法确定兼容性

    警告:中缺少构建属性供应商部分 TI

      "../IQmath_fpu32.lib ":无法确定兼容性

    警告:中缺少构建属性供应商部分 TI

      "../IQmath_fpu32.lib ":无法确定兼容性

    警告:中缺少构建属性供应商部分 TI

      "../IQmath_fpu32.lib ":无法确定兼容性

    警告:中缺少构建属性供应商部分 TI

      "../IQmath_fpu32.lib ":无法确定兼容性

    '完成的构建目标:Example_2806xEPwmTimerInt.Out'

     

    但它仍然只是在警告中显示。 但我没有得到前面注释中所述的所需正弦波形。

     

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

    现在、为了调试上述问题、我已经使用断点和 A for loop (0-100)分步执行对其进行了检查。

    根据以下公式获得的增量角波形、

    但是,获得的_IQsincu 输出不符合所需的。

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

    您好!

    看起来您使用的是不再维护的 controlSUITE。 您是否曾尝试在 C2000ware 中使用 IQMath 库?

    -Shantanu

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

    先生,

    我也尝试过 C2000库。 我编辑了 C2000库中项目"28069_IQsampleC"中给出的代码。

    代码的以下部分已包含在 main 函数中。 我使用断点执行了代码、以查看每个步骤的输出。

       I=0;
           对于(i=0;i<=100;i++)
           {
              chkdelta=_iQ24 ((float) I/100);
              chk2=_IQsinpu (chkdelta);
              va_ref=_IQ24toF (chk2);

           }

    它产生的输出与之前注释中给出的输出相同。