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.

[参考译文] TMS570LC4357:无法通过 TJA1028 LIN 收发器发送 LIN 消息

Guru**** 1821750 points
Other Parts Discussed in Thread: LAUNCHXL2-570LC43, TMS570LC4357, HALCOGEN, TM4C129ENCPDT, SEGGER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1312655/tms570lc4357-cannot-send-lin-message-through-tja1028-lin-transceiver

器件型号:TMS570LC4357
主题中讨论的其他器件:LAUNCHXL2-570LC43、、 HALCOGENTM4C129ENCPDTSEGGER

您好!

我想缩小我使用的开发板或我使用的 TJA1028 LIN 收发器之间的问题。 我正在使用 LAUNCHXL2-570LC43开发板尝试通过其中的两个收发器将 LIN 消息发送到另一个 LAUNCHXL2-570LC43板以接收该消息。 但是、我无法通过收发器传输整个消息。 出于某种原因、只有接头才能使其通过 TX 线路传输到 LIN 线路。 我在电路板上的 TX 线处进行了测量、看到出于某种原因、它仅将接头发送到收发器。 不是消息不是通过收发器发出、而是只发送标头。 处理在报头后发送 LIN 报文的代码也同样被擦除。  

但是、只要电路板上运行的代码完全相同、但将 TX 和 RX 线连接在一起、我就可以清楚地看到整个消息。 此外、每当我与两个 NUCLEO-H753ZI 板进行通信时、就会传输整个消息、而不仅仅是标头。 收发器本身确实可以正常工作、开发板也可以自行工作、但收发器与开发板的组合会导致一些问题。

是否有一些设置可能阻止 TMS570LC4357上的 LIN 总线根据其设置的硬件发送报文?

谢谢。此致、

伊恩

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

    尊敬的 Ian:

    我希望您删除如上所示的"linEnableLoopback"函数、并正确执行所有其他步骤。

    我的意思是  

    1.调用初始化函数

    linInit();
    2.调用 set length 函数
    linSetLength (linREG1、7);
    3.呼叫发送标头
    linSendHeader (linREG1、0x28);
    4.呼叫发送数据
    linSend (linREG1、&text1[0]);
    如果您按照上述所有步骤操作、那么代码应该起作用;如果您在执行上述步骤之后仍然面临问题、请分享您的完整项目以供我们分析。
    --
    谢谢。此致、
    Jagadish。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jagadish、您好!

    是的、我确保删除  linEnableLoopback 函数、并且我确实执行了这些必要的步骤。 我甚至在将板的 LIN RX 和 TX 线相互直接连接的情况下使用逻辑分析仪测量了信号、以确保可以看到信号、我确实做到了。 但是、当连接到收发器而不是其本身时、不会发生这种行为。 除此之外、LAUNCHXL2板还会停止其他器件与其进行通信。 两个 NUCLEO 板可以通过由两个收发器组成的 LIN 总线进行通信、但当这些 NUCLEO 板之一替换为 LAUNCHXL2板时、仍可以在总线上看到来自 NUCLEO 板的信号、它们无法在 LAUNCHXL2 RX 线路上看到。

    我还确保按照示例中的所有步骤操作、但添加了  

    "while ((!(linIsTxReady (linREG1)))||(linREG1->FLR & 0x8U == 0x8U));"行。
    通过在代码中使用该行、即使在环回中、也会将 TMS570置于无法退出的无限循环中。 我不确定这是否与问题相关、但它也是我面临的一个小问题。
    这是我在 Halcogen 中设置 LIN1外设的方法。 我还确保在 VIM 通道中启用 LIN1高 IRQ。
    我想分享两份逻辑分析仪捕获结果、以展示我的意思、以防描述不当。  
    第一次捕获的是 STM NUCLEO 板不断向 LAUNCHXL2板上的 TMS570发送消息的捕获:
    第二次捕获是尝试从 LAUNCHXL2板向 STM 板发送消息的捕获结果。
    谢谢。此致、
    伊恩
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ian:

    我将要对工程进行调试、但在此之前、我找到了以下主题:

    (+) CCS/TMS570LS0432:LIN 总线问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    它看起来与我们的问题类似、此处客户通过添加奇偶校验位解决了问题。 您能否在终端尝试相同操作?

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    我确保计算出的 ID 包含奇偶校验位、并且我确保在 Halcogen 中更改设置以启用 ID 奇偶校验。 不幸的是、问题仍然存在。 我决定试着看一下我能否在两个 LAUNCHXL2-570LC43电路板之间进行通信、并且我将其中一个电路板设置为从模式。 这样、处于主模式的电路板将发送消息、而处于从模式的电路板则只接收消息。 这个问题仍然存在。

    谢谢。此致、

    伊恩

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

    P.S.我做了更多的挖掘,并完全确定问题是代码,而不是硬件。 我这么说是因为我设置了两个 LAUNCHXL2板进行相互通信、并发现当发送板向 LIN 总线发送消息时、 但接收板还没有编程代码、我可以看到接收板 RX 线上的接头正常。 但是、当我对接收板进行编程时、突然该板的 RX 线绝不会降到足以容纳任何消息的水平。

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

    P.P.S.我研究了代码生成器的设置、并确保使 RX 和 TX 保持悬空、以用于 LIN。 我没有为任一器件启用上拉或下拉电阻。 即使如此、我也无法特意降低 RX 线的电压。 不过,我是偶然地做到这一点的。 我正在进行这样的设置、以便更改工程的目标配置并将相应的代码编程到适当的板上。 但是、我不小心将用于发送 LIN 消息的代码插入到两个板中、因此它们都最后发送报头。 当接头相互冲突时、RX 线能够降至足够低的电压、以识别活动。 我不知道情况为什么是这样的、但这可能可以提示这个设置存在的问题?

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

    尊敬的 Ian:

    对不起,我的回应延迟,我被其他问题困扰了过去几天。

    问题在于、我没有  TJA1028 LIN 收发器来最终测试此问题。

    我们能不能计划一个现场调试会话吗?在此会话中、您可以向我展示您将获得的波形、 我们也可以讨论我们的想法。

    如果你没问题,然后我将在上午10点到晚上8点 IST (印度标准时间). 因此、在方便的基础上 、我们可以计划一个课程。

    同时、 如果可能、请发送您的完整项目、以便我可以进行一次代码验证。

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    不用担心。 我认为这肯定是一个相当繁忙的立场。 感谢您返回到我的问题。 不幸的是、我无法与您分享我的整个项目、因为其中大部分都是专有机密。 但是、我已经使用我在项目中一直使用的 LIN 配置创建了一个新的示例项目。 请 在下面找到项目:

    e2e.ti.com/.../halcogen_5F00_example.zip

    我将能够参加现场调试会话。 然而,由于时间差,我将真正只能从上午10:00 (印度标准时间)到上午11:30 (印度标准时间)或从下午5:30 (印度标准时间)到晚上8:00 (印度标准时间)。 我们如何进行实时通信? 1月29日星期一这两次中的任何一次是否适用于您?

    我还想指出的是,我在此期间了解了我的一个问题的原因。 我正在浏览技术参考手册时发现、一个位错误会导致微控制器几乎立即中止发送任何数据。 我浏览了代码、发现当电路板 RX 线和 TX 线之间没有直接连接时、会遇到位错误。 但是、我在连接它们时没有遇到此错误。 我进一步研究了、了解了微控制器必须测量它自己在 RX 线路上在 TX 线路上发送的消息、并确保数据匹配。 如果不匹配、会设置位错误标志。 这就解释了为什么我可以在 MCU 连接到它本身时测量完整消息、但在任何其他情况下都不能测量到完整消息。 由于 MCU 的 RX 线的电压下降幅度不够低、无法记录为一条消息(即使测量了一些压降、这表明存在一些  活动)、也必须发生位错误、这意味着永远不会发送响应。 我在使用另一开发板时能够将 RX 线路拉低到足够低的水平、因此我认为此问题与软件而不是硬件有关。 但是、我认为如果 RX 线路电压的问题一直没有下降到足以触发任何测量、那么 LIN 从不发送响应的问题也将得到解决。

    谢谢。此致、
    伊恩

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

    P.S.  

    我能够通过将 RX 和 TX 线短接在一起、然后测量 LIN 总线来验证这确实是个问题。 没错、确保 RX 线会测量发送的报头、然后我可以在 LIN 总线上看到报头和响应。 断开短接连接将导致 LIN 总线上只能再次看到接头。 如果能够解决电压电平错误的问题、就可以了。

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

    尊敬的 Ian:

    我今天下午6点与您安排了一次会议。

    这是会议链接。 如果不方便、请告诉我。

    https://ti.webex.com/ti/j.php?MTID=m789694871338da2bfc7a7e47305ed437

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    我很抱歉当时没有和你见面,但我看不到你的消息,直到你退出了很多小时后,由于时间的差异。 明天2月1日、我会随时与您会面(最好在 IST 下午6点与您会面、如您建议的那样)。 如果提前一天安排会议并给予通知,我将更容易出席会议。

    谢谢。此致、

    伊恩

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

    尊敬的 Ian:

    很抱歉当时没有与您会面,但由于时间差异,我直到您注销数小时后才看到您的消息。

    完全理解、没有问题。

    我正在创建新链接、请于今天下午6点加入:

    https://ti.webex.com/ti/j.php?MTID=md8d5e0a2610522a938995739c7d0166b

    --
    谢谢。此致、
    Jagadish。

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

    尊敬的 Ian:

    您今天有空进行讨论吗?

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

    Jagadish、您好!

    e2e.ti.com/.../1346.captures.zip

    以下是我们会议的逻辑捕获。

    谢谢。此致、

    伊恩

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

    尊敬的 Ian:

    我今天早上刚刚解决了这个问题、但我还没有找到根本原因。 我怀疑可能是电压电平问题。 我还没有使用收发器测试我们的 LIN 板、因此我只订购了一个外部 LIN 收发器板、会在3到5天内交付。

    我想使用此电路板进行测试并观察其行为。  

    我希望这不会成为你的问题。

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    不,这对我来说不是一个问题。 谢谢您告诉我。 在我这样做之前、如果您能发现我错过的任何东西、请告诉我。 感谢您的全力帮助。 如果您需要满足需求或需要更多信息、请立即联系我们。

    谢谢。此致、

    伊恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否,这对我来说不是问题。 感谢您通知我。

    感谢您的理解。

    如果您需要满足或需要更多信息,请随时联系我们。

    当然可以。

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

    尊敬的 Ian:

    我了解了问题的根本原因。

    此问题是由用于 XDS110调试探针的"TM4C129ENCPDT" IC 引起的。

    您可以看到、TMS570LC4357控制器的 LIN1RX 线路与   TM4C129ENCPDT IC 的 U0TX 引脚并联。

    如果我们验证 TM4C129ENCPDT 控制器的数据表、该引脚的默认状态为带 TTL 缓冲器的逻辑高电平。

    因此、由于这一事件是由于 LIN 收发器由于  TM4C129ENCPDT 的 TTL 逻辑高电平而尝试向 TMS570控制器发送逻辑低电平、因此生成的值只变为逻辑高电平。

    在进行测试后、我发现了这一根本原因、但没有将 Launchpad 的 RX 线路连接 到 LIN。

     

    在本例中、我观察到 LIN 收发器完美地发送信号、但一旦它与 Launchpad LIN RX 线路连接、就会损坏。

    现在、我将我的应用更改为 LIN2、然后再次进行测试、因为 LIN2 RX 和 TX 线路未连接到任何其他 IC、所以现在我得到了正确的波形。

    下面是我的 LIN2应用程序、供您参考:

    e2e.ti.com/.../LIN2_5F00_Example_5F00_LC4357.zip

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    是否有办法禁用该 U0TX 引脚上的上拉电阻器? 状态、是不是高电平? 我们的公司在此阶段无法切换到 LIN2、我想知道是否有解决方法。

    您为 Halcogen 中的 LIN 端口设置是否也可以部分地纠正这种情况? 我们的项目不使用 XDS110调试探针。 我们将使用 XDS110作为开发板来练习设置 LIN 通信。 我们的项目使用 J-Link。 因此、我们应该不会看到该问题、因为我们的设置中不存在该 IC。 但是、我们仍然看到这个问题、是否可以像您在文件中显示的那样设置 LIN1端口来解决这个问题?

    谢谢。此致、

    伊恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您为 Halcogen 中的 LIN 端口设置是否也部分地纠正了这种情况? 我们的项目不使用 XDS110调试探针。 我们将使用 XDS110作为开发板来练习设置 LIN 通信。 我们的项目使用 J-Link。 因此、我们应该不会看到该问题、因为我们的设置中不存在该 IC。 但是、我们仍然看到这个问题、是否可以像您在文件中显示的那样设置 LIN1端口来解决这个问题?

    很抱歉、我没有收到此内容。

    您的硬件是否具有 XDS110 (TM4C129ENCPDT) IC?

    如果您的项目没有  TM4C129ENCPDT 这个 IC、并且没有将 这个 IC UART 线路与控制器连接、 那么应该不会有任何问题。 在这种情况下、LIN 应正常工作。

     如上所示、如果您的项目有此 IC 和控制器 LIN 线路与此 IC 连接、那么我认为的一种权变措施是更改 XDS110 (TM4C129ENCPDT)调试 IC 的固件、 在其 固件中、如果我们将相应的 UARTTX 线路更改为某些 GIO 输入功能、那么问题应该得到解决。 但我不知道我们是否可以更改该固件、我也不知道如何获取其源代码。

    首先、我想知道这些 LIN1引脚的硬件连接。 如果可能、请 在图片中绘制这些线路的硬件连接并将其分享给我。

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    我想说的是、在我们的项目中、我们不使用 LAUNCHXL2开发板、因此我们不使用 XDS110调试探针连接到我们的项目。 我们使用 Segger J-Link 连接到我们的项目、因此这不会成为我们在实际项目中出现问题的原因。 使用 LAUNCHXL2板进行测试的原因是为了便于我练习 LIN 通信、以便在我们的项目中实施。 但是、尽管我们不使用 XDS110调试探针、但我们在电路板上仍然看到同样的问题。 我尝试像在示例项目中一样设置 LIN1引脚(如上一篇文章中的图片所示)、但问题仍然存在。 我们的硬件设置采用不同但相似的 LIN 收发器。 它几乎与我之前向您展示的设置完全相同。

    谢谢。此致、

    伊恩

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

    尊敬的 Ian:

    因此、您的定制硬件中的 LIN 线路仅在控制器和收发器之间、对吗?

    它们没有路由到电路板上的任何其他部件、对吧?

    大家可以确认一下吗?

    谢谢。此致、

    Jagadish。

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

    Jagadish、您好!

    您的示例项目为我们提供了使项目一切正常工作所需的知识。 我们只需要摆弄 LIN 外设的上拉/下拉电阻器。 我会建议任何遇到类似 LIN 外设问题的人也这样做。

    谢谢。此致、

    伊恩

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

    尊敬的 Ian:

    所以、您说它在更改上拉/下拉值后可以正常工作吗?

    您能否告诉我您正在使用的确切值是什么以及 您最终的连接是什么?

    --
    谢谢。此致、
    Jagadish。