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.

[参考译文] TMS320F28076:使用 SCI 将信号转换为485信号的多站传输

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1247175/tms320f28076-multi-station-transmission-using-sci-for-converting-to-485-signals

器件型号:TMS320F28076

您好~

我们使用 THVD1452DR 芯片将 UART 信号转换为485信号。 我们还有一个用作主站的28076器件和多个用作从站的28076器件、使用 SCI 进行通信。 当站点 A 想要进行传输时、其他从站需要下拉 THVD1452DR 的 DE 引脚。 但是、此操作也会导致主站的 Rx 信号进入低电平、从而触发 RXERROR 标志。 是否有任何方法可以解决此问题?

提前感谢!

祝你一切顺利。

阿兰

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

    您好、Alan!

    感谢您的提问。 您的描述表明、BRKDT 位正在被设置、这在 RX 线被拉低时是典型情况。 如果您想清除此标志、可以切换 SWRESET 位以复位 SCI 模块、也可以进行系统复位。 这两个位中的任何一个都将清除 BRKDT 位(以及 SCICTL1寄存器中提到的其他位)。

    我认为、器件上 RX 引脚的长拉低电平用于在器件中触发某种类型的中断是标准的、因为 BRKDT 用于在系统中发出信号、需要向系统发出状态变化警报。

    此致、

    文斯

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

    Vince,谢谢您的回复

    我们已对系统进行重置以解决此问题、但在运行期间重复重置系统可能导致数据接收速度变慢或丢失。 是否有办法解决此问题?

    谢谢。

    阿兰

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

    您好、Alan!

    你也可以使用 SCICTL2.RXBUKINTENA 位忽略 RXRDY 和 BRKDT 中断(必须被禁用、不能只禁用 BRKDT)。

    此致、

    文斯

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

    您好,Vince,

    我忽略 RXRDY 和 BRKDT 中断、它确实有助于减少某些错误的发生、但仍然会发生一些帧错误。

    现在、我使用了一个上拉和一个下拉电阻器来为485提供空闲期间的电势差、虽然它不会引起错误、但是感觉不是一个好的解决方案。 是否有任何其他解决方案可用?

    谢谢。

    阿兰

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

    您好、Alan!

    485接口是否为5V? 如果是这种情况、这肯定会是问题所在。 如指南中所述、需要使用电平转换器从3.3V 转换到5V、使用电阻器进行简单的电压降压/降压会导致不正确的中轨电压并在值之间浮动、或者通常只是意外的下拉电阻。

    此致、

    文斯