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.
大家好、支持团队
我的 CAN 传输有问题。
在通过引用"TCAN4551_UserGuide.pdf"配置芯片后。
我能够配置 MRAM 地址并将 CAN 数据包成功存储到 MRAM 中。
但是、当我将芯片配置为正常模式并进行传输时、就没有传输了。
调查结果:
1、在发送请求前、进入正常模式:
读取地址0820h、返回0x000004A0
2.读取地址1044h、返回0x0000070F
3.读取地址1050h、返回0x00000000
2.在发送请求后立即进入正常模式:
读取地址0820h、返回0x000004A0
2.读取地址1044h、返回0x0000077B
3.读取地址1050h、返回0x09800800
问题:
根据 数据表、"失效防护模式"只需启用 CANSLNT 即可设置为1。 是否有任何其他因素会在不启用"失效防护模式"的情况下设置 CANSLNT?
2.我没有配置 CAN 时序。 (使用默认设置)。 是否会导致此问题?
此致、
John
尊敬的 John:
感谢您提供这些信息以及包含的寄存器值。 根据设置的标志、控制器似乎报告没有节点确认(ACKed)传输的消息。 这主要是协议状态寄存器(h1044)中最后一个错误代码(LEC[2:0])的值。 值3 (0b011)映射到 AckError。
您的设置中是否存在任何其他活动节点? 如果不是、您应该仍然能够使用示波器看到 CAN 总线上出现的 CAN 帧。
要回答列出的问题:
该器件的失效防护机制基于 SWE 计时器超时 CANSLNT 标志、使其开始计数。 如果在大约1秒内未检测到 CAN 通信、CANSLNT 将自动置位。 禁用 SWE 计时器(器件配置寄存器 h0800中的 SWE_DIS)可禁用此过程。
2.默认时序不应导致问题。 但是、如果您要与第二个节点进行通信(并具有该节点 ACK)、则需要将这两个节点配置为具有相同的数据速率。
如果您有任何疑问、请告诉我。
此致、
Eric Schott