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.

[参考译文] MSP430F5438A:当 UCAxTXBUF 为空但 UART 模式中仍然有字节被移出时、UCBUSY 的状态是什么。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1311615/msp430f5438a-what-is-state-of-ucbusy-while-ucaxtxbuf-is-empty-but-byte-is-still-being-shifted-out-in-uart-mode

器件型号:MSP430F5438A

请参阅 SLAU208Q、 p961:

该文件没有明确明确地说明 UCBUSY 应该做什么;它只是说:

USCI 忙。 该位表示一个发送或接收操作正在进行。
0b = USCI 处于非活动状态
1b = USCI 发送或接收

在论坛主题中 、https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/187077/last-byte-in-uart-communication-msp430、 Jens-Michael Gross 指出:"2274s USCI 模块在 UCA0STAT 中具有 UCBUSY 位。 很清楚芯片目前是在进行下一步发送还是接收。 如果检测到起始位边沿或写入 TXBUF、寄存器会立即置位、并在传输完成时清除。 但是、如果设置了该位、您不知道是因为接收还是发送(在您确实发送了一些内容的情况下)。 UCA0TXIFG 不起作用、因为即使最后一个字节仍在底层、它也已被设置。

Question:

  1. 在以上评论中,"转让竞争"在转让方面的定义是什么?
  2. 如果在 TXBUF 变为空后没有新字节被写入、那么 UCBUSY 何时变为零呢?  位之后是什么?  过一段时间之后?  什么是精确计时?
  3. 如果没有更多的字节被写入 TXBUF、那么可以假定 UCBUSY 再次置位的唯一原因是在 RXD 上检测到一个开始位吗?
  4. 上面的注释也指出:"如果检测到一个开始位边沿、它立即被置位。"  这让我面临一个问题:如果出现一个传入的毛刺脉冲(即、传入的脉冲短于去毛刺脉冲时间 TT)、是否可以设置 UCBUSY?  如果是、UCBUSY 保持被置位多长时间?  持续时间内发生同样的行为?  过一段时间之后?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Allan  

    我查看了 UART 代码示例: https://www.ti.com/tool/download/SLAC375

    我 在代码示例上没有找到任何 UCAxSTAT 寄存器操作。

    我想知道您是否试用过或查看过这些代码示例?

    在您提出问题时、我会尝试找到一些代码或制作一些代码来测试一些详细项目

    如果有任何更新、我会提供反馈

    谢谢

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

    您好!

    我很抱歉这么晚才回复。

    实际上、我在过去已经多次查看过 TI 代码示例。  但是、这些问题与已投产一段时间的现有应用程序中遇到的问题有关。  我很高兴你会研究这个问题,我期待你的调查结果。  感谢您的支持。

    此致、
    阿兰

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

    我不明白为什么你需要这样精确的细节在 UCBUSY 的时间。

    对我来说、唯一重要的时间是在 RS485链路中控制发送器。 但它不需要那么精确。