TI中文支持网
TI专业的中文技术问题搜集分享网站

am4379如何实现spi多从机通信

目前我是用spidev实现一主一从通信方式,后续要接入多个从机进行通信,请问如何实现?

Tao Zhang22:

你好 我想请教一下你实现一主一从是,设备树是怎么写的?

我按照能查到的资料写成

&spi1@0 {status = "okay";pinctrl-names = "default";pinctrl-0 = <&spi0_pins_s0>;spidev@0 {spi-max-frequency = <24000000>;reg = <0>;compatible = "rohm,dh2228fv";};};
但是连设备树编译都过不去。我在学校周围也没有用这个芯片的,结构一下子比单片机复杂好多。
能否请您帮助一下,谢谢

nan wang2:

回复 Tao Zhang22:

您好,编译dtb输出什么错误信息呢?

Tao Zhang22:

回复 nan wang2:

您好 显示

DTC arch/arm/boot/dts/am437x-gp-evm.dtbError: arch/arm/boot/dts/am437x-gp-evm.dts:1194.6-8 syntax errorFATAL ERROR: Unable to parse input treemake[1]: *** [arch/arm/boot/dts/am437x-gp-evm.dtb] Error 1make: *** [am437x-gp-evm.dtb] Error 2

如果节点只写成

&spi1{           status = "okay";

}

编译设备树可以通过,而且会在/sys/class/spi_master里增加新的spi,但是/dev里面一直不会有spi设备。

nan wang2:

回复 Tao Zhang22:

应该是你的dts文件里面有哪些语法错误,看看拼写有没有错误的,把一个一个语句屏蔽试试看

nan wang2:

回复 leo chen:

您好,一个从机的情况下,CS信号一直是低电平是否正确呢?可否控制CS输出高低电平呢,如下图那样。

Tao Zhang22:

回复 nan wang2:

您好,我现在还没到看硬件波形这一步,今天设备树修改了,但是开发板上/dev里面没有spi1.0或者类似的设备,只能在/sys/class/spi_master里面看到相应的变化,不知道问题出在哪,自循环测试现在也做不了。所以现在不清楚是我设备树写的有问题还是其他设置有问题,我也在看其他的资料,不知道您这边还有什么调试的建议吗,谢谢。

nan wang2:

回复 Tao Zhang22:

现在您这段dts编译通过了么?我仔细看了一下,问题应该出在&spi1@0,改成&spi1试试看。其他地方没问题。在内核里面有选中User mode SPI device driver support这一项么?

&spi1@0 {status = "okay";pinctrl-names = "default";pinctrl-0 = <&spi0_pins_s0>;spidev@0 {spi-max-frequency = <24000000>;reg = <0>;compatible = "rohm,dh2228fv";};};

nan wang2:

回复 Tao Zhang22:

您的问题就出在&spi1@0这里,语法不对,所以编译不过去。我已经验证了,你把@0去掉,然后在内核里把spidev驱动添加进去。就可以了

Tao Zhang22:

回复 nan wang2:

你好 修改之后已经在/dev下能找到相应的设备文件了,多谢您的帮助

赞(0)
未经允许不得转载:TI中文支持网 » am4379如何实现spi多从机通信
分享到: 更多 (0)