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:正在驱动加载消息- tcan4x5x spi1.0 (unnamed net_device)(未初始化):无法初始化模块

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1261890/tcan4550-driving-loading-message---tcan4x5x-spi1-0-unnamed-net_device-uninitialized-failed-to-init-module

器件型号:TCAN4550

大家好、

添加一个新的符号和一个新的符号。 在某些情况下、它显示了以下提到的错误。

2916.121542] tcan4x5x spi1.0:找不到时钟
[ 2916.125768] tcan4x5x spi1.0:未定义 CAN 时钟源
[ 2916.131176] SPI-IMX SPI_IMX_SETUP:模式0、32 BPW、18000000Hz
[ 2916.160886] tcan4x5x spi1.0 (未命名的 net_device )(未初始化):初始化模块失败
[ 2916.191100] tcan4x5x spi1.0:M_CAN 器件已注册(IRQ=216、版本=32)
[ 2916.198048] tcan4x5x spi1.0 CAN0:TCAN4X5X 已成功初始化。

不会在每次驱动程序加载期间都出现此消息。 我们将尝试15次、然后是5到7次、此错误才会出现。

您能指导我们并告诉我们什么可能是此消息的根本原因、以及我们如何解决它吗?

此致

米什拉·拉姆吉

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

    您好 Ramji、

    这是一个在器件级别支持 TCAN4550的论坛、而不是 Linux 论坛。  tcan4x5x 驱动程序上传到内核、并得到 Linux 社区的支持。  我的专长是 TCAN4550器件、而不是 Linux 驱动程序。  在此过程中、是否有办法监视或记录 SPI 寄存器配置?  如果是、我可以通过查看各种状态、中断和配置寄存器来确定哪里发生了错误。

    此致、

    乔纳森

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

    尊敬的 Jonathan:

    I 已检查 运行模式和引脚配置寄存器(地址= h0800)[RESET = hC8000468 ]。 似乎 TCAN 处于 STANDBY 模式。

    五颗星 READ-REG-CONFIG= A8000048****

    您能否告诉我们、处于待机模式的可能原因是什么?

    此致

    米什拉·拉姆吉

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

    尊敬的 Ramji:

    您能告诉我 Status (0x000C)、Interrupts (0x0820)和 MCAN interrupts (0x0824)寄存器的值是什么吗?

    如果驱动程序应该初始化器件并将其配置为正常模式、则可能存在某种问题导致器件转换到待机模式、该模式将反映在状态或中断寄存器中、这可以为我们提供线索。

    此致、

    乔纳森

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

    尊敬的 Jonathan:

    请找到所附的寄存器值。

    中断(0x0820)
    READ-REG-INT-FLAGS= x 81004400

    MCAN 中断(0x0824)
    READ-REG-MCAN_INT-FLAGS=0x0

     状态(0x000C)
    READ-REG-TCAN5X5X-STATUS= 0 x 8000000

    此致

    米什拉·拉姆吉

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

    尊敬的 Ramji:

    从中断寄存器(0x0820)中、我看到设置了以下位:

    31:CAN 总线正常(意味着它已更改为正常模式并且至少看到一次显性到隐性转换)

    24:部分保留块30:24 (没有提供资料)

    14:发生了本地唤醒

    10: CAN 总线保持静默状态(意味着 CAN 总线上没有活动) 然而、当设置该位时、我们还应看到 CAN 错误(CANERR 位5)置位、该错误是 CAN 静默模式(CANSLNT 位10)的逻辑或、CAN 卡在显性状态(CANDOM 位8)。  但 CANERR 为"0"、这是无法预料的。

    从 MCAN 中断寄存器(0x0824)中、我看到没有设置任何位、因此我不能判断器件是否实际参与了任何 CAN 通信、而此通信会导致总线关闭状态、该状态会强制自己返回待机模式。  通常、我通常会看到至少有一个位具有某个值、例如设置了 Timestamp 回绕位、以指示时间戳计数器已回绕、因为这不是长计数器、 我需要寻找这一点来确定寄存器是否返回实值、而不是全0的默认值。  但是、如果在初始化后快速读取寄存器、那么这个值可能仍然准确。  但它似乎不是导致将器件置于待机模式的 CAN 错误。

    状态寄存器(0x000C)显示一个单一位集。

    27:internal_error_log_write (表示存在与 SPI 寄存器或 MRAM 相关的一些错误、即读取或写入)。  有一个类似于 FIFO 的移位寄存器用于传递来自数字内核和 MCAN 控制器的数据、这些控制器脱离器件的系统时钟(20或40 MHz)运行、而 SPI 总线脱离 SPI 时钟以较低频率运行。  该 FIFO 移位寄存器处理时钟域交叉、如果存在错误、通常是由某种与时钟相关的问题导致的、该问题会阻止器件通过 SPI 总线将数据传入或传出器件。 但是、我通常也会看到与此相关的某种 SPI 错误、而这些位中的任何位都没有设置。   

    回顾先前文章中的信息、初始日志显示了一些与时钟相关的消息。  我的专长是 TCAN4550、而不是 Linux、但 internal_error_log_write 可能与"未找到时钟"和"未定义 CAN 时钟源"消息关联了某种类型的时钟问题。

    此外、如果根据之前的信息、器件卡在待机模式、我也不知道为什么设置了 CAN 总线正常位。  

    您能告诉我您是使用定制电路板、还是使用 TI 设计的开发板之一(TCAN4550EVMBOOSTXL-CANFD-LIN)吗?

    如果您使用的是定制板、您能否共享与 TCAN4550相关的原理图以便我进行检查?

    此致、

    乔纳森