wzy897 2024-05-12 22:19 采纳率: 25%
浏览 144
已结题

Can/canfd 总线错误问题,错误显示控制器要发1,结果总线检测到0

#mcp2518##can##canfd#
想请教一下有人遇到过用mcp2518或者其他can控制芯片,接收方向没问题,但是发送数据时遇到报错,错误显示控制器要发1,结果总线监测到0这种问题吗?非仲裁段
而且是有时候又能发几帧然后卡住报错

img

  • 写回答

23条回答 默认 最新

  • 笑面虎 2024-05-12 22:19
    关注

    以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


    【您想要解决的问题】:您想要解决的问题是在使用MCP2518 CAN控制器芯片进行数据发送时遇到的一个错误。具体来说,控制器意图发送逻辑1(显性电平),但CAN总线上检测到的是逻辑0(隐性电平),这个问题在非仲裁段发生,并且是间歇性的,有时候能够发送几帧数据后才会出现错误。

    【图片内容】:您上传的图片包含了MCP2518的错误寄存器(Error Flags)的详细信息,列出了各个位(bit)的具体含义,这些信息对于诊断CAN总线上的错误非常有用。

    【问题出现原因】:问题的出现可能有几个原因:

    1. 物理总线问题:可能是由于总线本身存在故障,如断线、短路或接地问题。
    2. 电气干扰:电磁干扰(EMI)可能导致总线上的信号不稳定。
    3. 软件配置错误:可能是CAN控制器的配置参数设置不当,如波特率不匹配、错误处理逻辑有误等。
    4. 硬件故障:MCP2518芯片或其他相关硬件可能存在故障。

    【问题解决方案】:为了解决这个问题,您可以尝试以下步骤:

    1. 检查硬件连接:确保CAN总线的物理连接正确无误,没有断线或短路。
    2. 减少电磁干扰:检查是否有可能的电磁干扰源,并尝试减少它们的影响。
    3. 检查软件配置:确保MCP2518的配置正确,包括波特率、错误处理等设置。
    4. 更新固件/软件:如果有可用的固件或软件更新,尝试更新到最新版本。
    5. 使用示波器:使用逻辑分析仪或示波器来监测CAN总线上的实际信号,以确定问题是否在硬件层面。

    【提供代码】:由于您提供的错误信息与硬件操作相关,而不是软件代码问题,因此这里不涉及修改代码。但是,确保您的CAN通信软件正确处理了错误寄存器中的位,并且在检测到错误时采取了适当的恢复措施。

    【代码运行方式】:这个问题的解决更多地依赖于硬件检查和配置,而不是软件代码的运行。

    【代码预期运行结果】:如果问题解决,您应该能够在不出现上述错误的情况下持续地发送和接收CAN总线上的数据。

    【推荐相关链接】:

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 修改了问题 5月17日
  • 创建了问题 5月12日