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.

[参考译文] TMS320F28377D:sci swreset 的时间

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/652130/tms320f28377d-how-many-time-of-sci-swreset

器件型号:TMS320F28377D

你(们)好

在我的应用中、我 遇到了 sci swreset 问题  

由于某些 干扰信号、sci 会生成 BRKDT 错误、然后在我的程序中检查该错误并像这样重置 sci moduel

 如果我没有重置 sci、则发生中断错误后、该 sci moduel 将在 重新为系统供电之前不会查看数据。 但是、如果错误是 FE、OE、则 sci 将再次接收数据。

但是、在我重置此模块后、SCI 模块将在大约9ms 后再次读取数据、这一时间太长、如下图所示

我的问题是  

1、在发生中断错误后  、我们必须重置 sci moduel?

2、为什么这个复位时间这么长?

3、是否有其他方法可以重置 sci moduel?

谢谢!

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

    (1)是的、复位 SCI 状态机是清除某些错误条件的唯一方法
    (2)我不确定预期的复位时间是多少;我必须对此进行研究。 您能更详细地描述一下上面的示波器捕获中的通信流是什么样的吗? SCI 在遇到 BRKDT 错误之前正在接收数据、那么您确切地测量模块重新启动之前的时间是怎样的? 模块是发送还是接收? 传入数据是否有中断?
    (3)可能可以使用 SOFTPRES7寄存器中的位完全复位模块、但我没有任何理由认为这会导致更快的翻转、因为您必须重新初始化所有 SCI 寄存器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好! Devin
    我的 sci 用于与电机编码器(485总线)进行通信。
    我的通信流是100us,我将把按摩发送到电机编码器(因为我发送按摩,我将启用485发送),
    然后在发送按摩后,程序将进入 sci TX ISR,在 sci TX ISR 中,我将启用485接收。 在 sci 接收到11字节数据后、将对 SiC rxisr 进行三次采样(我设置了 SciaRegs.SCIFFRX.bit.RXFFIL=11)。
    当我启动突发脉冲干扰时,在我检查中断错误后,我重置 sci 模块,遇到中断错误。在重置 sci 模块后,我发现程序无法进入 TX ISR, 因此,485信号仍然保持发送状态,直到9毫秒后,sci 才能接收任何数据。
    对我的沟通流程是否有任何建议?
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、我震惊了、

    您是否可以通过切换 SOFTPRES7寄存器中的相应位来实际重置模块? 这应该会完全复位 SCI 模块中的所有寄存器、所以您必须重新运行 SCI 初始化代码。 执行额外的指令需要更长的时间、但不应接近9ms。

    如果这不起作用、那么必须停止并复位 SCI 模块似乎会中断程序的其他位置。 RS-485收发器是否能够自动控制方向、或者您是否必须使用 GPIO 告知收发器发送或接收? 如果必须使用 GPIO、是否确定它设置为正确的方向?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、我震惊了、

    自上一个帖子发布以来已有几周;您是否能够解决此问题? 如果不是、请随意拒绝该解决方案或仅回复此主题。