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.

[FAQ] [参考译文] 【常见问题解答】J722SXH01EVM:如何在 J722SXH01EVM 的 40 引脚用户扩展接头上启用 McSPI?

Guru**** 2551110 points
Other Parts Discussed in Thread: J722SXH01EVM, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1559573/faq-j722sxh01evm-how-to-enable-mcspi-on-the-40-pin-user-expansion-header-for-the-j722sxh01evm

器件型号:J722SXH01EVM
主题: SysConfig 中讨论的其他器件

工具/软件:

J722SXH01EVM 具有一个 40 引脚接头、以及几个 McSPI 接口被路由到此接头? 如何为 McSPI 启用引脚?

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

    关于:

    在 10.1 Linux SDK 上验证、并在 10.1 Linux SDK 的预编译映像基础上构建。 这仅启用 MCU SPI0 和主 SPI2。 主 SPI0 也具有与 40 引脚接头的一些连接。 但是、默认情况下、主 SPI0 的 D1 未连接到接头、因此补丁不会启用。

    在我测试时、枚举是以下内容。 不过、枚举的数字可能会发生变化。  可以使用“ls -l /sys/class/spi *“进行检查、如以下应用手册中所述。

    • spidev1.0 为 SPI1 是 MCU_spi0 主器件
    • spidev3.0 为 spi3 是 MAIN_SPI2 从器件

    常见问题解答请参见应用手册: https://www.ti.com/lit/an/sprad26/sprad26.pdf?ts = 1756502475801&ref_url=https%253A%252F%252Fwww.google.com%252F 

    说明:

    1.

    将以下补丁应用于 Linux 内核:

    e2e.ti.com/.../3603.0001_2D00_Enable_2D00_J722S_2D00_Main_2D00_SPI2_2D00_and_2D00_MCU_2D00_SPI0_2D00_in_2D00_devicetree.patch

    补丁说明:

    补丁应在 dtso 文件下方创建、并编辑 Makefile 以构建新的器件树源叠加文件。

    e2e.ti.com/.../3603.k3_2D00_j722s_2D00_evm_2D00_mcspi.dtso

    补丁包含以下内容:

    1. 添加新的器件树叠加层: +dtb-$(CONFIG_arch_k3)+= k3-j722s-evm-mcspi.dtso
    2. 在 MAIN_SPI2 接口的 MAIN_pmx0 下为 MAIN 域中的 SPI 添加了 pinmux。 引脚多路复用使用 SysConfig: https://www.ti.com/tool/SYSCONFIG 
    3. 在 MCU_pmx0 下为 MCU_spi0 接口添加了 MCU 域中 SPI 的引脚多路复用
    4. 使用以下内容定义 MAIN_SPI2:
      1. 使用引脚多路复用: pinctrl-0 =<&MAIN_SPI2_pins_default>;
      2. 使用 TISCI 文档中的 PSIL 值定义 DMA uand: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/psil_cfg.html 。
      3. 定义为 SPI 从器件。
      4. 将从节点定义为从节点@0。  @的节点名称是从设备或从设备、因为软件会查找这些名称
      5. 使用 Rohm、dh2228fv 兼容字段。 这是众多兼容字段中的一个、这些字段只是指向通用 spidev 驱动程序
    5. 使用以下内容定义 MCU_spi0:
      1. 使用引脚多路复用:pinctrl-0 =<&MCU_spi0_pins_default>;
      2. 使用 ti、pindir-d0-out-D1-in 设置 d0 和 D1 输入/输出方向
      3. 定义 spidev 节点。
      4. 请注意、没有为 J722S 的 MCU 域 SPI 分配 DMA 支持、因为没有分配 PSIL 线程。

    *注意:  10.1 J722S 的 SDK 在 defconfig 中看起来包含 CONFIG_SPI_SLAVE_y。 但是、可能需要将此内容添加到其他 SDK 版本中以进行 defconfig。

    2.  

    构建 Linux 器件树并刷写新的 dtbo 文件。 可以使用顶级 Makefile 或任何其他方法来构建和刷写 Overview_Top_Level_Makefile 内核: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j722s/11_00_00_08/exports/docs/linux/linux.html

    3.  

    构建 spidev_test。 应用手册: https://www.ti.com/lit/an/sprad26/sprad26.pdf?spidev_test 包含如何构建 spidev_test:ts = 1756502475801&ref_url=https%253A%252F%252Fwww.google.com%252F 

    4.  

    在引导分区中、编辑 uEnv.txt、使 name_overlays U-Boot 变量指向新创建的器件树叠加层。 如下所示:

    • name_overles=ti/k3-j722s-evm-mcspi.dtbo

    5.

    在用户扩展接头上连接主 SPI2 和 MCU spi0。 连接方式如下:

    • GPIO11 - MCU SPI0 CLK <-> GPIO14 — 主 SPI2 CLK
    • GPIO9 - MCU SPI0 D1 <-> GPIO17 — 主 SPI2 D1
    • GPIO10 - MCU SPI0 D0 <-> GPIO22 — 主 SPI2 D0
    • GPIO8 - MCU CS0 <-> GPIO15 — 主 SPI2 CS0

    6.  

    引导和登录。

    7.  

    运行 spidev_test

    • ./spidev_test -v -D /dev/spidev3.0 -p slave-hello-to-master &
    • ./spidev_test -v -D /dev/spidev1.0 -p master-hello-to-slave

    root@j722s-evm:~# ./spidev_test -v -D /dev/spidev1.0 -p master-hello-to-slave
    spi mode: 0x0
    bits per word: 8
    max speed: 500000 Hz (500 kHz)
    TX | 6D 61 73 74 65 72 2D 68 65 6C 6C 6F 2D 74 6F 2D 73 6C 61 76 65 __ __ __ __ __ __ __ __ __ __ __  |master-hello-to-slave|
    RX | 73 6C 61 76 65 2D 68 65 6C 6C 6F 2D 74 6F 2D 6D 61 73 74 65 72 __ __ __ __ __ __ __ __ __ __ __  |slave-hello-to-master|
    TX | 73 6C 61 76 65 2D 68 65 6C 6C 6F 2D 74 6F 2D 6D 61 73 74 65 72 __ __ __ __ __ __ __ __ __ __ __  |slave-hello-to-master|
    RX | 82 6D 61 73 74 65 72 2D 68 65 6C 6C 6F 2D 74 6F 2D 73 6C 61 76 __ __ __ __ __ __ __ __ __ __ __  |master-hello-to-slave|
    [1]+  Done                    ./spidev_test -v -D /dev/spidev3.0 -p slave-hello-to-master
    root@j722s-evm:~#

    此致、

    Takuma