【发布时间】:2012-03-15 12:45:09
【问题描述】:
我正在使用 16 位 MCU PIC24HJ64GP504 来编写基于 CAN 的应用程序。基本上它是我的电路板和另一个节点之间的通信,它使用 CAN 以 1 Mbit/s 的速度不断地向我的电路板发送数据。我正在将我的 PIC24 中的 ECAN 模块配置为以 1 Mbit/s 的速度工作。我编写代码的方式是,在前 10 毫秒内,ECAN 模块将接受来自另一端的所有消息,之后我重新配置 ECAN 模块以仅接受消息 ID 为 0x13 的那些消息。
现在问题来了……另一个节点和我的板同时通电。另一个节点在上电后 40 毫秒左右开始传输消息。但我无法在我的板上收到任何消息。现在,如果我先给我的电路板加电,给它一些时间用新的过滤器重新配置 ECAN 模块并稳定下来,然后再给另一个节点加电,那么一切都会正常工作。
现在最奇怪的部分...如果我在我的电路板和另一个节点之间连接了一个 CAN 总线分析仪,即使我同时为两个节点加电,一切正常...无需加电我的董事会第一。我已经使用来自不同制造商的三种不同的总线分析仪进行了尝试,并得到了相同的结果。
在我看来,在重新配置 ECAN 模块期间,需要一些时间来安定下来。并且随着总线分析器在总线中的引入,这段时间不知何故被缩短了,这样一切都可以完美运行。但我不确定问题到底是什么。
【问题讨论】:
-
electronics.stackexchange.com 是个好地方。那里有不少有PIC和CAN经验的人。
标签: microcontroller pic can-bus