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.

[参考译文] TDA4VM:Linux 下的 MCU_SPI0

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1408960/tda4vm-mcu_spi0-under-linux

器件型号:TDA4VM

工具与软件:

尊敬的处理器专家:

我尝试在 Linux 下使用 MCU_SPI0。 我有 Linux SDK 9.2和定制电路板。

在 k3-j721e-mcu-wake.dtsi 文件中、以下节点已存在

MCU_spi0:spi@40300000{
 兼容="ti、am654-mcspi"、"ti、omap4-mcspi";
 REG =<0x00 0x040300000 0x00 0x400>;
 中断= ;
 #address-cells =<1>;
 #size-cells =<0>;
 电源域=<&K3_PDS 274 TI_SCI_PD_Exclusive>;
 时钟=<&K3_CLKS 274 0>;
 状态="已禁用";
};

在 k3-j721e-common-proc-board.dts 文件中、我添加了:

mcu_spi0_pins_default:mcu_spi0_pins_default{
 PINCTL-SINGLE、PINS =<
  J721E_WKUP_IOPAD (0x90、PIN_INPUT、0)/*(E27) MCU_SPI0_CLK */
  J721E_WKUP_IOPAD (0xe8、PIN_OUTPUT、1)/*(H29) WKUP_GPIO0_14.MCU_SPI0_CS2 */
  J721E_WKUP_IOPAD (0x9C、PIN_OUTPUT、0)/*(E25) WKUP_GPIO0_55.MCU_SPI0_CS0 */
  J721E_WKUP_IOPAD (0x94、PIN_OUTPUT、0)/*(E24) MCU_SPI0_D0 */
  J721E_WKUP_IOPAD (0x98、PIN_INPUT、0)/*(E28) MCU_SPI0_D1 */
 >;
};
&MCU_spi0{
 状态="正常";
 pinctrl-names ="默认值";
 pinctrl-0 =<&MCU_spi0_pins_default>;

 spidev@0{
  compatible="Rohm、dh2228fv";
  spi-max-frequency =<100000>;
  REG =<0x0>;
 };
};

现在我有:

接下来、我尝试对其进行测试:

遗憾的是、输出上没有噪声。 仅 CS 和时钟有效。 TX 引脚仍处于高电平状态。

您能告诉我哪里有错误、或者我应该检查什么吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="589698" url="~/support/processors-group/processors/f/processors-forum/1408960/tda4vm-mcu_spi0-under-linux "]

    在 k3-j721e-mcu-wake.dtsi 文件中、以下节点已存在

    MCU_spi0:spi@40300000{
     兼容="ti、am654-mcspi"、"ti、omap4-mcspi";
     REG =<0x00 0x040300000 0x00 0x400>;
     中断= ;
     #address-cells =<1>;
     #size-cells =<0>;
     电源域=<&K3_PDS 274 TI_SCI_PD_Exclusive>;
     时钟=<&K3_CLKS 274 0>;
     状态="已禁用";
    };
    [报价]

    您好!

    是否已删除状态="已禁用"?

    此致

    Tarun Mukesh

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

    您好!

    很好  

    &MCU_spi0{
     状态="正常";
    我覆盖了状态。
    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [报价 userid="589698" url="~/support/processors-group/processors/f/processors-forum/1408960/tda4vm-mcu_spi0-under-linux "]
    PINCTL-SINGLE、PINS =<
      J721E_WKUP_IOPAD (0x90、PIN_INPUT、0)/*(E27) MCU_SPI0_CLK */
      J721E_WKUP_IOPAD (0xe8、PIN_OUTPUT、1)/*(H29) WKUP_GPIO0_14.MCU_SPI0_CS2 */
      J721E_WKUP_IOPAD (0x9C、PIN_OUTPUT、0)/*(E25) WKUP_GPIO0_55.MCU_SPI0_CS0 */
      J721E_WKUP_IOPAD (0x94、PIN_OUTPUT、0)/*(E24) MCU_SPI0_D0 */
      J721E
    [报价]

    您使用的是 CS0还是 CS2?  

    还可以更改最大频率吗?

    [报价 userid="589698" url="~/support/processors-group/processors/f/processors-forum/1408960/tda4vm-mcu_spi0-under-linux "]
    &MCU_spi0{
     状态="正常";
     pinctrl-names ="默认值";
     pinctrl-0 =<&MCU_spi0_pins_default>;

     spidev@0{
      compatible="Rohm、dh2228fv";
      spi-max-frequency =<100000>;
      REG =<0x0>;
     };
    [报价]

            spi-max-Frequency =<24000000>;

    此致

    Tarun Mukesh

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

    目前、我将仅使用 CS0

    spidev@0{
      compatible="Rohm、dh2228fv";
      spi-max-Frequency =<24000000>
      REG =<0x0>;
     };
    但将来我会添加 CS2。
    我已经检查了增加的 SPI 频率、它没有任何变化。  
     还找到了本文档 www.ti.com/.../sprad26.pdf = 1725444765739&ref_url=https%253A%252F%252Fwww.google.com%252F。 我想知道我是否应该为 MCU_SPI0添加此部分  
    我不确定、因为我使用的是主模式、而不是从模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可以得出:  

    外观

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

    您好!

    D0或 D1可用作 MOSI 或 MISO、没有这样的限制。 您可以尝试将 D1更改为输出、将 D0更改为输入、看看您是否能够看到线路上的任何数据。

    此致

    Tarun Mukesh  

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

    我知道我可以用 MISO 代替 MOSI、并且我已经为测试进行了尝试。 我得到了工作输出:  

    但这对我来说不是解决方案、因为我正在研究最终产品。 之前、我们从 R5内核管理 SPI、现在我们想尝试在 Linux 中实现这一点、但在 Linux 下似乎无法更改 D0和 D1的行为。 这似乎是驱动程序本身的问题。 TI 能否更新驱动程序?或者您是否知道我们是否能够自己更新?

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

    似乎我不是第一个谁有这种问题 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1032526/tda4vm-what-s-the-pin-definition-for-spi-miso-mosi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    、因为我正在开发最终产品。 之前我们从 R5内核管理 SPI、现在我们想尝试在 Linux 中实现该操作、但在 Linux 下似乎无法更改 D0和 D1[/QUOT]的行为

    我不完全了解背景:

    ti、windir-d0-out-D1-in 标志

    ti、windir-d0-out-D1-in:
    说明:
    选择 D0引脚作为输出、选择 D1作为输入。 默认为 D0
    作为输入、D1作为输出。
    类型:布尔

    这是您要找的吗?

    -基尔西

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

    我在查看源代码是因为我想尝试解决这个问题、发现:  

    我已将其添加到设备树中  

    是的、这是、它是有效的。

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

    谢谢 Keerthy。