您好、专家、
客户目前正在使用 Linux 2.6。 他们根据处理器中与 Linux 5.8相关的驱动程序代码进行了一些更改。 在调试过程中、当在环回模式中设置 TCAN4550时、它可以成功接收数据。 当将其设置为正常模式时、接收到的结果全部为0。 我看到 E2E 上的另一篇文章说、该驱动程序是在内核版本5.4中引入的、需要手动将驱动程序回退到早期版本。 您能告诉我们客户应该采取哪些步骤使其在 Linux 2.6上正常工作吗? 客户的代码是附件。 您能否帮助检查可能导致问题的原因?
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.
您好、专家、
客户目前正在使用 Linux 2.6。 他们根据处理器中与 Linux 5.8相关的驱动程序代码进行了一些更改。 在调试过程中、当在环回模式中设置 TCAN4550时、它可以成功接收数据。 当将其设置为正常模式时、接收到的结果全部为0。 我看到 E2E 上的另一篇文章说、该驱动程序是在内核版本5.4中引入的、需要手动将驱动程序回退到早期版本。 您能告诉我们客户应该采取哪些步骤使其在 Linux 2.6上正常工作吗? 客户的代码是附件。 您能否帮助检查可能导致问题的原因?
您好、Lenna、
我将研究这个问题、我有几个问题可以帮助我缩小解决方案的范围。 此外、这不是 Linux 支持论坛、我无法在您的最后一个问题上为将驱动程序移植到旧版本 Linux 所需的步骤提供帮助。 已采用 TCAN4550驱动程序并将其集成到 Linux 内核中、与该驱动程序相关的 Linux 特定问题应在 Linux 支持论坛中解决。 我很高兴能为您提供任何特定于器件的问题和寄存器设置的正确配置、或者解决可能妨碍器件运行的任何原理图和硬件问题。
由于您说器件能够在环回模式下成功接收数据、我怀疑它应该能够接收来自外部源的数据。 但是、有两种不同的回送模式(外部和内部)。 他们在开发过程中使用了哪个版本?
您能否提供一些有关测试设置以及使用 TCAN4550将哪些其他器件连接到电路板以及 CAN 总线端接结构的位置的其他信息? 您能否提供原理图或方框图?
是否有其他器件通过 CANH 和 CANL 引脚向 TCAN4550电路板发送 CAN 消息、或者它们是否尝试使用相同的 TCAN4550器件来发送和接收数据?
环回模式会导致器件忽略确认错误、并假定不会有来自其他节点的确认、环回模式的目的是自检 TCAN4550。
当器件在正常模式下运行时、 必须有第二个节点连接到 CAN 总线、该节点将确认 TCAN4550发送的任何消息、并且根据 CAN 标准、在节点之间连接的导线的每一端、CANH 和 CANL 引脚之间必须放置120欧姆的终端电阻器。 如果这些终端结构不在系统中、则通信将不会成功。 TCAN4550还需要确认另一个节点发送的消息、否则它不会存储消息、如果由于假定消息包含错误而未进行确认、则不会存储这些消息。
您能否提供从另一个节点发送到 TCAN4550节点的 CAN 消息的任何范围图、其中显示了该消息和 TCAN4550的确认?
前面的问题将帮助确定这是硬件问题、测试设置问题还是固件问题。 由于它在环回模式下工作、我认为硬件问题可能会出现。 但是、当我等待前面问题的答案时、我还将查看您提供的代码、并尝试找到一些需要调整的明显错误或寄存器设置。 这需要一些时间、因此我必须在未来的帖子中跟进。
此致、
Jonathan