内核版本:linux4.6

Vivado版本:201602

工程中用到很多spi控制的从设备,首先对FPGA工程的正确性验证一下。

验证的设备树描述如下:

spi@e0006000 {

compatible = "xlnx,zynq-spi-r1p6";

reg = <0xe0006000 0x1000>;

status = "okay";

interrupt-parent = <0x3>;

interrupts = <0x0 0x1a 0x4>;

clocks = <0x1 0x19 0x1 0x22>;

clock-names = "ref_clk", "pclk";

#address-cells = <0x1>;

#size-cells = <0x0>;

num-cs = <0x3>;  /*重点描述*/

adc@0 {

/*compatible = "ti,ads8688";*/

compatible = "rohm,dh2228fv";

reg = <0x0>;

spi-max-frequency = <0xf4240>;

};

adc@1 {

/*compatible = "ad5292";*/

compatible = "rohm,dh2228fv";

reg = <0x1>;

spi-max-frequency = <0xf4240>;

};

adc@2 {

compatible = "rohm,dh2228fv";

/*compatible = "ad5624r5";*/

reg = <0x2>;

spi-max-frequency = <0xf4240>;

};

};

设备树注意:

num-cs = <0x3>;

如果只挂一个设备,这句没有没关系,一旦超过1个,不写就会出错,出错表现在数据时钟信号良好,但是没有片选信号。

另外,zynq7000系列最多挂载3个。这个看fpga工程就知道了,因为工程中spi总线有3个片选信号。

FPGA工程注意:

spi的 引脚属性默认。

具体就是,Direction 选择除了两个片选其他都是 INOUT。 片选1和片选2默认 OUT 。

Logo

更多推荐