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.

[参考译文] MSP430FR6007:eUSCI - UART 模式- RX 停止位

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1074386/msp430fr6007-eusci---uart-mode---rx-stop-bits

部件号:MSP430FR6007

你(们)好

 

在 UART 模式下,eUSCI 的接收器似乎需要 UCSPB 选择的停止位数才能正确接收。

这是正确的吗?

 

未明确说明 UCSPB 设置如何单独影响 TX 和 RX。

我们可以找到的 RX 和 STOP 位之间的唯一参考位于帧错误描述中:

 

“帧错误

UCFE

检测到低停止位时出现帧错误。 当使用两个停止位时,两者都是

检查停止位是否存在帧错误。 检测到帧错误时,将设置 UCFE 位。”

 

因此,我们可以从 UCFE 中看到是否收到了所需的停止位数。

但我们不需要在协议中处理帧错误。 它具有内积错误检测功能,例如通过 CRC 检查。

 

我们看到的是,用一个停止位传输的数据未正确接收。

第一个字节接收正确,但以下字节不正确–其方式可能与延迟接收不同步匹配。

因此,接收器部件的停止位设置似乎不仅影响帧错误功能,还控制接收器何时打开以获得新的起始边缘。

 

我们的协议指定了两个传输停止位。 这仅用于在接收器的下一个起始边缘获得重新同步的额外边距。

在我们过去使用过的嵌入式设备(TI 和其他产品)中,接收器始终只需要一个停止位,与 UART 停止位设置无关。 例如,在 MSP430x4xx 系列的 USART 外设中。

由于我们的设备与各种其他设备(包括我们自己的和第三方的设备,以及嵌入式和通用设备)连接,因此其中一些设备只使用一个停止位(错误地或因为无法在特定设备中控制它)。 我们无法控制这种情况,也不想控制,因为它工作正常。

 

如果我们的设备 TX 有两个停止位和 RX 的一个停止位,它可以与所有其他一个和两个停止位的组合配合使用。

如果我们的设备 TX 有两个停止位,并且在 RX 上需要两个停止位,则它只能与计数器部件 TX 有两个停止位的组合配合使用。

 

我们知道“总是一个 RX 停止位”是“文本簿不正确”。

但在正常的异步通信中,它可以提供重要的灵活性和利润。

 

在我们的情况下,理论上我们可以强制所有其他设备遵守该协议。

但实际上,在许多情况下,我们需要向后兼容性,因为它可以与现有设备或无法更改的设备配合使用(例如,如果客户从不再存在的分包商处购买了他们自己的设备)。

 

在现有或即将推出的 TI 器件或系列产品中,是否仍存在这种情况?

 

我们建议采用以下解决方案之一:

1) UART RX 仅检查一个停止位,与 UART 停止位设置无关。

2) UART 在最多1个停止位后可能会收到新的启动边缘,与 UART 停止位设置无关。

3) UART 中的停止位设置被拆分为 RX 和 TX 的单独设置。

 

在当前项目中,我们可以使用两个单独的 eUSCI 分别用于具有不同停止位设置的 TX 和 RX。 但这意味着我们永远无法使用每个接口的相反部分。

在其他产品中,我们需要更多具有此功能的接口,而不是每个接口支持两个 eUSCI。

 

 

我们真的希望得到一个积极的答案!

/Mads

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

    你好,马德斯

    简而言之,您可以指定一个或两个停止位。  如果 MSP430被配置为使用2个停止位,则它期望接收设备接收和发送相同的2个停止位。  同样,在使用1停止位时也是如此。

    让我消化你们的其他评论,我将作出回应。

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

    你好,马德斯

    UART 字符中的位数由一个起始位(ST),数据位数,停止位数(SP)和奇偶校验位数(P)定义,忽略本例中的地址位。  典型的 N81配置为无奇偶校验,8个数据位和1个停止位,因此 UART 字符由10位组成: ST + 8DATA + SP。  发射和接收都是如此。  您正在与之通信的另一个 UART 必须采用相同的字符格式,否则将出现帧错误。

    这是否有帮助?

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

    接收者坚持使用两个停止位似乎是不寻常的,根本没有用处。 检查几个旧学校 UART (MC68681,16C550)后发现,它们的接收器只需要1个停止位。

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

    你好,Dennis

     

    感谢您的回答。

     

    简而言之:

    不,这些信息对我们没有帮助。

     

     

    我完全理解这一描述。 我知道所有部分的参数都应该具有相同的字符格式,接收者应该检查所有传输的位。

    例如,如果系统/协议支持多主控制器,并且需要检查总线冲突,则可能是相关的。

     

    但是——我完全同意大卫·舒尔兹!

    我以前从未见过一个“简单”UART 功能,它可以检查两个停止位!

    和–如我在原帖子中所述–您自己的旧设备(例如 MSP430F4xx)也没有检查第二个停止位!

     

    与当今的标准相比,单奇偶校验位和多个停止位提供了极低的位错误防护。

    另一方面,如果字节被传回后,接收器应重新同步到下一个起始位的起始边缘时,多于 RX 停止位的 TX 停止位提供了一个边界。

     

    例如,我们看到了具有极差时钟源的 PC UART (特别是在笔记本电脑上)。 其中一些甚至如此之大,以至于累积的边缘误差超过了最后一个数据位的50%限制(等于时钟误差超过50%/ 1+8位~= 5.5%-与32kHz 晶体上通常为20ppm 的误差相比,这一误差很大!!)。 这些病例是无法掩盖的原因。

    对于时钟误差低于5.5%(不考虑任何边缘偏移)的对应方,如果严格规定 TX 和 RX 上的停止位数量相同,则当字节被传回后,最慢的部分将无法赶上对应方。 如果接收器没有准备好用于起始边线,并在以后的边线触发,则第二个字节的采样将错误。

    在这种情况下,保证金可以挽救这种局面。

    我知道这是否是您的 eUSCI 模块的重大改变。

    我想 eUSCI 在下使用相同的状态机,用于 TX 和 RX!?

    然后,当 TX 和 RX 上的停止位同时处于活动状态时,这是一种结构变化,可以区分它们。

     

    如果您以这种方式来看待您的体系结构,也许您的人可以找出一个简单的解决方案:

    我们并不一定需要在 TX 上额外的停止位–“只是”后向 TX 字节之间的时间差。

    例如,解决方案可能是在 TX 上的字节之间有一个简单的延迟(可能可以配置)。 重要的是 RX 不应受此“TX 字节延迟”的影响!

     

     

    我们需要的是对以下问题的回答:

    您的员工是否在现有或即将推出的 TI 器件或系列中积极研究或至少考虑改变这一点?

     

    它将帮助我们在新产品设计方面将 MSP430与您的竞争对手进行比较。

    如果没有这方面的解决方案,我们就不需要将 MSP430视为首要任务之一。

     

    此致

    马德斯

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

    你好,马德斯

    你提出了一些好的观点。  我将很高兴地由 TI 在这里做出这些决定的人来管理这项工作。  我会给你回复,但鉴于这个问题的性质,可能需要几天时间。

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

    你好,Dennis

    谢谢你。 我宁愿等待一个有充分根据的答案( 当然希望有一个积极的答案;-),而不是快速猜测。

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

    你好,马德斯

    我在指挥系统上提出了你的请求。 我被告知您的请求(此帖子)已转发给我们的设计团队,并将被考虑在内。  TI 始终欢迎有关产品改进和新产品创意的建议,如您的建议。  现在,这就是我可以为您的请求做的所有事情。  如果您有与本主题相关的其他问题或意见,请远离,否则请单击“已解决”按钮关闭此主题。

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

    你好,Dennis

    感谢您的更新。

    据我所知 ,最终决定将需要一些时间。 当您遇到该问题或没有该问题时,是否可以获得某种通知或更新?

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

    你好,马德斯

    是的,可能需要一些时间。

    除了很好的旧式电子邮件外,没有其他“官方”发送此类通知的方式。  如果需要, 请将鼠标悬停在我的名字上,然后单击“请求友谊”。  一旦我接受,您就可以向我发送电子邮件地址。  这样它就是私人的。

    如果您在今年第4季度之前没有收到我或设计团队成员的回复,我建议您创建一个新的 E2E 帖子,要求更新。