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.

[参考译文] TCAN4550EVM:TX 和 RX 不能正常工作。

Guru**** 1815690 points
Other Parts Discussed in Thread: TCAN4550
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1236801/tcan4550evm-tx-and-rx-is-not-working-properly

器件型号:TCAN4550EVM
主题中讨论的其他器件:TCAN4550

大家好、

我们使用我们的应用来测试 CAN 总线通信。 我们连接了一个 CAN 从属设备和 CAN 分析器以用于调试。

我们正在尝试发送和接收自定义消息。 CAN 分析仪能够捕获一些消息、但我们在驱动程序中观察到故障日志。

我们将使用这些配置来实现频率和 MRAM。  

SPI-max-frequency =<18000000>;
Bosch、MRAM-cfg =<0x0 0 0 32 0 1 1>;

请找到以下提及的错误消息。

[ 126.003756] tcan4x5x spi1.0 CAN0:_CAN_get_echo_skb:错误! 尝试访问 can_priv::echo_skb 超出范围(65/max 1)

 126.082237] tcan4x5x spi1.0 CAN0:can_put_echo_skb:错误! ECHO_SKB 0被占用!

[ 126.292696] tcan4x5x spi1.0 CAN0:_CAN_get_echo_skb:错误! 尝试访问 can_priv::echo_skb 超出范围(199/最大值1)

您能否检查并更新此内容。

此致

米什拉·拉姆吉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ramji、

    我无法从错误消息中确定太多内容、但 CAN 通信最常见的问题之一是 CAN 消息位时序配置。  需要将它们设置为与您的 CAN 分析仪相同的值。  您能否确认测试系统中所有器件的 CAN 位时序是否匹配?

    此致、

    乔纳森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Jonathan:

    位时序配置似乎正常。 调试的。 我们得到几个点。

    1)驱动程序加载过程中出现啤酒计数器错误。

    [ 35.188165] TCAN4X5X_ENABLE_TCAN_INT_DATA= 0x00008032
    [35.205807]**内部 M_CAN 设置 RET=0****
    [35.210625]**** GET_BERR_COUNTER *****
    [35.215209]**在寄存器 MCAN RET=0****内
    [35.216988]**** GET_BERR_COUNTER *****
    [ 35.220225] tcan4x5x spi1.0:M_CAN 器件已注册(IRQ=147、版本=32)
    [35.22682]**** GET_BERR_COUNTER *****
    [35.231605]**** MCAN-CLASS-RET=0
    [35.231605]****
    [ 35.236056] tcan4x5x spi1.0 CAN0:TCAN4X5X 已成功初始化。
    根号@CT-100:~#[35.268560]**** GET_BERR_COUNTER *****

    2)我们检查了 RX 处理程序函数(m_can_rx_handler)。 它正在进入 m_can_handle_Bus_errors 内部。

    if (irqstatus 和 IR_ERR_BUS_30X){
    work_done += m_can_handle_BUS_errors (dev、irqstatus、PSR);

    然后将变为 m_can_handle_other_err。

    /*其他未处理的错误中断*/
    m_can_handle_other_err (dev、irqstatus);

    使用中断产生任何问题。

    您能否检查并更新此内容。

    此致

    米什拉·拉姆吉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ramji、

    1)我们在加载驱动程序时遇到啤酒计数器错误。

    我有点困惑。  在器件初始化之前或期间、您希望如何实现有效的 CAN 通信?  在被置于正常模式和清除控制寄存器(0x1018[0])中的初始化(INIT)位之前、TCAN4550是否应完全配置?

    总线错误通常由以下两个原因之一引起。  第一个是总线未正确端接、导线类型不正确或具有残桩的长总线等信号完整性较差。  如果您只是尝试让分析仪和测试板之间的通信正常运行、请检查两端是否有一组终端电阻器。  如果可能、请使用示波器来检查信号是否存在明显的缺陷。

    第二个常见问题是、在进行具有位速率切换的 CAN FD 时、标称位时序配置的采样点位置在节点上设置不同。  我假设您正在尝试以更快的数据速率发送 CAN FD 消息。  如果是这样、从较慢的仲裁或标称位速率到较快数据速率的变化发生在比特率切换(BRS)位的采样点(SP)上。  通过在 SP 之前分配一定数量的时间份额(tq)和在 SP 之后分配一定数量的 tq 来设定这个采样点位置。  tq 总数定义了位周期、从而定义了位速率。

    如果总线上的两个器件配置了相同数量的 tq、它们将以相同的位速率运行。  但是、如果 SP 不同并且它们在 SP 之前和之后具有不同数量的 tq、则节点将在不同的时间从较低的标称位速率切换到较快的数据位速率。  这可能导致器件在错误的位置对更快的 FD 位进行采样、并可能导致生成总线错误帧。  

    我建议您为 TCAN4550和分析仪的标称和数据位定时验证 SP 的位置。  如果不匹配、这可能是出现总线错误的原因。

    此致、

    乔纳森