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.

[参考译文] TMS320F28066:SCI Tx 中断 ISR 无法提供服务

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/971822/tms320f28066-sci-tx-interrupt-isr-can-not-be-served

器件型号:TMS320F28066

你(们)好

我遇到了有关 TMS320F28066的 SCI_B 的问题。

我 使用 TX 中断(非 FIFO 中断)进行数据发送、使用 RX 中断进行数据接收。

下面是针对 TX 中断的 SCI_B 和 ISR 启动、波特率为2400bps。

 

 

在 ISR 函数中、sSciTxISR (1)执行 到 TX 缓冲区的写入操作、等待 Tx 缓冲区为空、以便重新进入 ISR 以写入到 TX 缓冲区的下一个数据字节。         

有时无法执行 TX 中断 ISR 以进行数据发送。

现在、我们可以看到当 Tx 和 Rx 线路短接时的问题、如果我们在发送数据时尝试使用 Rx 线路短接 Tx 线路、 我们可能会在~10时间内看到此问题。   

 

 

 

从所示寄存器值的快照中、RXRDY 和 TXEMPTY 位都设置为1、因此我们可以 知道 Tx 缓冲区现在为空、它应该设置 Tx 中断。

   但实际情况是无法为 Tx ISR 提供服务,因此不会发送数据。

如果我们在调试 GUI 中出现问题时将任何数据写入 Tx 缓冲器、那么 我们可以看到 SCI_B 可以再次工作。

您能不能帮助分析导致此问题的可能原因、并解释为什么无法为 SCI_B Tx 中断 ISR 提供服务。

   谢谢

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

    您好、Hardy、

    我假设您将 TX 和 RX 引脚物理短路。 您能否尝试设置环回使能位、而仅用于测试目的、并查看问题是否仍然存在?  ScibRegs.SCICCR.bit.LOOPBKENA=1;  

    此外、您能否共享其余代码以便我尝试重现问题? 如果您不想在此处发布、请随时发送电子邮件或通过 E2E 消息发送。

    此致、

    Marlyn

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

    您好、Marlyn

        使用 ScibRegs.SCICCR.bit.LOOPBKENA=1进行测试后、将 SCI 设置为回路模式、不能重复此问题。

        我无法从客户那里获得代码、您能解释 一下在这些条件下、是否无法为 ISR 代码提供任何可能的根本原因?

        谢谢

         

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

    您好、Hardy、

    由于该程序在启用内部回送的情况下工作、因此引脚本身可能存在一些外部问题。 请仔细检查电路以及您可能已连接到引脚的任何组件。 还应确保正确配置 GPIO。

    是否可以在发送 ISR 中切换 GPIO 以查看代码是否进入 ISR? 它可能进入并停留在那里、从而使它看起来像是 ISR 未被处理。 如果进入 ISR 并被卡住、您可以暂停程序、查看代码中它被卡住而不发送数据的位置。  

    没有使用 FIFO 的原因是什么? 这是一种替代方法、可能会解决您看到的问题。

    此致、

    Marlyn