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.

[参考译文] UART-AM263PX:MCU-PLUS-SDK

Guru**** 2557630 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1562231/mcu-plus-sdk-am263px-uart-dma

器件型号:MCU-PLUS-SDKAM263PX-AM263PX
主题:SysConfig 中讨论的其他器件

工具/软件:

不同应用  UART DMA    根据示例代码、在 TI AM263Px 和调制解调器之间发送和接收数据: uart_echo_DMA_LLD_am263px-cc_r5fss0-0_nortos_ti-arm-clang

 使用逻辑分析仪监控 TX 和 RX 引脚、我们观察到以下行为:
当我们将 预定义的数据(18 字节)传输 到调制解调器时、我们立即  从调制解调器收到 12 字节的响应。

根据我们的应用要求、我们需要分 两个阶段读取此 12 字节响应:

  • 首先、读取 1 个字节
  • 然后、读取剩余的 11 个字节

我们成功接收了 第一个字节 并获得了 接收完成中断。 但是、在第二次读取尝试期间、我们 并未 按预期接收剩余的字节。

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

    尊敬的

    您能帮助我进一步了解 Rx 器件吗?  

    对剩余的 11 个字节、到底发生了什么? 您是否部分收到数据? 您根本不接收任何字节吗? 或者第二次读取尝试不可靠、有时它读取数据、有时不可靠?

    您能帮助我提供一些示例应用程序吗?我可以使用这些示例应用程序在我这边重现此问题并找出解决方案吗?

    此致、
    Shaunak

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

    您好、Shashank、感谢您的答复。

    我正在使用 API “UART_LLD_readDma (gUartHandleLld[CONFIG_UART_CONSOLE]、&gUartReceiveBuffer[0U]、TRANS_COUNT、NULL);“ 来读取响应。

    第一次、我指定 TRANS_COUNT = 1、并获得 DMA Rx 中断。  当 我第二次尝试读取剩余的 11 个字节时、我立即调用同一个 API 且 TRANS_COUNT = 11、我没有收到任何 DMA Rx 中断。

    我使用了 DMA LLD 示例代码、对测试进行了少量修改。 请查找文件以供 您参考

    e2e.ti.com/.../uart_5F00_echo_5F00_dma_5F00_lld.c

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

    您好、

    与标准 SDK 示例相比、syscfg 文件是否进行了任何修改?

    如果是、您是否也可以共享您的 example.syscfg 文件?  

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我们使用了相同的 SDK 示例 SysConfig。 我们使用 UART4 而不是 UART0

    e2e.ti.com/.../7673.example.syscfg.txt

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

    尊敬的 Vinayaka:

    我没有完整的设置来复制此设置、但根据上面的讨论、我可以提供一些意见:

    1.对于第二次传输、您不会获得中断、但要检查 UART 寄存器以查看 UART 寄存器中是否实际接收到数据。

    2.可以测试单字节传输吗? 基本上、将 FIFO 的触发阈值设置为 1B、并查看是否每个字节都收到中断。  

    此致、
    Shaunak

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

    尊敬的 Vinayaka:  

    我还与 IP 专家确认、理想情况下应该可以在运行时更改阈值水平、而无需任何 IP 复位。 因此有一些错误、因为在第二种情况下未触发 Rx 中断、

     您能帮助我理解这一点吗?

    我们将 Rx 阈值设置为“1"字节“字节、通过 UART 获取数据(18 个字节)、然后按预期获得中断。 您能否查看目前 UART Rx FIFO 中有多少数据? 我们是否收到了所有 18 个字节?

    2.如果我们还没有收到全部 18 个字节,那么我们期望现在发送 17 个字节中的其余部分,并触发另一个 Rx 中断。 在收到这些 17B 信号之前、我们会将 Rx 阈值重新配置为 17。 要实现此更改、您不需要进行任何 IP 复位、因此只需通过软件配置正确的寄存器即可。 由于我们没有接收到中断、因此我认为此时存在一些与 UART FIFO 中有多少数据相关的问题。 您能给我提供这些详细信息以进一步检查、

    此致、
    Shaunak

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

    尊敬的 Shaunak:  

    单字节传输正常工作。 能够接收每个字节的中断

    1.. 如果我们将 Rx 阈值设置为 1 个字节、我们会针对每个单个字节接收一个中断、此时 Rx FIFO 中只会存在 1 字节的数据。

     2.对于剩余的 11 个字节的数据、我配置了 Rx FIFO (TRANS.COUNT =11)、如下所示。 然而、我没有收到任何中断。 我确实观察到 在 Rx FIFO 中接收到了接下来的字节数据、但并没有观察到整个预期数据集。



    由于剩余的 11 个字节的数据尚未在 Rx FIFO 中接收到、因此不会生成 Rx 中断。

    但是、当我使用 UART LLD 代码时、 我能够收到 1 个字节的 Rx 中断、并立即收到另一个 11 字节数据的 Rx 中断


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

    尊敬的 Vinayaka:

    我将提出一个错误、供团队调试和验证 HLD 驱动程序代码(内部跟踪链接 — jira.itg.ti.com/.../MCUSDK-14974)。

    很高兴知道 LLD 代码可以正常工作。

    此致、
    Shaunak