亲爱的恩智浦支持团队
我目前正在 RT1170 上使用 SDK 和 LPUART1 进行 UART 通信。我在发送 BREAK 检测时遇到了一个问题,希望得到您的指导。
问题描述:
当我启用LIN 中断检测 (LBKDE)和LBKDIE 时:
MCU 成功检测到来自 PC 的发送 BREAK 信号(LBKDIF 标志置位)。
但是,正常的 UART 数据通信不起作用。
在正常 UART 模式下,RX 和 TX 正常工作。
示波器测量结果显示,在发送中断期间,PC 的 TX 线路在预期的持续时间(约 2100 毫秒)内保持低电平。
问题
RT1170 LPUART 是否会出现这种行为?
有没有既能检测 PC 发送 BREAK,又能进行正常 UART 通信的推荐方法?
如果您能指导我如何在保持 RT1170 正常 UART 数据接收的同时可靠地检测到来自 PC 的发送中断(Send BREAK),我将不胜感激。
感谢您的帮助。
顺祝商祺!
亲爱的恩智浦支持团队
感谢您之前的解释和对 RT1170 参考手册的参考。
根据 RM 的描述,我们可以理解当LBKDE = 1 时,LIN 中断检测电路被启用,接收到的数据不会写入 RX FIFO,因此正常的 UART 接收会被有意禁用。我们承认这种行为是意料之中的。
不过,我们想就可能的替代方案或建议的解决方案提出一个后续问题。
检测来自 PC 的发送 BREAK条件(通过 USB-UART)。
同时,继续正常的 UART 数据收发。
不需要 LIN 协议栈;这是一般的 UART 通信,BREAK 用作同步或控制信号。
LBKDE = 1时
LIN BREAK 检测正确(LBKDIF 已设置)。
正常 UART RX 数据被阻断,如 RM 所述。
LBKDE = 0时
正常 UART RX 正常工作。
RT1170 是否支持或推荐在不启用 LBKDE 的情况下,在保持正常 UART RX 激活的同时检测发送中断(Send BREAK)的方法?
是否认为使用成帧错误 (FE) + RX FIFO 清除是非 LIN UART BREAK 检测的预期解决方法?
在使用 LBKDE 与普通 UART 通信时,是否存在任何勘误、未注明的设置或硬件限制?
如果不支持这种使用情况,能否请您确认RT1170 LPUART 在设计上不支持同时进行 LIN BREAK 检测和正常 UART 接收?
如果您能确认或推荐任何最佳做法,我们将不胜感激。
非常感谢你们一如既往的支持。
顺祝商祺!
你好@dskim2、
感谢您关注恩智浦 MIMXRT 系列!
您所描述的现象是意料之中的。请参阅 RM 的以下解释:
Gavin_Jia_0-1768802115983.png
此外,我们的一位同事也实现了类似的功能,或许对您有所帮助:
致以最诚挚的问候,
Gavin