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/TMS570LS0432:N2HET 上的 UART

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/781809/ccs-tms570ls0432-uart-on-n2het

器件型号:TMS570LS0432

工具/软件:Code Composer Studio

我为 UART 配置了 N2HET、传输正在工作。 但是、接收不起作用。 没有为 Rx 生成中断。 我参考了示例代码并根据我的控制器修改了代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    是否可以共享代码的某些部分(例如更改)并指向您正在使用的示例代码?

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

    e2e.ti.com/.../6165.HET_5F00_EMU_5F00_SCI.c

    您好!

    我已在 hetInit()函数(未更改)之后附加了修改后的 HET_EMU_SCI.c 文件,我将使用以下行:

    ------------------------------------------------------

    asm (" cpsie i");
    hetREG1->GCR = 0x01030001;

    //使用轮询发送 UART 数据
    hetREG1->INTENAC = 0xFFFFFFFF;
    hetREG1->FLG = 0xFFFFFFFF;
    HetUART1PutText ("使用轮询发送数据\n\r");
    HetUART1Printf ("波特率:%d bps。\n\n"、115200);

    //清除标志,启用发送中断
    while (hetRAM1->Instruction [2].Data!= 0);
    //while (hetRAM1->Instruction [4].Data!= 0);//在中断和轮询之间切换时可能会出现小毛刺脉冲
    hetREG1->FLG = 0xFFFFFFFF;
    hetREG1->INTENAS = 0x8;

    //使用中断发送 UART 数据
    while (hetRAM1->Instruction [2].Data!= 0);
    HetUART1 PutChar ("S");
    while (bit_Tran<27);

    //清除标志,禁用发送中断
    hetREG1->INTENAC = 0x8;//禁用发送
    while (hetRAM1->Instruction [2].Data!= 0);
    hetREG1->FLG = 0xFFFFFFFF;//清除中断标志

    //使用轮询接收 UART 数据
    HetUART1 PutText ("使用轮询键入任意回显字母:\n\n");
    while ((CharReceive=HetUART1GetChar ()=0);
    HetUART1 PutChar (CharReceive);

    //使用中断接收 UART 数据
    hetREG1->INTENAS = 1<<23;//启用接收中断
    HetUART1PutText ("\n\n\r 使用中断键入任意回显字母:\n\n");

    ------------------------------------------------------

    此外、在 notification.c 中添加了此函数

    void hetNotification (hetBASE-t * het、uint32_t offset)

    /*在用户代码开始和用户代码结束之间输入用户代码。 *
    /*用户代码开始(39)*/
    // volatile int temp;
    字符 Rec_Data;
    if (offset=4)

    Bit_Tran ++;
    if (bit_TRAN < 27)
    HetUART1 PutChar (Output[bit_Tran]);

    否则 if (offset=24)

    REC_Data = hetRAM1->Instruction [25].Data;
    HetUART1 PutChar (Rec_Data);

    /*用户代码结束*/

    ------------------------------------------------------

    uC 的运行频率@ 80MHz、针对 Tx 使用 NHET00、针对 Rx 使用 NHET02。

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

    您的 main()和 notification()都很好。 我无法计算 NHET 代码中的变化。 您能否发布源代码(*。het)并让我知道更改的位置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../1373.HET_5F00_EMU_5F00_SCI.txt

    我已将该文件与*。txt Extn 一起附加、因为该页面不允许我使用*。het Extn 上传。

    我没有对*。het 文件进行任何更改。 我刚刚将文件复制到我的项目中。 我更改了 HET_EMU_SCI.c 文件、根据运行@ 80MMz 的 uC 更改了波特率。

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

    器件型号:TMS570LS0432

    工具/软件:Code Composer Studio

     我在这里发布了我的问题、但没有帮助。 需要您的输入来解决这个问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您的问题是否与此主题相关: e2e.ti.com/.../781809

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

    我与 Pradeep 合作解决了这一问题。 下面是 TMS570LS04x 的一个工作示例。

    e2e.ti.com/.../0243.TMS570LS04_5F00_HET_5F00_EMU_5F00_SCI_5F00_20190325_5F00_2152.zip

    NHET 触发器工作-只有波特率是错误的。

    Pradeep、请发布使其能够以115200波特工作的配置修改。

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

    您是否使代码适用于 RX 中断?

    您将看到 TI 示例确实支持中断: processors.wiki.ti.com/.../N2HET_EMU_UART_AppNote.pdf
    TI BMS TI 设计在 TMS570LS0432上使用 NHET 仿真 SCI: www.ti.com/.../TIDM-TMS570BMS