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.

[参考译文] TCAN4550-Q1:TCAN4550环回测试寄存器配置

Guru**** 2813875 points

Other Parts Discussed in Thread: TCAN4550, TCAN4550-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/942964/tcan4550-q1-tcan4550-loopback-test-register-configuration

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

您好,

我们正在尝试在我们的定制板中使用 TCAN4550 芯片建立 CAN 接口。  

到目前为止、我们能够通过 SPI 从处理器成功读取器件 ID 寄存器。

我们希望测试内部和外部回路模式。

如数据表中的图29、30和31所示。

您能否提供 寄存器设置来将 TCAN4550置于 此测试模式、以及如何测试内部和外部回路、

它还需要硬件连接。

我们已经根据演示软件创建了 Linux 驱动程序代码

实现了 Init_can 并使用123个 CAN ID 填充 TX FIFO 缓冲区并发送它。

我们还从开放源码中获取了适用于这款 tcan4550芯片的代码,并将其集成到了一起。

drivers/net/can/spi/tcan4x5x.c 中的代码.....

并编译 cansend 和 candump 二进制文件、并使用 IP 链接命令配置 CAN0。

请提供将 tcan4550设置为内部和外部回送模式所需的寄存器设置以及测试方法。

此致

Raghu DP

此致

Raghu DP

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

    Raghu、

    感谢您在 E2E 上将此问题提请我们注意。

    对于图30和31、测试模式寄存器0x1010可用于启用回路模式。 对于外部回路模式、器件将发送到总线但不接收、您只需在寄存器0x1010中启用回路模式即可。 对于内部回路模式、必须在寄存器0x1010中启用回路模式、并将 MON (寄存器0x1018中的位5)设置为1。 将 MON 设置为1会禁用发送到总线的功能。  

    您只需要像回送模式一样从此处连接到 SPI、因为您基本上正常使用器件、但与 CAN 总线断开连接以接收数据或接收和传输数据。 这是什么需求吗?

    此致、

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

    尊敬的 Eric:

      感谢您的回复。

    我们只想在演示代码中测试软件。

    内部回送模式。

    问题1:

    正如您提到的、我将尝试设置寄存器。

    在演示代码中使用 Init_can 函数。

    2.为 MON 位设置0x1010寄存器,启用回送模式。

    3.在 txfifo 0中填充 CAN 消息并启用 txfifo 0传输。

    我是否获取在 Txfifo 中发回的数据?

    生成的任何中断或我需要读取 FIFO 寄存器。

    问题2:

    下一个级别是外部回送。

    是否有针对这种情况的连接建议和寄存器设置?

    问题3:

    如图29所示。

    设置0x0800寄存器中的位21和 m_core 测试配置的位1。

    如何测试 GPIO2 TxD 和 goio1引脚 RxD 的传输和恢复。

    对于数据传输,是否与用标头填充 txfifo 相同,然后是传输?

    我能否将 TXD 连接到 RxD…… GPIO2到 goio1以恢复已发送的数据?

    请告诉我、我的理解是正确的、您的建议也是正确的。

    谢谢

    RaghuDP

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

    Raghu、

    问题1:是的、这应该起作用。 通常在 CAN 网络中、控制器必须在帧的末尾看到一个 ACK 位、以在其存储器中接收消息。 启用环回测试模式后、不需要满足此要求、控制器应该能够接收与其传输的相同消息。

    Q2:外部和内部回送模式配置的唯一区别是 MON 位设置。 对于外部回送、MON 位应设置为0、对于内部、MON 位应设置为1。

    Q3:图29旨在绕过 TCAN4550-Q1上的集成收发器、仅使用集成的 MCAN 控制器。 其思路是将 GPO2连接到 CAN 收发器的 TXD、将 GPIO1连接到 CAN 收发器的 RXD。 通过这种方法、您可以将 TX FIFO 中的消息配置为从 GPO2引脚传输到外部 CAN 收发器、再传输到 CAN 总线。 GPIO1将从外部 CAN 收发器的 RXD 引脚接收消息、并将消息存储在存储器空间中。 我不建议将 RXD 连接到 TXD、除非您只想接收传输的消息、 但是、由于在这种情况下没有其他节点来应答消息、CAN 控制器将反复发送消息、直到错误消失、因为从未收到发送消息的应答。

    请告诉我这是否合理。

    此致、

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

    尊敬的 Eric:

    我尝试了问题1中提到的内部回送。

    但我在通过 TX 发送数据后没有重新接收任何中断。 我尝试强制完全读取中断寄存器、这也没有帮助。

    请提供测试此内部回送的代码。

    希望您在本例中使用连接到 tcan4550 EVM 板的 MSP 控制器进行测试。

    此致

    RaghuDP

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

    您好 Eric,

     我已将 TCAN4550配置为环回模式。

    已尝试为内部环路设置环回和 MON 位。  将数据写入到 txfio 后,可以在 rxfio 中读回数据。

    之后 ,我保持回送模式 并清除 MON 位。  使用可以将数据发送到 txfio 并在 rxfio 中读回数据 、我可以在 CAN H/L 线路中看到数据。

    现在、我连接到 TCAN4550并刷写了相同的软件、并尝试从一个器件发送并从其他器件恢复。

    但这不起作用。  

    不知道为什么 不能在另一台设备上重新接收数据...

    如何调试 ?  我有2个 TCAN4550器件彼此相连。

    此致

    Raghu DP

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

    Raghu、

    现在、我建议阅读 《TCAN4550-Q1软件用户指南》、该指南指示如何发送和接收消息、以及如何在 TCAN4550-Q1上配置所有寄存器以执行此操作。  

    您能详细说明一下它不起作用吗? 您看到了什么问题? CAN 总线上是否传输了任何数据、还是根本不发送任何数据?

    此致、