0

我有一块运行 Xillinux 1.3 的 MicroZed 板。我想将一个外部 SPI ADC 连接到它,并在 linux 中编写一个应用程序来从 ADC 读取值。Xillinux 中未启用 Zynq 设备的硬件 SPI 接口。我该如何启用它,我必须重新编译 FSBL 和 U-boot,但我不知道从哪里开始。我可以只修改 Xillinux 的 Vivado 设计并从那里开始,还是必须从头开始?

4

2 回答 2

1

您不必修改 FSBL 或 U-boot。您只需将 SPI 控制器添加到设备树并更新可编程逻辑,以便 SPI 引脚连接到您的 ADC。

Xilinx SDK 具有用于创建设备树文件的工具,如构建设备树 Blob页面中所述。

我通常手动编辑 .dts 文件,但您仍然需要运行dtc以将它们转换为该页面上描述的二进制格式。

例如,下面是zynq-zc770-xm013.dts板的 .dts 片段,该板启用 SPI 连接到闪存芯片:

&spi0 {
    status = "okay";
    num-cs = <4>;
    is-decoded-cs = <0>;
    eeprom: at25@0 {
        at25,byte-len = <8192>;
        at25,addr-mode = <2>;
        at25,page-size = <32>;

        compatible = "atmel,at25";
        reg = <2>;
        spi-max-frequency = <1000000>;
    };
};
于 2016-09-08T17:30:11.937 回答
0

你必须做2个步骤。

1- 在内核源代码中修改板的硬件描述符文件 (.h) 并添加 spi 设备。首先,看一下电路板的原理图和处理器的数据表,以确保使用正确名称的正确器件

2-在你的内核配置中添加 spidev

现在构建并启动内核,如果你检查 /dev/ 你应该找到 spidev** 一些东西。

于 2016-09-09T10:10:16.277 回答