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.
工具/软件:Code Composer Studio
我对 TDA4VM 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
此致、
基尔西