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.

[参考译文] TMS320F2812:来自 SCI-A 源的不稳定 PIE

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1041837/tms320f2812-unstable-pie-from-sci-a-source

器件型号:TMS320F2812

您好!

我遇到了不稳定的 SCI-A RX PIE 中断。  当使用调试器或电路板上电时、我的 SCI-A RX FIFO 中断大部分时间工作正常。  在随机情况下(每隔10次或以上的复位或上电)、SCIA RX FIFO 中断无法被 PIE 确认。  我看到 RXINT 被置位并且能够通过 SW 成功清除它、但是在我对电路板进行下电上电之前、SCIA RX 的 PIE 源永远不会调用 ISR。  这是已知问题吗?  什么会导致 PIE 像这样闩锁?  如何在不进行复位的情况下在 SW 中恢复?

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

    Mark、

    您可以在勘误表文档中找到最已知的问题

    启用仿真调试后、逻辑状态可能会在运行之间继续。 这在正常运行期间不会发生、但仿真调试具有一种以非常细微的方式改变行为的方法。

    是否在器件初始化期间显式复位和清除 PIE 和 SCI 状态? 中断标志(或溢出状态)可能在之前的运行期间被置位并转入新的运行。 这可能会导致一个看起来有一个挂起中断、但 PIE 不响应的情况。

    Tommy

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

    此问题在调试器上以及在映像加载到闪存中并循环通电后(电源关闭> 30秒)似乎是重复出现的。  我同意有一个寄存器应该被配置或复位、而不是。

    SCI-A 模块由初始化

    SCIFFTX 和 SCIFFRX 将 FFOVF 设为1清零、FIFORESET 设为1、FFINTCLR 设为1、FFIENA 设为1。

    SCICTL1 SWRESET 设置为0以启动复位、TX/RX ENA 设置为1

    高和低波特率置1

    SCICTRL1 SWRESET 设置为1

    PIE IER9启用 INT1和 INT2。  启用 IER 中断源9。

    SCI-A 中是否有任何必须初始化的关键寄存器?

    在 PIE 中、哪些源驱动要设置的 PIEIER9位 SCIARX?  是否只有来自 SCI-A 的 RXINT 信号或其他信号也可以驱动该信号?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="500492" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1041837/tms320f2812-unstable-pie-from-sci-a-source/3854377 #3854377"]此问题在调试器上以及在映像加载到闪存并循环通电后(断电> 30秒)似乎是可重复出现的。

    这有助于消除我原来的想法、即它可能是一个遗留状态。

    [引用 userid="500492" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1041837/tms320f2812-unstable-pie-from-sci-a-source/3854377 #3854377"]PIE 中要设置的 PIEIER9位 SCIARX 的来源是什么?  是否只有来自 SCI-A 的 RXINT 信号或其他信号也可以驱动该信号?[/引用]

    它只会是 SCI 指南方框图中显示的已解析 SCI TXINT 和 RXINT 中断信号

    [引用 userid="500492" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1041837/tms320f2812-unstable-pie-from-sci-a-source/3854377 #3854377"] SCI-A 中是否有任何必须初始化的关键寄存器?[/quot]

    我假设 从外设示例包中引用 sci_loopback_interrupts 示例最有意义。 此示例是否可靠地为您工作?

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

    这就是我认为的、RXINT 是唯一的来源。  如果这是真的,那就没有道理了。  我已经设置了两个 GPIO 引脚。  每次执行 SCIA_RX_ISR()时,一个用于后台的 RXINT 状态,另一个 GPIO。  在后台、我还有一条 CHECK 语句、在该语句中、如果我看到 RXINT = 1持续5个周期、强制空 SCI FIFO、确认就像在 ISR 中一样。  

    当芯片正常启动时,我永远不会看到 RXINT 引脚被激活,并且一直会看到 SCIA_RX_ISR ()。

    当芯片启动异常时,由于强制在后台清除,我始终会看到 RXINT 引脚切换,并且从不会在 SCIA_RX_ISR()中看到条目。  这应该足以启动启动 PIE、但在这里似乎不起作用、就像在挂起中断控制器一样。  

    更进一步、10ms 时的 I 定时器中断源正常运行。

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

    Mark、

    这是有用的性能评测信息。 当处于异常状态时、您还能记录以下寄存器值:

    PIECTRL
    PIEACK
    PIEIFR6.
    PIEIER6.
    IFR
    IER

    Tommy