【问题标题】:LPC 1768 CAN bus off errorLPC1768 CAN 总线关闭错误
【发布时间】:2012-07-19 13:07:25
【问题描述】:

我正在使用 NXP 的 LPC1768 ARM Cortex M3 微控制器(datasheetuser manual)。我想在用户手册“16.5.8 CAN 控制器自测”部分中描述的自测模式下测试 CAN 总线外围设备,但它不起作用。

我尝试了 these NXP examples 描述的 on the NXP knowledgebase 并使用了 NXP 示例代码(can_self_test 代码)。所有引脚配置运行正常,所有 CAN 总线配置和 CAN 总线消息帧也运行正常(一一控制)。但是在这一步之后的 CAN1_Send 函数内部:

CANx->CMR = 0x41;

设置了错误标志。尽管如此,CAN1_Send 还是返回 SUCCESS。

事实上,这个错误状态意味着“总线关闭错误”。 “总线关闭错误”表示存在帧错误和 CAN 控制器错误。我测试数据帧和 CAN 控制器。它有效。

我使用 RS-232 电缆连接 CAN1 和 CAN2。对于自测,我使用 CAN1。

【问题讨论】:

    标签: embedded arm communication microcontroller can-bus


    【解决方案1】:

    我不熟悉那个 CAN 控制器,但这种行为并不让我感到惊讶。如果您正在执行独立测试,那么尽管您正确接收到您发送的消息,但由于总线上没有其他节点,消息将不会被确认。控制器将重试一段时间,然后进入CAN spec 的第 6 节和第 7 节中描述的错误状态

    【讨论】:

    • 感谢您的回答。这对我很有用,但我在发射引脚上看不到发射波。
    • 看不到 CAN_TX 或 CAN_H、CAN_L 对上的信号?
    • 听起来像是引脚配置问题 :( 您可能需要逐行查看所有引脚设置代码并将其与手册进行比较
    【解决方案2】:

    我在这里使用 LPC1788 时遇到了同样的问题,问题与错误的 CPU 时钟设置有关。我错误地将 CPU 设置为以 96 MHz 运行,并且我(也错误地)认为 CPU 以 100 MHz 运行。在这种情况下,CAN 波特率配置不一致,CAN 模块无法传输任何消息。然后,当我修复 CPU 时钟配置时,问题就解决了。

    【讨论】:

      猜你喜欢
      • 2022-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 2019-03-07
      • 2016-02-08
      相关资源
      最近更新 更多