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.

[参考译文] TMS570LC4357:设置 NHET ECMP 指令来设置或清除 N2HET 引脚

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/684592/tms570lc4357-setup-nhet-ecmp-instruction-to-set-or-clear-a-n2het-pin

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

我在 HET IDE 中有以下代码。 它检查 n2HET1[18]引脚是高电平还是低电平、我想相应地设置/清除 N2HET1[8]。   我正在使用 ECMP 指令引脚操作来设置/清除引脚。  下面的代码显示了之后的仿真器、但在实际硬件上运行、它不会触发(我正在使用 N2HET1[8]作为 MIBSPI 传输组的触发源。

L00 CNT{NEX=CheckLow、REG=T、COMP=EQ、max=0x1FFFFFF、data=0x1FFFFFF};
CheckLow BR{NEX=SetLow、COND_addr=CheckHigh、PIN=18、EVENT_HIGH};
SetLow ECMP{next=NextInLine、control=on、en_pin_action=on、con_addr=NextInLine、pin=8、action=clear、reg=a、IRQ=off、data=0};
CheckHigh BR{NEX=SetHigh、COND_addr=NextInLine、PIN=18、EVENT=LOW};
SetHigh ECMP{next=NextInLine、control=on、en_pin_action=on、con_addr=NextInLine、pin=8、action=set、reg=a、data=0};
NextInLine PWCNT{next=0、con_addr=0、pin=0、reg=a、data=0};

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

    你好 Nino、

    在 HALCoGen 中、启用了 NHET 模块

    2.配置引脚复用以使用 NHET 引脚

    3.将 NHET 引脚18配置为输入,引脚0和引脚8配置为输出

    4.将一个过去 NHET IDE 生成 的 C 代码复制到 HET.c 作为一个数据数组:

    HET_MEMORY CONST HET_INIT0_PST[6]=

    /* L00_0 */

    0x00002C80、

    0x01FFFFFF、

    0xFFFFFF80、

    0x00000000

    }、

    /* CheckLow_0 */

    0x00005A00、

    0x000072E0、

    0x00000000、

    0x00000000

    }、

    /* SetLow_0 */

    0x0000A000、

    0x0440A800、

    0x00000000、

    0x00000000

    }、

    /* CheckHigh_0 */

    0x00009A00、

    0x0000B2C0、

    0x00000000、

    0x00000000

    }、

    /* SetHigh_0 */

    0x0000A000、

    0x0440A810、

    0x00000000、

    0x00000000

    }、

    /* NextInLine_0 */

    0x000014C0、

    0x00000000、

    0x00000000、

    0x00000000

    };

    5.修改 hetInit()函数中的以下代码,将 NHET 代码编程到 NHET RAM 中

      更改:  (void) memcpy ((void *) hetRAM1、(const void *) het1PROGRAM、sizeof (het1PROGRAM);

      更改为   :(void) memcpy ((void *) hetRAM1、(const void *) HET_INIT0_PST、sizeof (HET_INIT0_PST);

    6.编译项目并将代码加载到闪存中

    7.在主函数中 hetInit()旁边的行添加断点

    8.打开内存浏览器,检查 NHET RAM 中的内容,从0xFF460000开始,并确保代码被正确复制到此位置。

     

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

    我创建了 NHET 汇编代码来正确遵循输入引脚的状态并在 NHET1[8]引脚上生成正确的信号、我能够使用一个外部信号来触发 MIBSPI。

    我到目前为止看到的问题、  

    1. 与 GIOAx 触发器相比、NHET1x 无法使用 TRIG_LOW。  它必须配置为 TRIG_FALLING。  如果我使用 TRIG_LOW、它将持续被触发并防止任何低优先级传输组被服务。

    现在、我可以执行我的实施了。

x 出现错误。请重试或与管理员联系。