配置
Vivado
Vivado中双击ZYNQ-PS核(例如ZYNQ7000),选上需要使用的SPI,这一步略。
spi该驱动不支持片选功能,因此若在spi下挂接了多个从设备,而硬件工程中spi0_csn片选接口引出了多个cs信号,则spiddev驱动在注册时,会在/dev目录下注册多个设备,分别对应每个片选接口连接的从设备。
Kernel
Linux内核配置:
CONFIG_SPI_CADENCE
CONFIG_SPI_SPIDEV
Device Drivers --->
[*] SPI support --->
<*> Cadence SPI controller
<*> User mode SPI device driver support
DTS
/* 新增的内容开始 */
&spi1 { // 注意根据 system-top.dts 中的 修改此处地方
device@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <5000000>;
#address-cells = <1>;
#size-cells = <1>;
};
};
/* 新增的内容结束 */
重新编译内核并启动系统,即可在/dev目录下看到注册的一个SPI字符设备,一般命名为SPIx.x
,x代表数字。
App
使用spidev_test.c
程序即可。
所在位置(根据PetaLinux版本不同而不同):
${petalinux_path}/components/inux-kernel/xlnx-4.0/Documentation/spi/spi_test.c
${linux}/tools/spi/spidev_test.c