TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS320F280033:无法为 SCI RX ISR 提供服务

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1379187/tms320f280033-unable-to-service-sci-rx-isr

器件型号:TMS320F280033

工具与软件:

 我正在处理 TMS320F280033和 Renesas R5F100AE 之间的 SCI 通信。 我已经启用了 FIFO、并且我参考了 sci_ex2_loopback_interrupts 示例工程进行配置。

1.我已经验证过数据是在 GPIO 28接收的、代码示例。 然而、SCIFFRX 寄存器中的 RXFFINT 位未置位。

2.我正在尝试使用 CPUTIMER0来设置/重置用于检查标准1.5和3.5字符延迟的标志。 我可以在寄存器观察窗口中看到 TIMH:TIM 值递减、但当将断点放入 sciaRXFIFOISR 时、程序不会停止。

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

    尊敬的 Samrudhi:

     几个方面:

    • 如果 未更改地运行 sci_ex2_loopback_interrupts 示例、可以确认一切正常吗? 如果您运行该代码,但它没有在 error()函数中命中 ESTOP,那么操作应该工作正常。
    •  sci_ex2_loopback_interrupts 示例使用2字节 FIFO 电平来触发中断。 您是否已验证在 GPIO 28上接收到至少2字节的数据?
    • 您确切地对示例代码进行了哪些更改? 您需要禁用环回模式、以便在 物理 GPIO 引脚上使用 SCI 模块进行发送/接收。
    • 为了澄清、您是否使用 CPU 计时器来清除 SCI 标志? 如果是、我不会推荐它。 只有在所有必要的 ISR 代码运行完毕(清除 ACK 位除外)后、您才需要清除 ISR 内的这些标志、以便进一步的中断能够触发。

    此致、

    Delaney  

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

    尊敬的 Delany:  

    1&2. 是的、 sci_ex2_loopback_interrupts 示例运行正常、不会出现任何错误。  

    我提到这个例子是因为我引用了 initSCIAFIFO()函数来设置 FIFO 操作。  
    3.在我的项目中、我已经   用 SCI_disableLoopback (SCIA_BASE)替换了 initSCIAFIFO ()中的 SCI_enableLoopback (SCIA_BASE)函数。  
    4.不、我不是在用 cputimer 清除 SCI 标志。 数据处理完毕后、这在 ISR 本身中完成、如您所述。 RX ISR 被写入、如果 FLAG1被提升、调用函数1。 如果不是、请调用函数2。 完成此 
    操作后、我将调用 SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_RXFF)和 Interrupt_clearACKGroup (INTERRUPT_ACK_group9)。 在 CPUTIMER 中设置了该用户定义的 FLAG1。  

    此致、  
    Samruddhi  

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

    尊敬的 Samrudhi:

    能否在"Expressions"视图中验证  SCIFFRX 寄存器中的 RXFFIL 字段是否等于2、以及同一寄存器中的 RXFFST 字段是否至少达到2? 这是应该升高  RXFFINT 标志的情况。

    如果您在 SCI RX ISR 的开头添加一个断点、是否曾经被命中?

    此致、

    Delaney

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

    尊敬的 Delany:  
    否、RXFFST 的值仍然为零、即使我在 SAR 中看到一些值也是如此。  
    否、该断点没有被命中。  

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

    尊敬的 Sammrudhi:

    您能验证 SCIRXST 寄存器中没有出现任何 RX 错误标志吗? 如果只启用 RX FIFO 级中断并且每个数据包被错误地接收、那么永远不会命中 SCI RX ISR。

    此致、

    Delaney

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

    嗨、Delaney、  
    事实证明、另一个中断中的 DINT 指令导致了该行为、现在问题已解决。 感谢您的帮助!

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

    尊敬的 Samrudhi:

    很高兴听到问题已解决、我将关闭该主题、但如果您有任何其他问题或疑问、可以随时制作另一个主题。

    此致、

    Delaney