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.

[参考译文] MSP430FR6043:器件勘误表 USCI42

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1048219/msp430fr6043-device-erratasheet-usci42

器件型号:MSP430FR6043

您好!

在我介绍 MSP430FR6043IPN 的勘误表时、我遇到了 USCI42、其中指出:

USCI42 USCI 模块

类别:功能

功能:UART 在多字节传输中的每个字节后将 UCTXCPTIFG 置为有效

描述:当通过 UART 发送多字节序列时、UCTXCPTIFG 标志在每个 UART 字节传输的最后一个停止位被触发、而不是一个空的缓冲器。 在 DMA 传输和 DMA 传输不进行的情况下会发生错误的 UART 行为。

解决方法:无。

为什么没有解决此问题的方法? 勘误表是否对使用 UART 功能进行 RS232通信造成了问题?  

谢谢、

John

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

    尊敬的 John:

    此勘误表没有权变措施。 您可以看到原始的 e2e 帖子。

    e2e.ti.com/.../1704730

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

    感谢 Allen 向我介绍这篇文章。 不幸的是、没有明确的解决方法。

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

    您好、Allen、

    我仍在尝试解决这个问题。 CTM 在您发送的帖子中发送了以下变通办法。 为什么这不是已发布的权变措施、因为我看不到您如何不能同时监控  UCTXCPTIFG  和 UCTXIFG?  

    可能的解决方法如下:

    (第四个片段)
    DMAIFG DMAxCTL DMA4-Base + waitflagset 等待 DMA 完成
    UCTXIFG IFG eUSCI-A3-Base + waitflagset \等待 txbuf
    UCTXCPTIFG IFG eUSCI-A3-Base + BIC! \清除停止位标志
    UCTXCPTIFG IFG eUSCI-A3-Base + waitflagset \等待停止位标志 

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

    您好 John,

    没有发布正式的解决方法。 正如之前的帖子所说的、您可以设置一个计数来计算已接收到的用于字节计数的中断数量。 当每个字节转换完成时、两个标志都将置1。 那么、如果您想指示多字节传输完成、为什么要监控这两个标志呢?  

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

    艾伦  

    您是否说在每个字节被传输后 TXBUF 也会被触发? 完全清空缓冲区时不会这样做?

    如果发送可变长度消息、那么解决此问题的唯一方法是预先计算消息的字节长度并将该数字用作计数阈值吗?

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

    我认为可以使用 TXIFG 来确定传输是否真的完成。 但仅当您在 ISR 中使用 IV 寄存器时。

    由于 TXCPTIFG 标志在停止位被发送后置位、TXIFG 和 TXCPTIFG 之间应该有一个延迟。 (TXIFG 的优先级也更高)读取 IV 寄存器会清除中断和标志(因此发送文档)、因此即使您没有向 TXBUF 写入更多数据、TXIFG 也会被清除。 这是清除 TXIFG 的常用方法。

    因此、TXIFG 中断发生、ISR 将检查并查找不再发送的数据、清除 TXIE 并退出。 现在、发送移位寄存器中有数据、途中有两个 TXCPTIFG 中断。

    第一个示例将照常清除 TXIFG。 当发送移位寄存器清空时、它会置位 TXIFG、但 TXIE 清零、因此没有中断来清零。 现在、TXCPTIFG 中断发生并找到 TXIFG 置1。

    当然、这取决于详尽记录的详细信息、因此现在可能可以工作、但未来的硬件可能会失败。

    您也可以使用 TXIE 来辅助 TXCPTIFG。 如果 TXIE 被置位、那么清零一个静态计数器。 如果 TXIE 清零、则递增计数器;如果它等于2、则传输实际上已完成。

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

    David、

    感谢您的解释。 在我看来、这些权变措施(监控 IV 寄存器或在 TXCPTIFG ISR 中添加计数)在每种情况下都应该适用于这部分硬件。 是否有理由不在勘误表中发布它们?  

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

    可能是因为没有任何东西会关闭额外的 TXCPT 中断。 您只需按原样处理它们。

    我发现了错误、TI 负责勘误表。