2012-07-19 143 views
1

我正在使用恩智浦提供的LPC1768 ARM Cortex M3微控制器(datasheetuser manual)。我想在用户手册中的'16.5 CAN控制器自检'一节中描述的自检模式下测试CAN总线外设,但它不起作用。LPC 1768 CAN总线关闭错误

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

CANx->CMR = 0x41; 

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

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

我使用RS-232电缆连接CAN1和CAN2。为了进行自我测试,我使用CAN1。

回答

3

我不熟悉那个CAN控制器,但是这种行为并没有让我感到意外。如果您正在执行独立测试,那么虽然您正确接收了您发送的消息,但由于总线上没有其他节点,消息将不确认。该控制器将重试了一段时间进入第6和的CAN spec

+0

谢谢你的回答。这对我很有用,但是我看不到传输引脚处的传输波。 – Coker 2012-07-21 06:54:16

+0

您看不到CAN_TX或CAN_H,CAN_L对上的信号? – 2012-07-23 10:47:35

+0

我不知道为什么,但是是的 – Coker 2012-08-08 13:47:33

0

我在这里使用LPC1788同样的问题7所描述的错误状态之前,问题是用错了CPU时钟的设置有关。我错误地将CPU设置为96   MHz,I(也是错误的)认为CPU运行在100   MHz。在这种情况下,CAN波特率配置不一致,并且CAN模块未能发送任何消息。然后,当我修复CPU时钟配置时,问题就解决了。