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.

[参考译文] TMS320F28032:SCI 通信中断问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1379709/tms320f28032-sci-communication-interruption-problem

器件型号:TMS320F28032
Thread 中讨论的其他器件: C2000WARE

工具与软件:

您好、TI 专家

目前、我们的电源产品使用贵公司的 TMS320F28032 DSP、我们的产品是两级拓扑、使用2 28032、相互使用 SCI 通信、通信波特率是115200、目前、在我们的大规模生产产品中、我们偶尔会发现 SCI 通信故障问题、即使电源产品处于待机模式、SCI 通信故障有时会持续数百秒、 我们最初在程序中用了10s 来重置 SCI 基础模块并在我们无法接收到 SCI 数据时重新初始化它、但它仍然没有帮助、您是否有任何相关的问题分析想法可以提供帮助? 谢谢你

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

    尊敬的 Foriner:

    所有问题都要提前道歉、但请告诉我您对以下问题的答案

    1. 通信故障发生的频率如何?"通信故障问题"究竟是什么意思? 输出是什么/告诉你什么错了?
    2. 您能否提供有关问题症状的更多详细信息?
    3. 您是否在通信期间以及失败期间仔细检查了 SCI 波形、以便了解发生了什么情况?
    4. 您是否能够连接到器件并检查 SCI 寄存器? 我想知道在通信问题期间是否设置了任何错误标志、以及波形(如果可能)。 或者、您是否可以连接并查看程序在故障期间的位置。
    5. 通信的背景是什么(器件之间发送的数据以及数据大小/数量)?
    6. 如果您也可以共享 SCI 初始化配置、那将会很有帮助。
    7. 您的程序是否基于任何 C2000Ware 示例? 如果是、哪一个? 如果不是这样、最好参考我们的示例、仔细检查您的一些程序。

    此致、

    Allison

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    发生通信故障的频率如何、"通信故障问题"究竟是什么意思? 什么是输出/告诉您什么是错误?

    目前概率可能在0.1%到1%之间,我们已经设计了电源产品软件的日志记录功能,发现异常模块记录了异常蜗牛,导致停机,此外,电源模块的监测也监测了蜗牛报警,我们的蜗牛报警机制连续监测10秒,没有收到信息,在正常情况下,我们会每10毫秒交换一次 SCI 信息

    您能否提供有关问题症状的更多详细信息?
    您是否在通信过程中以及未能了解发生了什么情况?

    我们只在实验室模块的黑盒情况下复制过一次蜗牛、然后它被自动恢复、连接、我们看了 SCI 波形时它正常工作、我们查看了它、TX 和 RX 是标准的、我们没有发现任何异常

    因此、现在可能的推测:1) SCI 数据加载被阻止了吗? 2) 2)波特率不匹配或是否有一段时间发生了漂移? 3) 3) SCI 模块本身有问题? 4) 115200的波特率太高、错误率很高?

    您是否能够连接到器件并检查 SCI 寄存器? 我想知道在通信问题期间是否设置了任何错误标志、以及波形(如果可能)。 或者您是否可以连接并查看程序在故障期间的位置。

    目前,它不能在测试板上重现,生产产品是非常随机的,我们发现这个问题通过日志

    [报价 userid="568270" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1379709/tms320f28032-sci-communication-interruption-problem/5273196 #5273196"]
    • 通信的背景是什么(器件之间发送的数据以及数据大小/数量)?
    • 如果您也可以共享 SCI 初始化配置、那将会很有帮助。
    • 您的程序是否基于任何 C2000Ware 示例? 如果是、哪一个? 如果不是这样、最好参考我们的示例、仔细检查您的一些程序。
    [报价]

    //初始化 SCI-A:
    SciaRegs.SCICCR.all = 0x0027;// 1 stop、奇数奇偶校验、8 char、异步模式、空闲线
    //位0、1:使能 TX、RX、位5:向该位写入0将初始化 SCI 状态机
    SciaRegs.SCICTL1.all = 0x0003;
    SciaRegs.SCICTL2.all = 0x0000;
    SciaRegs。 SCIHBAUD = 0x0000;//@LSPCLK = 15MHz (60MHz/4)
    // SciaRegs。 SCILBAUD = 0x0030;// 15 000 000/(38400*8)- 1 = 47.8
    SciaRegs。 SCILBAUD = 15;// 15 000 000/(115200*8)- 1 = 15.27

    //停止前完成当前的 RX/TX 序列
    SciaRegs.SCIPRI.all = 0x10;
    SciaRegs.SCICTL1.all = 0x0023;//启用 TX、RX、重新启用 SCI

    //初始化 SCI FIFO
    // SCI 复位、SCI FIFO 使能、发送 FIFO 复位、发送 FIFO 清除
    SciaRegs.SCIFFTX.ALL = 0xE040;
    //接收 FIFO 复位、接收 FIFO 中断清除、
    SciaRegs.SCIFFRX.ALL = 0x2044;
    SciaRegs.SCIFFCT.all = 0x0;  

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

    您好!

    感谢您的答复。 遗憾的是、在随机节奏且无法连接到器件和重现器件或看到 SCI 线路活动的情况下、很难猜测问题会发生什么。 但我的确希望推荐您参考一个 SCI 调试常见问题解答。 请务必复查它、以防 它适用于您。 我还想补充一点、SCI 初始化过程顺序可以发挥作用。 请仔细检查 您的初始化信息、并提供建议的内容。

    另一个问题是、您使用的是内部振荡器还是外部振荡器? 波特率计算应该可以接受(使用这些时钟和波特率寄存器值、SCI 模块固有的误差可忽略不计)、除非硬件中引入了其他一些错误、可能会中断通信。

    另外、或许我错过了一些东西、但您能否解释一下这里指的是什么黑盒/白盒?

    我们只在实验室模块的黑盒案例中复制了一次短尾、然后它自动恢复、白盒波形在挂接后没有再复制过一次、

    您是否能够尝试其他调试技术、例如为特定的错误标志设置 GPIO? 或者、使用其他方法在程序/寄存器发生故障时检查其状态?

    是否存在"异常 SCi 失败"的任何其他细节或定义? 我不确定这对于 SCI 模块意味着什么。 关于这一点的唯一信息是否就是在10ms 内没有收到任何数据? 此外、这是否仅发生在其中一个器件上(如果是、您认为问题在于接收端还是发送端)? 或者您是说两个器件都导致了错误吗?

    此致、

    Allison

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否能够尝试其他调试方法(例如为特定错误标志设置 GPIO)? 或者采用其他方法在程序/寄存器发生故障时检查其状态?[/QUOT]

    现在的难题是我们无法在实验室中重现问题、但问题会反复记录在客户站点的模块日志中、客户站点无法停止测试

    黑盒表示已关闭产品测试、我们识别来自 CAN 通信的 SCIFAIL 状态指示。 白盒测试意味着我们用示波器连接 SCI TX 和 RX

    目前我们发现 SCI 两端的许多模块(DSP)存在无法相互接收 SCI 数据的问题

    我想问的是、在什么情况下 DSP 裸片的 SCI 单元会不工作、在这种情况下、SCI 如何正确复位并恢复?

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

    此问题是否有更新?

    我想问的是、在什么情况下 DSP 裸片的 SCI 单元将不工作、在这种情况下如何正确复位 SCI 并恢复?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Foriner:

    您还能回答:

    您使用的是内部振荡器还是外部振荡器? T [/报价]

    在没有更多上下文和症状的信息的情况下评估问题仍然很困难、在许多情况下、SCI 模块可能会遇到问题、如我在上一篇文章中链接的常见问题解答中所述、但这可能是配置、时序、中断问题等导致的 还有几个问题

    • 您是否像我之前问的那样检查了初始化?
    • 您还可以向我展示中断 ISR 代码吗?
    • 器件中是否有其他过程在 SCI 发生故障时中断(是否监测其他 GPIO、电力线等)?
    • 通信期间器件是否在任何时候复位?
    • 您是否 在器件中使用任何其他中断?

    此致、

    Allison