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.

[参考译文] TMS320F280025C:TMS320F280025C

Guru**** 1810550 points
Other Parts Discussed in Thread: TMS320F280025C, AFE031, C2000WARE, SFRA, LAUNCHXL-F280049C, BOOSTXL-AFE031-DF1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/990015/tms320f280025c-tms320f280025c

器件型号:TMS320F280025C
主题中讨论的其他器件: AFE031C2000WARESFRALAUNCHXL-F280049CBOOSTXL-AFE031-DF1

我的项目中有很大的问题。

我将在 TMS320F280025C 上为我自己的降压转换器编写一个以 C2000数字电源降压转换器 BoosterPack 为基准的代码。 它运行得很好。 我将使用 TI PLC IC AFE031实现 PLC 通信、并使用 TIDA-60001中的参考代码作为参考。 我需要在主程序中包含文件 FSK_corr_detect.lib、fsk_corr_detector.h 和 fsk_packetization.h

我复制了项目目录下的这些文件、并在主项目中添加了以下代码

#include
#include "FSK_corr_detector .h"
#include "fsk_packeting.h"

但是、我在下面看到了一条警告消息

警告#10373-D:库"../FSK_corr_detect.lib"包含与 ELF 输出文件不兼容的 TI-COFF 目标文件。  确保您使用的是正确的库。
警告#10373-D:库"../FSK_corr_detect.lib"包含与 ELF 输出文件不兼容的 TI-COFF 目标文件。  确保您使用的是正确的库。

请建议如何解决。

BR

HK Woo

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

    HK、

    感谢您访问 E2E 论坛。  我知道您需要 EABI 格式的 FSK 库、对吧?  让我与代码作者核实一下、以确定何时可以获得与您共享的 EABI 兼容 LIB。  我将于明天回复状态。

    最棒的

    Matthew

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

    你好、Matthew

    如果没有与 EABI 兼容的库文件。 解决这个问题?

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

    我将要求将 LIB 重新编译为 EABI 格式。  我将通过 Tomm 告诉您一个时间表。

    最棒的

    Matthew

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

    尊敬的 Mattew:

    非常感谢你的帮助。 请与您联系、我需要尽快拥有 EABI 库。 这会影响我们的样品交付计划。

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

    是否有更新?

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

    我们仍在努力了解将其从 COFF 转换为 EABI 的问题、以及是否需要进行测试以验证新编译是否正常工作。

    最棒的
    Matthew

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

    挂起、

    请尝试附加的、它是为 EABI 编译的。  我认为可以进行一些其他优化、但希望让您先尝试一下。

    最棒的

    Matthewe2e.ti.com/.../fsk_5F00_corr_5F00_detect_5F00_eabi.lib

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

    你好、Matthew

    很抱歉、由于是国庆节、我尝试测试了所附的库。 请找到我的测试结果。

    1.我在下面添加了该库并将其复制到我的项目目录中并进行了编译。 这不是错误消息
    #include "fsk_packeting.h"
    #include "FSK_corr_detector .h"

    2.使用项目1配置并将 HAL_afe031_rxEnable()添加到 main.c

    出现如下错误消息

    "./device/28002x_generic_flash_lnk.cmd "、第78行:警告#10068-D:无匹配部分
     
     未定义          的首次引用
     符号                     
     ------           --------
     HAL_afe031_rxEnable ./buck_main.obj
     
    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未生成"Mercury 降压.out"
    gmake.1]:***[Mercury 降压.out]错误1.
    gmake:***[全部]错误2.
    Makefile:167:目标'All'的配方失败

    然后配置项目属性-> CCS Build -> C2000 Linker ->文件搜索路径的属性、然后添加文件"FSK_corr_detect.lib"(我已重命名您提供的文件)。 仍然收到错误消息

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

    挂起、

    请查看 C2000 Ware C:\ti\c2000Ware_3_04_00_00\device_support\f28004x\examples\boostxl_afeRx_f28004x_031中的 boostxl_afeRx_f28004x_031中的 boostxl_afeRx_Rx 项目、因为需要添加 afe031_config.h 和 hal_afe031.h 等其他包含项。  您的本地项目也需要包括这些项目。

    最棒的
    Matthew

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

    你好、Matthew

    我仍然会遇到如下错误


    ****项目 Mercury 降压的配置版本构建****

    "C:\\ti\\ccs1011\\ccs\\utils\\bin\\gmake"-k -j 8 all -O
     
    编译文件:"../buck_main.c"
    调用:C2000编译器
    "c:/ti/ccs1011/ccs/tools/compiler/ti-cgt-c2000_20.2.4.LTS/bin/cl2000 /ti/c2000/C2000Ware_3_04_00_00/libraries/math/IQmath/c28/include /ti/c2000/C2000Ware_3_04_00_00/driverlib/f28002x/driverlib /Users/hkwoo/workspace_v10/Mercury_Buck /Users/hkwoo/workspace_v10/Mercury_Buck/libraries/DCL -v28 -ml -mt --float_support=fpu32 --idiv_support=idiv0 --tmu_support=tmu0 -O3 --opt_for_speed=5 --fp_mode=relaxed --include_path="C:cn_path="C:c="C:c="_support_buck_buck_bulation="-c="-ce-c="c="_c="_buck_buck_buck_buck_buck_buck_buck_band="-c="-c="-c="-c="-c="-c="-c="-c="-c="-c="-c="-c="-c="-c="-c="_bot_bot_bot_bot_bot_bot_bot_bot_bot_bot_bot_bot_bot_bot_bot_bot_c="-c="-c="-c="-c="-c="-c="-c="-c="-cn"/ti/c2000/C2000Ware_3_04_00_00 -c /Users/hkwoo/workspace_v10/Mercury_Buck/RELEASE/syscfg /ti/ccs1011/ccs/tools/compiler/ti-cgt-c2000_20.2.4.LTS/include /Users/hkwoo/workspace_v10/Mercury_Buck/libraries/SFO /Users/hkwoo/workspace_v10/Mercury_Buck/libraries/sfra /Users/hkwoo/workspace_v10/Mercury_Buck/device /ti/c2000/C2000Ware_3_04_00_00/device_support/f28002x/headers/include /ti/c2000/C2000Ware_3_04_00_00/device_support/f28002x/common/include  
     
    >>编译失败
    subdir_rules.mk:9:目标'buck_main.obj'的配方失败
    "C:\ti\c2000Ware_3_04_00_00\device_support\f28002x\headers\include\f28002x_LIN.h"、第238行:错误#41:预期的标识符
    "C:\ti\c2000Ware_3_04_00_00\device_support\f28002x\headers\include\f28002x_LIN.h"、第238行:错误#80:预期类型说明符
    "C:\ti\c2000Ware_3_04_00_00\device_support\f28002x\headers\include\f28002x_LIN.h"、第238行:错误#170:此处不允许函数类型
    "C:\ti\c2000Ware_3_04_00_00\device_support\f28002x\headers\include\f28002x_LIN.h"、第238行:警告#109-D:长度为1的带符号位字段
    "C:\ti\c2000Ware_3_04_00_00\device_support\f28002x\common\include\f28002x_global原 型 s.h"、第92行:错误#41:预期标识符
    "C:\ti\c2000Ware_3_04_00_00\device_support\f28002x\common\include\f28002x_globalpinations.h"、第92行:错误#80:期望使用类型说明符
    "C:\ti\c2000Ware_3_04_00_00\device_support\f28002x\common\include\f28002x_global原 型 s.h"、第92行:错误#91:不允许函数返回函数
    "./buck_main.c"、第83行:警告#179-D:变量"dummy_counter"已声明但从未引用
    在"../buck_main.c"的编译中检测到6个错误。

    请帮帮我。

    谢谢

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

    挂起、

    很抱歉、答复延迟、我不确定编译器为什么会抛出这些错误、因为第41行是每个文件中的第一行代码、基本上是#ifndef 语句。  我需要与其他人核实一下他们是否曾看到过这种情况。

    最棒的

    Matthew

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

    是否有更新?

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

    挂起、

    我认为正在进行 driverLIB 和位字段类型样式的混合。  C2000Ware 中是否有一个基本项目可供您开始进行当前项目?  

    也许是一个基本问题、但您是否在系统中使用 LIN 模块?

    最棒的
    Matthew

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

    你好、Matthew

    我在使用以下消息进行编译时仍然发现问题

    ****项目 Mercury 降压的配置版本构建****

    "C:\\ti\\ccs1011\\ccs\\utils\\bin\\gmake"-k -j 8 all -O
     
    构建目标:"Mercury 降压.out"
    调用:C2000链接器
    "c:/ti/ccs1011/ccs/tools/compiler/ti-cgt-c2000_20.2.4.LTS/bin/cl2000 "-v28 -ml -mt --float_support=fpu32 -idiv_support=idiv0 --tmu_support=tmu0 -O3 -opt_for_speed=5 -fp_mode=relaxed -advice:performance=tid_ecu_support=idu_-define=g_off-define_error-c=g_supervature=100_model_super-define=-cep-guide-guide-sep-c=g=g=g_off-guide-display_subsepsep-guide-sep-guide-s=-c=100_off-c=g=g_off-display_off-guidepsepsep-guide-sep-c=g=g=g=g_off-display_off-display-guide-subsep-display abi=eabi --cla_signed_compare_workariter=on -k --asm_listing -z -m"Mercury Buck.map"--heap_size=0x100 --stack_size=0x200 --warn_sections -i"C:/ti/ccs1011/ccs/tools/compiler/ti-cgt-c2000_20.2.4.LTS/lib /Users/hkwoo/workspace_v10/Mercury_Buck/device/driverlib --i"C:/Users/hkwoo/workspace_v10/Mercury_Buck/libraries/sfra /Users/hkwoo/workspace_v10/Mercury_Buck/libraries/SFO --i"c:/Users/hkwoo/workspace_v10/Mercury_Buck/libraries/FPUfastRTS /ti/ccs1011/ccs/tools/compiler/ti-cgt-c2000_20.2.4.LTS/include -linep_code.xml"-link_clus_cluse_link_cluse_display_cluse_ine_ine_ine_link_cluse-xml-excluse_link_cluse_ine_link_cluse_ine_ine_ine_inue_inue_link-xml"-xml-link_clus_clus_cluse_link_clus_ide-exclus.xml-ine_ine_link_in rom_model -o "Mercury Buck-out""./buck.obj ""./buck_hal.obj "./buck_main.obj ""./buck_user.obj ""./device/device.obj /libraries/sfra/sfra_gui_scicomms_driverlib.obj /libraries/FPUfastRTS/rts2800_fpu32_fast_supplement_eabi.lib "./device/f28002x_codestartbranch.obj "./libraries/DCL/DCL_error.obj /device/driverlib/driverlib.lib /libraries/sfra/sfra_f32_tmu_eabi.lib ".fsk_corr_detect.lib""./device/28002x_generic_flash_lnk.cmd /libraries/SFO/SFO_v8_fpu_lib_build_c28_driverlib_eabi.lib ".pru_lib_lib_32.rabi_lib_lib_lib_lib_pru.dli_lib_lib_lib_lib_lib_lib_lib.32.rabi.r3210.pru.dli_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib.32.t.dli_lib_lib_lib_lib_lib.  
     
    >>编译失败
    Makefile 170:目标'merther_buck.out'的配置失败
    "./device/28002x_generic_flash_lnk.cmd "、第78行:警告#10068-D:无匹配部分
     
     未定义            的首次引用
     符号                       
     ------             --------
     fsk_corr_detector _run ./buck_main.obj
     
    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未生成"Mercury 降压.out"
    gmake.1]:***[Mercury 降压.out]错误1.
    Makefile:166:目标“全部”的配方失败
    gmake:***[全部]错误2.

    ****构建完成****

     找不到 FSK_corr_deter_run 函数。

    我已将这些头文件和 FSK_corr_detect.lib 添加到工程的根目录中。

    #include
    #include
    #include

    请建议如何解决。

    问题的相关信息。 我当前的项目是使用 TI 数字降压转换器。 请参阅以下屏幕截图。

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

    是否有更新?

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

    挂起、

    我在将 EABI 添加到 RX 项目中时会看到同样的问题。  我需要引入其他一些函数、我不确定如果未正确定义该函数、归档器为什么会构建 LIB 而不会出现错误(我在源文件中看到该函数)。

    最棒的

    Matthew

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

    挂起、

    我想我已解决这个问题、对于从 COFF 到 EABI 的汇编函数、似乎有一个不同的输出(我需要对此进行更多研究)。  请尝试附加的(您可以根据需要重新命名)。

    最棒的

    Matthewe2e.ti.com/.../fsk_5F00_corr_5F00_detect_5F00_lib_5F00_eabi.lib

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

    还可以。 但是、我将对如何将演示代码转换为我的项目有一些疑问。 例如、我希望在项目中使用以下代码。

       uint16_t TempPIEIER;
       TempPIEIER = PieCtrlRegs.PIEIER2.all;
       IER |= M_INT1;
       IER &= MINT1;                        //设置"全局"优先级
       PieCtrlRegs.PIEIER2.all &= MG1_1;    //设置“组”优先级
       PieCtrlRegs.PIEACK.ALL = 0xFFFF;     //启用 PIE 中断
       asm ("      NOP");                   //等待一个周期
       EINT;      

    但是,它始终提示“PieCtrlRegs”未定义。 请告知如何使用

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

    你好、Matthew

    坏消息、发现库仍然有问题。 我在为找到的586Hz ISR 编写代码时发现以下错误

     未定义                的首次引用                                         
     符号                                                                    
     ------                 --------                                         
     ePWM_clearInterruptStatus ./buck_main.obj                                          
     markCosineSum            ./FSK_corr_detect_lib_eabi.lib
     markSineSum              ./FSK_corr_detect_lib_eabi.lib
     MarkSummared Squ.../FSK_corr_detect_lib_eabi.lib            
     spaceCosineSum           ./FSK_corr_detect_lib_eabi.lib
     spaceSineSum             ./FSK_corr_detect_lib_eabi.lib
     spaceSquared .../FSK_corr_detect_lib_eabi.lib           

    我的代码如下:

    #pragma CODE_SECTION (bit_detect_isr、".TI.ramfunc");
    _interrupt void bit_detect_ISR (void)

       EALLOW;

       //
       //启用 ADC ISR 嵌套
       //
       /*
       uint16_t TempPIEIER;
       TempPIEIER = PieCtrlRegs.PIEIER2.all;
       IER |= M_INT1;
       IER &= MINT1;                        //设置"全局"优先级
       PieCtrlRegs.PIEIER2.all &= MG1_1;    //设置“组”优先级
       PieCtrlRegs.PIEACK.ALL = 0xFFFF;     //启用 PIE 中断
       asm ("      NOP");                   //等待一个周期
       EINT;                                //清除 INTM 以启用中断
       *
       volatile uint16_t temPIEIER = HWREGH (PIECTRL_BASE + PIE_O_IER2);
       IER |= M_INT1;
       IER &= MINT1;
       //
       //运行 FSK 相关性检测器函数
       //
       FSK_corr_Detector _ OverSampl_run (&FSK_struct1);

       //
       //查看是否检测到标记或空格位
       //
       if (fsk_struct1.bit_detected!= 0)
       {
           rxMessage[message_index+]= FSK_struct1.bit_detected;//将检测到的位保存在消息缓冲区中

           FSK_struct1.bit_detected = 0;//清除检测到的位成员

           //
           //在消息缓冲器已满时设置标志
           //
           if (RX_MESSAGE_SIZE <= MESSAGE_INDEX)
           {
               MESSAGE_INDEX = 0;
               msgFull = 1;
           }
       }

       //
       //清除 EPwm2的 INT 标志
       //
       //EPwm2Regs.ETCLR.bit.INT = 1;
       ePWM_clearInterruptStatus (PLC_BITDECION_ePWM_base、ADC_INT_NUMBER2);

       //
       //确认此中断以接收来自组3的更多中断
       //
       //PieCtrlRegs.PIEACX.ALL = PIEACK_Group3;
       INTERRUPT_clearACKGROUP (INTERRUPT_ACK_Group3);

       //
       //恢复为 ADC ISR 嵌套保存的寄存器
       //
       Dint;
       //PieCtrlRegs.PIEIER2.all = temPIEIER;
       HWREGH (PIECTRL_BASE + PIE_O_IER2)= TEMPIEIER;

       //
       //切换 GPIO 引脚以测量频率、进行调试
       //
       //GpioDataRegs.GPCTOGGL.bit.GPIO65=1;// LP 引脚47

    其他问题。 它是 TI 演示代码、使用"EPwm2Regs.ETCLR.bit.INT=1;"来清除标志。 但是、我找不到 driverlib 命令来执行它。 请建议如何操作。

    BR

    HK Woo

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

    HK、

    我将需要更多的时间来进行调试;我已经将新的 EABI 库添加到 F28004x 的 Rx CCS 工程中(在 C2000Ware 中)、并且它是毫无问题地编译的。  让我看看我是否可以找到这些函数以及它们是否仍然填充了"_"。

    也会研究您的其他问题。  我将在美国中部时间下午再次进行更新。

    最棒的
    Matthew

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

    Matthew

    感谢您的回复。 我的项目正在运行。 我的压力很高。 请帮助修复它并提供稳定的库版本。

    我们很高兴听到 TI 将在 driverlib 中而不是 bitfield 中包含演示代码。 用户使用它更简单、因为根据我的理解、TI 建议使用 driverlib 而不是 bitfield。

    如果可能、请提前与我分享 driverlib 中的演示代码。 无需等待库。

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

    HK、

    我发现了您在库中讨论的问题。  我要附加一个更正版本、该版本应解决符号不匹配问题。

    对于中断/PIE、我将查看以下示例:  C:\ti\c2000Ware_3_04_00_00\driverlib\f28002x\examples\interrupt  

    在以下  位置的驱动程序库 interrupt.c 中定义了这些函数:C:\ti\c2000Ware_3_04_00_00\driverlib\f28002x\driverlib

    对于 ETCLR、我相信这个命令就是您想要 的 ePWM_clearEventTriggerInterruptFlag (myEPWM2_base);

    最棒的
    Me2e.ti.com/.../5861.fsk_5F00_corr_5F00_detect_5F00_lib_5F00_eabi.libatthew

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

    Matthew

    我收到了如下警告

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

    HK、

    您需要在.cmd 文件中添加一行、并将我定义的 RAM 块#替换为具有以下空间的任何段:  如果您使用的是我们示例中的通用.cmd、则可以使用下面的代码、前提是有足够的空间(如果没有、链接器将告知您)。

    FSK_corr_lib_data:> RAMLS4567  page = 1/*针对 lib 数据的 RAM 块*/

    最棒的

    Matthew

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

    你好、Matthew

    我对 ISR 有疑问、下面是演示代码
    #pragma CODE_SECTION (epwm2_ISR、".TI.ramfunc");
    _interrupt void epwm2_ISR (void)

       EALLOW;

       //
       //启用 ADC ISR 嵌套
       //
       uint16_t TempPIEIER;
       TempPIEIER = PieCtrlRegs.PIEIER2.all;
       IER |= M_INT1;
       IER &= MINT1;                        //设置"全局"优先级
       PieCtrlRegs.PIEIER2.all &= MG1_1;    //设置“组”优先级
       PieCtrlRegs.PIEACK.ALL = 0xFFFF;     //启用 PIE 中断
       asm ("      NOP");                   //等待一个周期
       EINT;                                //清除 INTM 以启用中断

    我将 EPWM3计时器用于 ISR"ADC_SAMPLE"_SIGNAL、将 EPWM4计时器用于 ISR"epwm2_ISR"。

    由于 EPWM4正在使用、我是否应该将下面的红色参数更改为其他值

       IER |= M_INT1
       IER &= MINT1;                        //设置"全局"优先级
       PieCtrlRegs.PIEIER2.all &= MG1_1;    //设置“组”优先级

    2.下面是我的.cmd 的内容,我们建议如何在  其中添加"FSK_corr_lib_data:>RAMLS4567 page = 1/*针对 lib 数据的 RAM 块*/。

    存储器

      开始             :origin = 0x080000,length = 0x000002
      BOOT_RSVD      :origin = 0x00000002,length = 0x00000126
      RAMM0             :origin = 0x00000128,length = 0x000002D8
      RAMM1           :origin = 0x00000400,length = 0x000003F8    //片上 RAM 块 M1 *
    // RAMM1_RSVD      :origin = 0x000007F8,length = 0x00000008 //根据勘误咨询“Memory:Prepetching Beyond valid Memory”(内存:超过有效内存的预取),保留并不用于代码*/

    /* RAMLS4          :origin = 0x0000A000,length = 0x00000800
      RAMLS5          :origin = 0x0000A800,length = 0x00000800
      RAMLS6          :origin = 0x0000B000、length = 0x00000800
      RAMLS7          :origin = 0x0000B800,length = 0x00000800*/

      /*合并所有 LS RAM */
      RAMLS4567       :origin = 0x0000A000,length = 0x00002000
      RAMGS0          :origin = 0x0000C000,length = 0x000007F8
    // RAMGS0_RSVD     :origin = 0x0000C7F8,length = 0x00000008 //保留并不用于根据勘误咨询“内存:预取超出有效内存”的代码*/


    // FLASHBANK1      :origin = 0x00080000,length = 0x0000FFF0
    // flash_bank1_RSVD:origin = 0x0008FFF0,length = 0x00000010 //保留并不用于根据勘误咨询“Memory:pretching Beyond valid Memory”(内存:有效内存之外的预取)*/的代码
      BootROM         :origin = 0x003F0000,length = 0x00008000
      BootROM_EXT     :origin = 0x003F8000,length = 0x00007FC0
      复位           :origin = 0x003FFFC0,length = 0x00000002
      /*闪存扇区*/
      /*组0 */
      FLASH_BANK0_SEC0 :origin = 0x080002、length = 0x000FFE   //片上闪存*
      FLASH_BANK0_SEC1 :origin = 0x081000、length = 0x001000   //片上闪存*
      FLASH_BANK0_sec2 :origin = 0x082000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC3 :origin = 0x083000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC4 :origin = 0x084000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC5 :origin = 0x085000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC6 :origin = 0x086000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC7 :origin = 0x087000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC8_9_10 :origin = 0x088000、length = 0x003000   //片上闪存*
      //FLASH_BANK0_SEC8 :origin = 0x088000、length = 0x001000   //片上闪存*
      //flash_BANK0_SEC9 :origin = 0x089000,length = 0x001000   //片上闪存*
      //FLASH_BANK0_SEC8_9:origin = 0x088000、length = 0x002000   //片上闪存*
      //flash_BANK0_SEC10:origin = 0x08A000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC11:origin = 0x08B000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC12:origin = 0x08C000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC13:origin = 0x08D000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC14:origin = 0x08E000、length = 0x001000   //片上闪存*
      FLASH_BANK0_SEC15:origin = 0x08F000、length = 0x000FF0   //片上闪存*
    // flash_BANK0_SEC15_RSVD    :origin = 0x08FFF0,length = 0x000010 //根据勘误咨询“Memory: prepetching Beyond valid Memory”(内存:超出有效内存的预取),保留代码且不用于代码*/




    部分

      codestart       :>开始,align (8)
      .text           :>> flash_BANK0_sec2 | flash_BANK0_SEC3 | flash_BANK0_SEC4 | flash_BANK0_SEC5、  align (8)
      .cinit          :> flash_BANK0_SEC1, align (8)
      .switch         :> FLASH_BANK0_SEC1, ALIGN (8)
      .reset          :> reset,                 type = DSECT /* not used,*/

      .stack          :> RAMM1

      init_array     :> flash_BANK0_SEC1, align (8)
      .bss            :> RAMLS4567
      .bss:输出     :> RAMLS4567
      .bss:CIO        :>RAMGS0
      .const          :> FLASH_BANK0_SEC1、 ALIGN (8)
      .data           :> RAMLS4567
      .sysmem         :> RAMLS4567

       RAMS0:> RAMGS0

      /* 分配 IQ 数学区域:*/
      IQMath          :> RAMLS4567
      IQmathTables    :> RAMLS4567

      组
      {
          .TI.ramfunc
          {
              l sfra_F32_TMU_eabi.lib
          }
          ramfuncs

      }LOAD = FLASH_BANK0_SEC6、
            运行= RAMLS4567、
            Load_start (RamfuncsLoadStart)、
            load_size (RamfuncsLoadSize)、
            Load_End (RamfuncsLoadEnd)、
            RUN_START (RamfuncsRunStart)、
            run_size (RamfuncsRunSize)、
            RUN_END (RamfuncsRunEnd)、
            对齐(4)

    /*
     .TI.ramfunc     :load = flash_BANK0_SEC1,
                     运行= RAMGS0、
                     Load_start (RamfuncsLoadStart)、
                     load_size (RamfuncsLoadSize)、
                     Load_End (RamfuncsLoadEnd)、
                     RUN_START (RamfuncsRunStart)、
                     run_size (RamfuncsRunSize)、
                     RUN_END (RamfuncsRunEnd)、
                     对齐(8)
    *
       SFRA_F32_Data   :> RAMLS4567,ALIGN = 64

       FPUmathTables   :> FLASH_BANK0_SEC11


       //.scratchpad     :> RAMLS4567
       //controlVariables:> RAMLS4567

       组
       {
           isrcodefuncs
           Dclfuncs
       }   LOAD = FLASH_BANK0_SEC8_9_10、
            运行= RAMLS4567、
            load_start (isrcodefuncsLoadStart)、
            load_size (isrcodestfuncsLoadSize)、
            load_end (isrcodefuncsLoadEnd)、
            run_start (isrcodefuncsRunStart)、
            run_size (isrcodefuncsRunSize)、
            run_end (isrcodefuncsRunEnd)、
            对齐(4)





    /*
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //文件结束。
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    *

    BR

    HK Woo

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

    使用更新的库、编译期间未找到错误。 但是、我无法在 rx_message 变量上获得始终为0的 PLC 消息。 我使用示波器检查连接到 ADCC 模块的 PLC 信号。 硬件信号正常。 我检查 了作为 PLC 信号采样值的可变"输入"的值、发现它始终随着 PLC 信号从0.6更改为1.6V。 这意味着 ADC 采样正常并确认其运行@ 300KHz。 我已检查586KHz ISR 是否也在运行。 我尝试将 FSK_bit_detection_threshold 的不同值从0.1更改为0.9。 仍然不起作用。我不确定该库是否起作用

    您是否在 LaunchxL-F280049C 上的 C2000Ware driverlib 中运行演示代码、以便我可以同时使用 LaunchX1-F280049C 和 Boostxl-AFE031-DF1测试最新的库。

    我附加了我的项目。 基本上、以下功能与 PLC 设置相关

    1.   CONFIG_AFE031 ();

    2.   PLC_ADC_Setup();

       3. PLC_BitDetection_Setup();

    以下是 ISR

    1、PLC_BITDETECT_ISR @ 586K

    2、PLC_ADC_ISR @ 300K

    以实现超时。 我使用自己的轮询函数来检查超时。

    请就此提供帮助。

    BR

    hk Wooe2e.ti.com/.../3771.zip

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

    是否有更新?

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

    你好、Matthew

    我发现有一件有趣的事情。 我在下面更改了 Marco 后、RX_message 收到了一些错误的数据

    #define SCALE_ADC_INPUT (ADC_INPUT) (((float)(ADC_INPUT))* ADC_PU_SCALE_FACTOR)* 2.0 ->

    #define SCALE_ADC_INPUT (ADC_INPUT) (((float)(ADC_INPUT))* ADC_PU_SCALE_FACTOR)* 20.0

    300Hz ISR 会在一段时间后停止运行。

    BR

    HK Woo

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

    HK、

    很抱歉耽误你的时间。  我必须从另一位 C2000团队成员那里获取 AFE031 Booster Pack。  我将尝试将其与我的 LaunchPad 连接起来、并查看一下。  我可能需要另外一天时间才能在我的终点运行、因此我将尝试进行另一次更新。

    您能否提供有关上次更新的更多信息?  您是否能够让库有效工作、至少有一段时间?

    最棒的

    Matthew

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

    是的。 我可以在将系数和阈值更改为0.00xx 后获得一些数据

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

    你好、Matthew

    我发现300K ISR 停止运行是由于函数 FSK_corr_deter_run (input);ISR 在我注释函数后继续运行。

    BR

    HK Woo

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

    你好、Matthew

    我在项目中使用的是 F280025C。 请知悉。

    BR

    HK Woo

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

    是否有更新?

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

    HK、

    我确认了新的 EABI 库不是问题、我将其替换到我们在 C2000Ware 中的 RX 示例中、并使用我们的 TX 示例使用另一个 LP/AFE 对其进行了测试、并且能够正确检测和解码数据包。

    您在 AFE031中生成的信号是否与我们在 TX 示例中生成的信号相似、或者它们具有不同的频率和/或幅度?

    从硬件的角度来看、LAUNCHXL-F28002x 上的 J3-29 ADC 输入与 LAUNCHXL-F28004x 不同。  28004x 示例使用 ADCINA9、您需要将其更改为 ADCINA12或 ADCINC1。  A12会更简单、因为您可以保留组织源中 ADCA 的 ADC 配置

    我将很快查看您的代码;如果我看到任何内容、我将在今晚回复。

    最棒的

    Matthew

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

    你好、Mattew

    感谢您的信息。 您可以向我分享您的 RX 示例吗?

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

    你好、Matthew

    如需了解相关信息、我的项目使用 ADCA 和 ADCC。 ADCA 用于数字降压转换器、ADCC 用于 PLC 采样。

    如果您不介意、我们可以进行缩放。

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

    Matthew

    您是否看到您身边有300K ISR 停止运行?

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

    HK、

    我得出了同样的结论、即您将另一个 BP 接头用于 AFE031 Booster Pack。

    为了使用我们的示例代码配置 AFE031、您需要从现有示例重新映射 ADC 通道和 SPI。  您可能需要使用另一个 PWM 作为 ISR 时基、因为我假设降压转换器使用 PWM1。

    我在您附加的项目中看不到 afe031_config.c 和.h 文件。  其中包含将 AFE031设置为正确模式以正确接收数据的函数。  请告诉我您是否已经处理过这个内联。

    我现在只使用 boostxl_afe031_f28004x_Rx 项目。  我意识到需要进行一些更改以适应 F28002x、但它不会比引脚多路复用分配更重要、并且可能会发生模块更改(例如、我们必须使用 SPI B 与 SPI A)等

    您能否确认将 AFE031-BOOSTXL 插入 LP 的底部引脚?

    最棒的

    Matthew

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

    你好、Matthew

    我不使用 AFE031-BOOSTXL 板。 我们的公司设计自己的电路板。 该板包含 F280025C 和 AFE031。 F280025C 具有2个功能数字降压控制和 PLC 通信。

    我没有在项目中使用 TI afe031_config.c 和.h。 我使用自己的代码进行 SPI 通信。 我确认 AFE031和 F280025C 之间的通信正常。 请查看随附的波形、通道3 (蓝色)是连接到 F280025C ADC_CH_ADCIN3的 AFE031引脚 RX_PGA2_OUT 的输出。 波形显示 PLC 信号正确。 143.75K Hz 和131.25K Hz

    我遇到的问题是、为什么300K ISR 会在一段时间后停止运行。 如果我在 ISR PLC_ADC_ISR ()中注释 FSK_corr_Deter_run、300K ISR 将继续运行。 我测量了 PLC_ADC_ISR ()的处理时间。 最大为2.5us 它不会导致任何过度运行、因为300K 为~ 3.3us。 我的代码中的中断配置是否仍然错误?

    BR

    HK Woo

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

    HK、

    我需要检查 ISR 时序是否不同于基于 COFF 的版本。  FSK_corr_deter_run 函数以汇编语言编写、因此从 COFF 迁移到 EABI 的典型挑战是不同的浮点和双表单不应适用。  我将看到我是否也可以让代码作者对此进行评论。

    明天我还将尝试在实验中运行 COFF 和 EABI 版本。  正如您所说的、尽管过度运行是正常的、但仅剩1us 的 BW 剩余。

    最棒的

    Matthew

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

    HK、

    我验证了 FSK 库的 EABI 和 COFF 变体之间的周期计数是否一致。  我再次查看了您的项目、我认为可能会有一些内存冲突、这些冲突可能会导致 FSK_corr_Detector _run 函数花费比预期更长的时间。  该函数本身应花费59个 CPU 周期、或在100MHz 时钟下花费590ns。

    我注意到、在 AFE 示例随附的链接器命令文件中、我们已将 Sine Table 和 FSK_corr_lib 分别划分在单独的存储器中、并与其他存储器分开。  我意识到、除了您必须具有共存的降压控制器代码外、F28002x 上并非所有这些存储器都可用。  即使上述代码与主代码共享一些空间、我们也可以进行分区、使正弦表和 FSK_lib 不在相同的物理块中、这会更好。

    我还意识到、我之前提到过将 LIB 置于"组合式"LS#块类型配置中、对此表示歉意。

    {
       codestart        : > BEGIN,     PAGE = 0
       .TI.ramfunc      : > RAMM0      PAGE = 0
       .text            : >>RAMM0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3,   PAGE = 0
       .cinit           : > RAMLS2,     PAGE = 0
       .init_array           : > RAMM0,     PAGE = 0
       .switch          : > RAMM0,     PAGE = 0
       .cio             : > RAMLS0,    PAGE = 0
       .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */
    
       .stack           : > RAMM1,     PAGE = 1
       .bss            : > RAMLS6,    PAGE = 1
       .const          : > RAMLS6,    PAGE = 1
       .sysmem         : > RAMLS6,    PAGE = 1
    
       ramgs0           : > RAMGS0,    PAGE = 1
       ramgs1           : > RAMGS1,    PAGE = 1  
    
       SINETABLE        : > RAMGS2,    PAGE = 1	/* Ram block for SINETABLE data */
       fsk_corr_lib_data : > RAMGS3,   PAGE = 1	/* Ram block for lib data */
    
       FlashAPIDataSection : > RAMM1, PAGE = 1, ALIGN(4)
    }

    让我知道这是否可行、是否会使 ISR 时间缩短等

    最棒的

    Matthew

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

    你好、Matthew

    我不熟悉链接器文件。 我只使用演示代码中的一个示例。 请建议如何优化它。

    此外、

    我仍然无法使用 bitfield 在项目中设置寄存器位(不知道原因)。 我想设置跟车位

    1.ADCC 寄存器-> ADCINTSEL1N2 -> INT2CONT

    ADCC 寄存器-> ADCINTSEL1N2 -> INT1CONT

    3.ADCC 寄存器-> ADCINTSEL3N4 -> INT4CONT

    4.ADCC 寄存器-> ADCINTSEL3N4 -> INT3CONT

    请建议如何使用 driverlib 来实现它

    BR

    HK Woo

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

    HK、

    对于 ADC int 的连续模式、请使用此函数 https://dev.ti.com/tirex/explore/content/tirex-product-tree/C2000Ware_3_04_00_00_Device/device_support/f28002x/docs/html/modules/adc.html#_CPPv424ADC_enableContinuousMode8uint32_t13ADC_IntNumber 

    例如、对于4个中的第一个、它将是

     ADC_enableContinuousMode(ADC_ADCCADC_INT_NUMBER2)

    我需要更多的时间来查看您的内存分配(我以前在您的项目中有过)、以了解可以进行哪些更改。

    最棒的
    Matthew

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

    我尝试了命令。 它不会更改位。 我在 CCS 中使用 View->register 检查了位值

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

    链接文件上是否有任何更新、以及为什么我的项目无法使用位字段?

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

    是否有更新?

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

    HK、

    对于连续模式、我认为 ADC_ADCC 是定义的基极、它本应是:

    ADC_enableContinuousMode(ADCC_BASE, ADC_INT_NUMBER2);

    C2000Ware 中有一个示例、其中显示了此函数的用法

    C:\ti\c2000Ware_3_04_00_00\driverlib\f28002x\examples\adc\ccs\adc_ex5_soc_continuous.projectspec

    对于链接器文件 、我们将 LS6和 LS7从大块中恢复出来、如下所示(对于存储器部分、您可以将此行后面的所有内容保持不变:

    MEMORY
    {
       BEGIN               : origin = 0x080000, length = 0x000002
       BOOT_RSVD        : origin = 0x00000002, length = 0x00000126
       RAMM0               : origin = 0x00000128, length = 0x000002D8
       RAMM1            : origin = 0x00000400, length = 0x000003F8     /* on-chip RAM block M1 */
    // RAMM1_RSVD       : origin = 0x000007F8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
    
       /* Combining the LS RAMs 4 and 5*/
       RAMLS45          : origin = 0x0000A000, length = 0x00001000
       RAMLS6           : origin = 0x0000B000, length = 0x00000800
       RAMLS7           : origin = 0x0000B800, length = 0x00000800
       RAMGS0           : origin = 0x0000C000, length = 0x000007F8
    // RAMGS0_RSVD      : origin = 0x0000C7F8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    

    对于分配、如下所示:

    SECTIONS
    {
       codestart        : > BEGIN, ALIGN(8)
       .text            : >> FLASH_BANK0_SEC2 | FLASH_BANK0_SEC3 | FLASH_BANK0_SEC4 | FLASH_BANK0_SEC5,   ALIGN(8)
       .cinit           : > FLASH_BANK0_SEC1,  ALIGN(8)
       .switch          : > FLASH_BANK0_SEC1,  ALIGN(8)
       .reset           : > RESET,                  TYPE = DSECT /* not used, */
    
       .stack           : > RAMM1
    
       .init_array      : > FLASH_BANK0_SEC1,  ALIGN(8)
       .bss             : > RAMLS45
       .bss:output      : > RAMLS45
       .bss:cio         : > RAMGS0
       .const           : > FLASH_BANK0_SEC1,  ALIGN(8)
       .data            : > RAMLS45
       .sysmem          : > RAMLS45
    
        ramgs0 : > RAMGS0
    
       /*  Allocate IQ math areas: */
       IQmath           : > RAMLS45
       IQmathTables     : > RAMLS45
       
       
       GROUP
       {
           .TI.ramfunc
           {
               -l sfra_f32_tmu_eabi.lib
           }
           ramfuncs
    
       } LOAD = FLASH_BANK0_SEC6,
             RUN = RAMLS67,
             LOAD_START(RamfuncsLoadStart),
             LOAD_SIZE(RamfuncsLoadSize),
             LOAD_END(RamfuncsLoadEnd),
             RUN_START(RamfuncsRunStart),
             RUN_SIZE(RamfuncsRunSize),
             RUN_END(RamfuncsRunEnd),
             ALIGN(4)
    
    /*
      .TI.ramfunc      : LOAD = FLASH_BANK0_SEC1,
                      RUN = RAMGS0,
                      LOAD_START(RamfuncsLoadStart),
                      LOAD_SIZE(RamfuncsLoadSize),
                      LOAD_END(RamfuncsLoadEnd),
                      RUN_START(RamfuncsRunStart),
                      RUN_SIZE(RamfuncsRunSize),
                      RUN_END(RamfuncsRunEnd),
                      ALIGN(8)
    */
        SFRA_F32_Data    : > RAMLS45, ALIGN = 64
    
        FPUmathTables    : > FLASH_BANK0_SEC11
    
    
        //.scratchpad      : > RAMLS4567
        //controlVariables : > RAMLS4567
    
        GROUP
        {
            isrcodefuncs
            dclfuncs
        }    LOAD = FLASH_BANK0_SEC8_9_10,
             RUN =  RAMLS45,
             LOAD_START(isrcodefuncsLoadStart),
             LOAD_SIZE(isrcodefuncsLoadSize),
             LOAD_END(isrcodefuncsLoadEnd),
             RUN_START(isrcodefuncsRunStart),
             RUN_SIZE(isrcodefuncsRunSize),
             RUN_END(isrcodefuncsRunEnd),
             ALIGN(4)
    
    
    }

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

    你好、Matthew

    感谢您的信息。 我还有2个问题。

    1.我仍然不确定586Hz ISR 的配置、中断设置是否与 TI 演示代码上的配置相同。 我用红色突出显示。

    中断空 PLC_BITDETECT_ISR (空)

       //
       //启用 ADC ISR 嵌套
       //
       volatile uint16_t tempPIEIER = HWREGH (PIECTRL_BASE + PIE_O_IER2);
    //   GPIO_togglePin (debug_gpio);
       IER |= M_INT1;
       IER &= MINT1;
       HWREGH (PIECTRL_BASE + PIE_O_IER2)&= MG1_1;
       INTERRUPT_clearACKGROUP (0xFFFFFFU);
       //ePWM_clearEventTriggerInterruptFlag (PLC_bit_detect_ePWM_base);
       //中断_clearACKGroup (interrupt_ACK_Group3);



       //TempPIEIER = PieCtrlRegs.PIEIER2.all;
       //IER |= M_INT1;
       //IER &= MINT1;                        //设置"全局"优先级
       //PieCtrlRegs.PIEIER2.all &= MG1_1;    //设置“组”优先级

       //PieCtrlRegs.PIEACK.ALL = 0xFFFF;     //启用 PIE 中断
       asm ("      NOP");                   //等待一个周期
       EINT;                                //清除 INTM 以启用中断

       //
       //运行 FSK 相关性检测器函数
       //
       FSK_corr_Detector _ OverSampl_run (&FSK_struct1);

       //
       //查看是否检测到标记或空格位
       //
       if (fsk_struct1.bit_detected!= 0)
       {
           rxMessage[message_index+]= FSK_struct1.bit_detected;//将检测到的位保存在消息缓冲区中

           FSK_struct1.bit_detected = 0;//清除检测到的位成员

           //
           //在消息缓冲器已满时设置标志
           //
           if (RX_MESSAGE_SIZE <= MESSAGE_INDEX)
           {
               MESSAGE_INDEX = 0;
               msgFull = 1;
           }
       }

       //
       //清除 EPwm2的 INT 标志
       //
       //EPwm2Regs.ETCLR.bit.INT = 1;
       ePWM_clearEventTriggerInterruptFlag (PLC_bit_detect_ePWM_base);

       //
       //确认此中断以接收来自组3的更多中断
       //
       //PieCtrlRegs.PIEACX.ALL = PIEACK_Group3;
       INTERRUPT_clearACKGROUP (INTERRUPT_ACK_Group3);

       //
       //恢复为 ADC ISR 嵌套保存的寄存器
       //
       Dint;
       //PieCtrlRegs.PIEIER2.all = TempPIEIER;
       HWREGH (PIECTRL_BASE + PIE_O_IER2)= tempPIEIER;
       //GPIO_TOGLEPin (DEBUG_GPIO);

    我们的产品将应用 IEC60730。 该库是否为 IEC60730? 如果不是、我需要知道如何手动定义地址 RAM、而不是由编译器定义。

    BR

    HK Woo

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

    大家好、Matt 不在办公室。  我将尝试指定另一位主题专家来提供帮助、但即使 是这样、也可能是周二 、直到您收到回复。   

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

    您好、HK、

    对于#1、请参阅以下文档以了解中断嵌套。

    https://software-dl.ti.com/C2000/docs/c28x_interrupt_nesting/html/index.html

    对于#2而言、在编写库时 IEC60730不是要求、因此我认为它默认不符合安全标准。

    最棒的

    Kevin