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.

[参考译文] CCS/EK-TM4C129EXL:具有 EK-TM4C129EXL 的 SPI 至 CAN FD SBC + LIN 收发器 BoosterPack

Guru**** 2535750 points
Other Parts Discussed in Thread: EK-TM4C129EXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/869509/ccs-ek-tm4c129exl-spi-to-can-fd-sbc-lin-transceiver-boosterpack-with-ek-tm4c129exl

器件型号:EK-TM4C129EXL

工具/软件:Code Composer Studio

大家好、我有一个采用 LIN 协议的超声波传感器、我需要读取它的数据、因此我使用 EK-TM4C129EXL 的 BOOSTER-Pack1将 SPI 连接到了 TI 的 CAN FD SBC + LIN 收发器 BoosterPack。  

有关如何使用 LIN 协议的任何建议?

是否有任何支持的 C 代码

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

    您好、Ahmad、

    遗憾的是、我不知道 TI 提供的任何支持使用该器件实现 LIN 接口的 C 代码。  不过、您可能需要参考此主题中先前的讨论以了解更多信息、但:

    此致、
    最大

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

    我们没有 LIN 驱动程序 C 代码。 用于 UART 的 TivaWare 中的低级函数可用于配置波特率、发送和接收字符。 LIN 协议需要在软件中实现。

    这是一个总体良好的 LIN 应用手册。 如果使用 TM4C129作为主节点、则设置波特率很容易。  

    http://www.ti.com/lit/an/slla383/slla383.pdf

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

    感谢  和 Bob 提供的信息

    1) Bob 抱歉、您所说 的 LIN 协议是什么意思需要在软件中实现的。

    2)我能否将 现有的 UART API 与 LIN 标准一起使用(尽管对于 LIN (14位)来说,中断条件比标准 UART 的时间长一点)。

    我使用  TM4C129作为主节点,如何设置 LIN 协议的波特率和同步间隔。 我访问 了 http://www.ti.com/lit/an/slla383/slla383.pdf 、但找不到我的答案。

    如上所述,我还  通过 TM4C129将 SPI 连接到了 TI 的 CAN FD SBC + LIN 收发器 BoosterPack,为了使用 LIN 驱动器,我通过收发器的 LIN-Term 连接了传感器的 LIN 信号数据。 和 具有  TM4C129 BoosterPack1的收发器 BoosterPack    (具有 PC5 (U7Tx)的 LIN UARX、具有 PC4 (U7Rx)的 LIN uATX)

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

    您好、Ahmad、

     Bob 在本周剩余的时间内不在办公室。 如 Bob 所述、TM4C129不支持 LIN 端口。 我不是 LIN 专家、但我找到了以下示例 LIN 消息格式。 我想 Bob 所说的是、当 UART 端口接收到字符时、您的软件将需要解密 LIN 消息的哪一部分。 您的软件将构建基于软件的状态机。 首先需要对同步中断字段和 SDEL 字段进行解密、可能需要在 LIN 协议指定的持续时间内轮询 UART_RX 引脚。 一旦软件状态机检测到同步间隔和 SDEL、它将移至等待 UART 接收字符的下一状态。 当 UART 接收到一个字符0x55时、您的软件需要知道它是消息头中 SYNC 字段的一部分。 状态机将再次移至等待 ID 字段的下一状态。 当接收到下一个 UART 字符时、它将确定要发送的 LIN 报文的 ID 字段。 在 TM4C129器件上没有 LIN 支持的情况下、我认为这就是我们所能提供的一切。  

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

    您好、 Charles、

    非常感谢您提供的信息

    我在如何通过 UART 发送系统中断(除1位定界符外、它还具有13位)方面遇到困难

    就像我有以下 LIN 帧:break+Syns (0x55)+PID (0x78)+Data1 (0x01)+Data2 (0x00)+CHECKSUM (0x86);

    我初始化一个字节阵列、以通过 UART 发送该数据包

    X={break (value)、0x55、0x78、0x01、0x00、0x86};

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

    您好、Ahmad、

     正如您所知、UART 和 LIN 是两种不同的协议。 您不能创建具有13个显性位的 UART 帧。 我想您可能需要考虑使用 GPIO 来创建同步间隔字段、并使用外部多路复用器在 GPIO 和 UART_TX 之间切换以驱动 LIN_TX 引脚。  

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

    我在 EK-tm4c129exl 数据表中看到 UART 会生成中断
    寄存器7:UART 线控寄存器(UARTLCRH)、偏移量0x02C、第1310页

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

    您好!

     您发现了我以前从未使用过的内容、当您应用 break 命令时、您看到了什么? 您可以使用以下 API 来控制中断。 请注意、您需要根据数据表、通过软件断言至少两个帧的中断。 让我们知道情况如何。 如果您可以让它正常工作、那么它将使寻求相同解决方案的社区受益。