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.
您好!
我的 DCAN 模块有问题、当帧间延迟很小时、似乎无法接收 CAN 帧。 如果我缓慢地传输消息、则会可靠地接收到这些消息、但当我以另一个器件的输出速率传输这些消息时、只有三个消息框中的第一个能够可靠地接收帧。
我已经尝试过轮询和基于中断的 CAN 接收函数、两者都遇到了相同的问题
我需要接收来自电流传感器的数据、该传感器每20ms 传输3帧、它们位于顺序 CANID 上、每个帧之间的传输距离为0.2mS。
还有人有类似的问题吗?
Marc
您是指较低的波特率、还是指帧之间的较大时间段?
第2个和第3个邮箱是否配置为具有示例2或3的正确消息 ID?
您是指较低的波特率、还是指帧之间的较大时间段?
第2个和第3个邮箱是否配置为具有示例2或3的正确消息 ID?
[/报价]当帧之间有一个较大的时间段时、例如几毫秒、所有3条消息都被接收、newdat 位按预期设置。 但是 、电流传感器在三个帧之间以大约0.2 uS 的速率传输。
是第二个和第三个邮箱配置了正确的 ID 和绝对屏蔽(0x7ff)
波特率为500k
感谢您回来
具有8字节有效载荷的 CAN 帧大约需要2us*112位=0.224ms。 我认为在20ms 内从邮箱读取接收到的数据没有任何问题。
使用 IF3x 和 DMA 更容易将数据从邮箱传输到 SRAM。
我同意、这不应该是问题、但是在我们的测试中、当电流传感器传输三条消息中的第三条消息时、CAN 模块似乎无法接收。
这是我们尝试接收的消息
ID:0x521 周期时间:20ms
ID:0x522 周期时间:20ms
ID:0x523 周期时间:20ms
如果如何使用 IF3x 和 DMA、是否有示例? 我们目前正在使用 halcogen 编写的代码。
有关 IF3x 和 DMA、请参阅此主题: