配置
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
