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:CAN##39;t 从 SPI 发送帧到 CANFD

Guru**** 2391395 points
Other Parts Discussed in Thread: TCAN4550

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1466210/tcan4550evm-can-t-send-frames-from-spi-to-canfd

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

工具与软件:

您好!

我正在努力使用 SPI 在 CANFD 上发送帧。 以下是我的配置:

  • 工作模式和引脚配置(h0800):
    • WAKE_CONFIG = 0b11
    • CLK_REF = 0b1
    • GPO2_CONFIG = 0b00
    • TEST_MODE_EN = 0b0
    • nWKRQ_VOLTAGE = 0b0
    • FAIL_SAFE_EN = 0b1
    • GPO1_GPO_CONFIG = 0b00
    • INH_DIS = 0b0
    • nWKRQ_CONFIG = 0b0
    • MODE_SEL = 0b10
    • DEVICE_RESET = 0b0
    • SWE_DIS = 0b1
    • TEST_MODE_CONFIG = 0b1
  • 标称位时序和预分频器(h101C):
    • NSJW = 0b0000011
    • NBRP = 0x00
    • NTSEG1 = 0x0A
    • NTSEG2 = 0b0000011
  • TX 缓冲器配置(h10C0):
    • TFQM = 0b0
    • TFQS = 0b000001
    • NDTB = 0b000001
    • TBSA = 0x8000
  • Tx 缓冲区元素大小配置(h10C8):
    • TBDS = 0b000
  • TX 事件 FIFO 配置(h10F0):
    • EFWM = 0b000011
    • EFS = 0b000011
    • EFSA = 0x8050
  • 数据位时序和预分频器(h100C):
    • TDC = 0b0
    • DBRP = 0b00000
    • DTSEG1 = 0b01010
    • DTSEG2 = 0b0011
    • DSJW = 0b0011
  • 控制寄存器(h1018):
    • niso = 0b0
    • TxP = 0b0
    • EFBI = 0b0
    • PXHD = 0b0
    • BRSE = 0b1
    • FDOE = 0b1
    • TEST = 0b0
    • DAR = 0b0
    • MON = 0b1
    • CSR = 0b0
    • CSA = 0b0
    • asm = 0b0
    • CCE = 0b1
    • INIT = 0b1
  • TX 缓冲器配置(h10C0):
    • TFQS = 0b00001
    • NDTB = 0b00001
    • TBSA = 0x8000

Tx 起始地址为0x8000 (MRAM)。 我在 MRAM 内部写入0x8000个字。 然后我激活发送寄存器(h10D0)、Tx 缓冲区请求待处理应为1、但整个寄存器应为0。 如果我理解得好、这意味着 TCAN 不知道它必须发送该帧。

FWI:我可以读取之前配置的寄存器、这意味着我可以在寄存器内部进行写入和读取。 我通过读这些配置仔细检查了每一个配置、这方面一切都很好。

你有什么想法,它可能是到期?

感谢你的评分

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

    您好、T R:

    我不确定您要尝试配置的标称和数据比特率以及采样点百分比位置是多少。  CAN 协议将最大标称比特率限制为1M、如果我要正确计算设置、看起来像是在尝试对标称和数据设置使用2.667M、这对标称值来说太快、而且也不是公用数据速率。  

    对于 TX 缓冲区、您将需要写入多个字、并且一个 TX 缓冲区元素仅需要针对包含控制位和 ID 位的消息标头的2个字数据。  然后、数据字节将需要额外的字。

    我建议查看 TCAN45xx 软件用户指南 (链接)并按照有关配置位时序和 MRAM 的示例进行操作。  然后、请参阅第4.2.8节、了解如何为 CAN 消息创建 TX 缓冲区、然后按照4.3节中的步骤发送和接收 CAN 消息。

    有关由 Bosch 开发并在 TCAN4550中使用的 MCAN 控制器 IP 的其他详细信息、请参阅 M_CAN 用户手册 (链接)。  我想说明的唯一一点是、TCAN4550已为每个 MCAN 寄存器地址添加了偏移量0x1000。  例如、在 MCAN 用户手册中、控制寄存器列为0x18、在 TCAN4550中为0x1018。  否则、MCAN 用户手册中的所有信息均适用于 TCAN4550。

    此致、

    Jonathan