zoukankan      html  css  js  c++  java
  • ZYNQ Linux使用SPI驱动

    --- title: ZYNQ Linux使用SPI驱动 EntryName: xilinx-zynq-using-spi-driver-in-linux date: 2020-10-14 10:02:57 categories: tags: - driver - linux - spi ---

    配置

    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
  • 相关阅读:
    Hibernate-查询缓存
    Hibernate-二级缓存 sessionFactory
    Hibernate-二级缓存策略
    Hibernate-一级缓存session
    缓存和连接池的区别
    Hibernate-一对多的关系维护
    Hibernate-缓存
    Java基础-jdk动态代理与cglib动态代理区别
    Java基础-CGLIB动态代理
    Java基础-静态代理与动态代理比较
  • 原文地址:https://www.cnblogs.com/schips/p/xilinx_zynq_spi_driver_in_linux.html
Copyright © 2011-2022 走看看