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.

[参考译文] MSPM0G3507:“#39;Break Error'或“#39;Framing Error'检测无法正常工作

Guru**** 2689775 points

Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1587900/mspm0g3507-break-error-or-framing-error-detection-is-not-working

器件型号: MSPM0G3507
主题: SysConfig 中讨论的其他器件

我尝试在中断错误中断内设置一个断点、但它从未触发。 接收功能正常工作、但我在 PLIN View PRO 中收到一个错误、说“从器件未响应“、这意味着 TX 无法工作。

此外、我将使用 ATA663211 收发器、并按如下所示与 MSPM0G3507 控制器进行连接。 这是正确的吗? 因为在链接的工程 (www.ti.com/.../slaaek9.pdf) 中、会交叉连接:TX 到 RX 和 RX 到 TX。

TX (ATA663211)→TX (PA0–MSPM0G3507)
RX (ATA663211)→RX (PA1–MSPM0G3507)

我还附上了配置 (syscfg) 文件的屏幕截图。

目前、我已连接:

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

    尊敬的 Dhaval:

    在查看 ATA663211 的数据表时、此器件中的 TX 意味着将数据从端点传输到 LIN 总线、因此我认为它不需要 ATA663211 和 MSPM0 之间的交叉连接。

     “Break Error“或“Framing Error“是与 UART“接收“过程相关的错误、您说接收功能是正常的、因此不报告中断或成帧错误。

    至于“传输“过程、您能否测量 TX 引脚上的波形? 我猜的是 PA0 和 PA1 是 MSPM0 中的开漏引脚、如果您没有在 TX 引脚上添加上拉电阻器、它通常可能不会输出高电平信号。

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

    嗨、Pengfei、

    感谢您的回答!

    和 “Break Error“或“Framing Error“是与 UART“接收“过程相关的错误、正如您所说的接收函数是正常的、因此没有报告中断或成帧错误。

    根据我在其他微控制器(例如 Microchip PICS)方面的经验、中断错误中断和成帧错误中断用于检测 LIN 帧的开始。
    尽管在 SysConfig 中启用了中断错误中断(可选)和组帧错误中断、但在收到 LIN 消息时、不会触发中断和组帧错误中断。  
    中断既不能识别中断字段(即连续 13 或 14 个零)、也不能识别同步字节 0x55、即使它由逻辑分析仪显示(即,它实际上存在)也不例外。  

    只 识别包含 PID 和以下数据字节的第一个实际字节。

    至于“传输“过程、您能否测量 TX 引脚上的波形? 我猜测其中一个是 PA0 和 PA1 是 MSPM0 中的开漏引脚、如果您不在 TX 引脚上添加上拉电阻器、它通常可能不输出高电平信号。

    TX 引脚一直处于低电平。 我知道 TX 低电平有效。
    根据您的建议、在 SysConfig 中为 TX 引脚提供了内部上拉电阻器。 现在、该引脚处于高电平、就像它应该的那样。
    但是、发送帧以响应信息帧仍然不起作用。

    提前非常感谢、

    Matze

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

    尊敬的 Matze:

    您的意思是、实际上 MCU 中没有得到完整的接收帧、因此传输逻辑甚至也不是直接触发的?

    对于中断和帧错误、实际上它们在 LIN 模式下被禁用、   有关详细信息、请参阅 MSPM0 G 系列 80MHz 微控制器技术参考手册(修订版 C)。

    在 MSPM0 中、下降沿检测 LIN 从器件中断、并将启动计数器以记录中断时间。 我们的 SDK 中有一个 LIN 响应示例、您能尝试使用我们的 LIN 通信示例吗?

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

    嗨、Pengfei、

    我创建了一个没有中断或额外功能的全新工程 、并尝试在两个选项(LIN0 UART 模式和 GPIO 模式)下仅切换 PA0 引脚。 我还手动将引脚设置为两个逻辑电平 (0 和 1) 以进行验证。 此外、我们将逻辑分析仪直接连接到 PA0 引脚、我们确认该引脚在任何这些条件下都没有切换。

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

    嗨、Pengfei、

    我想将 LIN 收发器 ATA663211 连接到引脚 PA0 (TX) 和 PA1 (RX)。 正常工作。 TX 路径会一直处于低电平。 这是由于 ATA663211 的内部下拉电阻和 MSPM0G3507 的 PA0 引脚的配置造成的。 我无法在 SysConfig 中将 PA0 引脚配置为推挽。 默认情况下、该引脚配置为开漏输出。 您能解释一下我需要在 SysConfig 中设置什么来将引脚配置为推挽输出吗? 或者、这是否无法实现、我需要使用不同的 UART0-TX 引脚?

    如果 PA0 无法做到这一点、我会为 TX 路径使用 PIN PA28(默认配置为“高驱动“)。
    您能解释一下我需要在 SysConfig 中设置什么才能将该引脚用作推挽输出吗?

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

    尊敬的 Dhaval:

    PA0 和 PA1 是 MSPM0 中的开漏 IO。 因此它无法输出高电平、也没有内部上拉电阻器。 如果要使用该引脚、则需要一个外部上拉电阻器。

    对于其他引脚(如 PA28)、您可以按如下方式配置上拉功能: