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] [参考译文] [常见问题解答] CCS/TDA4VM:如何在 TDA4/J721E 上使用 SPI/SPI_DEV?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/947437/faq-ccs-tda4vm-how-to-use-spi-spi_dev-on-tda4-j721e

器件型号:TDA4VM

工具/软件:Code Composer Studio

我对 TDA4VM SPI 有以下问题:

  1. 如何启用 TDA4VM 的 SPI 实例?
  2. 如何在 TD4VM SDK 上启用 SPIDEV?
  3. 如何在用户空间中使用 TI J7/TDA4x SPI 接口?

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

    请按顺序查找答案:

    1) 1)如何启用 TDA4VM 的 SPI 实例

    例如、让我们以主域 spi6实例为例。 要启用 spi6、我们需要添加器件树节点和相应的 pinmux 节点。

    diff -git a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.incd
    index 6788a3611..77b845100644
    - a /api_trl++/trl_common_trl++/api+-tr-ns/prob_trl_g6
    
    @@
    + 0x721+++trl_trl_trl++++++trl_common_prob_trl_g6 @@
    (tr-p+/ap_trl_trl_g1)
    
    
    
    
    
    /*(AG20) PRG1_PRU0_GPO9.SPI6_CS1 *
    /+J721E_IOPAD (0x2C、PIN_INPUT、4)/*(AD21) PRG1_PRU0_GPO10.SPI6_CS2 *
    / J721E_IOPAD(0x7c、PIN_INP3*/J64_IN_INPIDS+J6_IN_IN_INP8_IN/JESR
    
    
    )+ J26_IN_IN_IN_IN_INU1/JESR 2124 */IN_IN_IN_IN_INP20_IN_IN_IN_INP8_IN_IN_IN_IN_4 *+ JESR + J26_IN_IN_IN_IN_IN_INP20_IN_IN_IN_IN_IN_IN_4 *+ JESR
    
    
    
    
    
    - a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
    ++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
    @@-74,6 +74,16 @@
    };
    };
    
    +MAIN_sp6:SPI@2160000{
    +compatible ="ti、am654-mcspi"、"ti、OMAP4-mcspi";
    +reg =<0x0 0x2160000 0x0 0x400>;
    +interrupts = ;
    +时钟=<&K3_CLKS 272 1>;
    +电源域=<&K3_PDS 272 TI_SCI_PD_Excluse>;
    +#address-cells =<1>;
    +#size-cells =<0>;
    +};
    + 

    CONFIG_SPI_OMAP24xx=y 已在 arch/arm64/configs/tisdk_j7-evm_defconfig 中设置。 SPI 主驱动器
    drivers/SPI/SPI-OMAP2-mcspi.c

    2) 2)如何在 TD4VM SDK 上启用 SPIDEV?


    在 spi6节点内添加 spidev 节点、如下所示:

    +&main_spi6{
    + pinctrl-names ="default";
    + pinctrl-0 =<&spi6_pins_default>;
    + status="oke";
    +
    spidev@0{
    +
    + SPI-max-frequency =<24000000>;
    + reg =<0>;
    + 兼容="linux、spidev";
    +};
    +}; 

    在  arch/arm64/configs/tisdk_j7-evm_defconfig 中明确启用 CONFIG_SPI_SPIDEV=y。

    启动 Linux 后、应显示如下所示的条目:

    ls -l /sys/class/spi
    /sys/class/spi_master:
    总计0
    lrwxrwxrwx 1 root 根 6月0日17 14:17 spi6 ->../../devices/platform/interconnect@100000/2160000.SPI/SPI_MASTER/spi6
    
    /sys/class/spidev:
    总计0
    lrwxrwxrwx 1 root 根 6月0日17 14:17 spidev6.0 ->./../devices/platform/interconnect@100000/2160000.SPI/SPI_MASTER/spi6/spi6.0/spidev/spidev6.0
    


    3.如何在用户空间中使用 TI J7/TDA4x SPI 接口?

    Linux 内核提供 spidev_test 工具。 我们只需要构建和使用它。 按照此处的说明操作:

    cd ti-processor-sdk-linux-Automotive-j7-evm-07_00_01/board-support/linux-5.4.40+gitAUTOINC+66cf445b76-g66cf445b76/tools/SPI
    make ARCH=ARM64 cross_compile=Aarch64-ne-linux-gnuCP
    dev_test /media/$spifs 

    上述操作应在 tools/SPI 文件夹中构建 spidev_test 二进制文件、并将其复制到目标文件系统的 rootfs 中。

    基本测试输出:

    /spidev_test -v -D /dev/spidev6.0
    
    
    SPI 模式:
    每字0x0位:8
    最大速度:500000Hz (500KHz)
    TX | FF FF FF FF FF FF FF FF FF FF FF 40 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |…… @………………… |
    RX | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................ |
    

    我们可以使用自己的 TX、并使用以下命令检查 TX 线路是否正在传输自定义 TX 字节:

    /spidev_test -v -D /dev/spidev6.0 -p "HelloWorld"
    SPI 模式:0x0
    位/字:8
    最大速度:500000Hz (500KHz)
    TX | 48 45 4C 4F 57 4F 52 4C 44 ________ ________ ________ ________ __|HelloWorld|
    RX | FF FF FF FF FF FF FF FF FF FF FF FF FF ___________ ________ ________ ________ __|......... |
    

    由于 RX 没有从器件、因此我们始终看到0xFF。

    请在此处找到所附的补丁:e2e.ti.com/.../0001_2D00_arm64_2D00_dts_2D00_ti_2D00_k3_2D00_j721e_2D00_common_2D00_proc_2D00_board_2D00_Enable_2D00_spi6_2D00_.patch

    spiDEV_test 二进制文件、附于此处: e2e.ti.com/.../spidev_5F00_test

    此致、
    基尔西

x 出现错误。请重试或与管理员联系。