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:TCAN

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1434712/tcan4550-q1-tcan

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

工具与软件:

我们使用的是集成在 IMX8DXL 处理器中的 TCAN4450模块。 根据 tcan4550产品说明书、18MHz 是最大 SPI 频率。 但我们无法设置不超过10MHz。 如果我们将频率增加到10MHz 以上、我们会在 初始化期间出现紧急情况。  

以下是我们的 DTS 配置。

&lpspi3 {
pinctrl-names ="默认值";
pinctrl-0 =<&pinctrl_lpspi3>;
fsl、spi-num-chipselect =<1>;
CS-GPIO =<&lsi_GPIO0 16 GPIO_ACTIVE_HIGH>;
状态="正常";


tcan4x5x1:tcan4x5x@0{
兼容="ti、tcan4x5x";
REG =<0>;
pinctrl-names ="默认值";
#address-cells =<1>;
#size-cells =<1>;
spi-max-frequency =<1000000>;
Bosch、MRAM-cfg =<0x0 3 2 28 10 0 20 12>;  
Clocks =<&hclk>、<&cclk>;
时钟名称="hclk"、"cclk";
interrupt-parent =<&lsio_GPIO3>;
中断=<18 IRQ_TYPE_EDGE_FALLING>;
数据就绪-GPIO =<&lsi_GPIO3 18 GPIO_ACTIVE_HIGH>;
RESET-GPIO =<&EXP2 11 GPIO_ACTIVE_HIGH>;
iw-tcan-prop;
唤醒源;
状态="正常";

};
};
以及 MRAM 的最大大小是多少。 这是2k 还是4KB?

此致、
Tanushree

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

    您好、Tanushree、

    您无需使用大于10MHz 的 SPI 频率。  支持的最大 SPI 频率为18MHz、这意味着您不应尝试使用大于18MHz 的 SPI 时钟频率。

    MRAM 的最大大小为2kB (2048字节)、地址范围为0x8000至0x87FF。

    下面是一些附加资源的链接、其中包含可能对您有所帮助的信息。

    TCAN45xx 软件用户指南 (链接)

    M_CAN 用户手册 (链接)

    TCAN455x 时钟优化和设计指南应用报告 (链接)

    此致、

    Jonathan

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

     Jonathan、您好!

    如果我们将 SPI 频率增加到大于10MHz、则会在初始化时间内观察到紧急情况。 什么原因是恐慌? 如何使其在18MHz 下工作?
    在10MHz 频率下、我们每秒只能收到2k 条消息。 如何提高性能?  

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

    您好、Tanushree

    TCAN4550支持的最大 SPI 时钟频率为18MHz。  唯一的其他限制是要求 OSC (晶体)时钟频率至少比 SPI 时钟频率大2MHz。  由于 TCAN4550设计为与20MHz 和40MHz 的标准 CAN 晶体频率配合使用、因此该器件应与使用20MHz 或40MHz 晶体的18MHz SPI 配合使用。  但是、如果晶体频率小于20MHz、则还需要降低最大 SPI 频率。  例如、如果使用16MHz 晶体、则最大 SPI 时钟频率将是14MHz。

    由于我的专业知识是 TCAN4550器件级规格、而不是 Linux、因此我不确定 Linux 驱动程序中会出现"严重"情况的原因。  我不知道这是否在监控 SPI 错误、或者您使用的驱动程序代码或处理器中是否存在一些其他限制、从而导致这种情况、但 TCAN4550不会设置任何种类的紧急状态。  器件会检查是否存在各种与 SPI 相关的错误、主要原因是 SPI 读取/写入事务中的位数不正确、以及事务中根据 SPI 标头的"length"字段提供的32位字过多或过少。  我不知道当由于信号完整性不佳而使频率增加到高于10MHz 时器件是否设置了 SPI 错误标志、如果是、则驱动程序会将此情况称为"紧急"情况。  但我发现这种可能性不大、并且10MHz 限制在软件或处理器中具有某种程度的限制。

    所有 CAN TX 和 RX 消息数据都必须通过 SPI 总线传递、因此通过 SPI 传递数据所需的整体效率和时间是一个限制因素。  TCAN4550支持连续寄存器和 MRAM 存储器位置的多字 SPI 读取/写入事务。  这使器件能够接收一个32位标头字、其中包含要在事务中读取或写入的读取/写入操作码(0x41或0x61)、起始地址、以及"长度"或32位字的数量。  然后片选(CS)信号应保持低电平、同时发送所有数据、无需额外的空闲时间或每个寄存器的地址标头或32位地址字位置。  这有时在一些文档中也被称为"突发模式"、可以减少 SPI 总线上的空闲时间和开销数据、从而提高效率。  TCAN45xx 软件用户指南讨论了这一点、数据表在 SPI 读写图中提供了2字读取和写入示例、其中传输64位数据且长度字段设置为2。  

    我不知道您使用的驱动程序是否利用了突发模式通信、或者是否要为每个32位数据字发送新的地址标头。  您可能需要对 SPI 总线和驱动器代码进行一些分析、以确定是否可以进行任何调整来提高效率。

    处理器本身的开销也会增加总体延迟时间、因此您应该尝试确定处理器尽快发送或接收消息的能力是否产生了任何额外的延迟或改进。  

    此致、

    Jonathan