如何在Zynq 7000平台上使用Linux spidev.c驱动.doc
-
资源ID:3426612
资源大小:14KB
全文页数:2页
- 资源格式: DOC
下载积分:2元
快捷下载
会员登录下载
微信登录下载
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
如何在Zynq 7000平台上使用Linux spidev.c驱动.doc
如何在Zynq 7000平台上使用Linux spidev.c驱动在上一篇博客中,介绍了如何配置Vivado下的硬件工程、例化SPI硬件接口和如何使用petalinux加载Xilinx提供的SPI总线驱动,如果要通过SPI控制外部器件,还需要添加SPI的设备驱动以实现SPI的对外控制逻辑。在Linux内核的driver/spi目录下有许多外设的设备驱动可以参考,这篇博客主要介绍如何使用其中的spidev,c这个设备驱动来实现对外设的控制。spidev是一个通用的SPI外设驱动,它提供了spi字符驱动的注册,并向上层应用程序提供了I/O控制接口,当我们仅需要利用SPI接口向外设发送和接收简单的控制序列时,可直接使用该驱动,下面介绍具体的使用方法。一、在前一篇博客中,我们采用xilinx针对Zynq 7000处理器提供的spi-cadence.c驱动实现了芯片上SPI总线驱动的注册,接下来需要修改设备树文件以时我们的外设挂接在SPI总线下。在petalinux工程的./subsystems/linux/configs/device-tree目录下找到zynq相关的设备树文件,目录所包含的文件如下图所示。打开其中的zynq-7000.dtsi文件,找到其中的spi0节点(具体使用spi0还是spi1根据硬件工程的配置情况),并在该节点下添加如下内容:其中 spidev名字对应spidev.c文件中的驱动名,Linux系统启动时会自动找到对应的驱动模块并加载。reg0对应SPI下的第几个设备,由于Zynq PS端的SPI控制器每个可以外接控制3个从设备,所以reg的值可以设为0、1或2.由于在上一篇博客中,Vivado硬件工程中对SPI的接口spi0_csn_0_o进行了例化并引出接口,所以本工程使用的是SPI使能第0个端口。同时,spidev.c该驱动不支持片选功能,因此若在spi0下挂接了多个从设备,切硬件工程中spi0_csn_0片选接口引出了多个,则spiddev驱动在注册时,会在/dev目录下注册多个设备,分别对应每个片选接口连接的从设备。设备树文件修改保存后,利用petalinux-config -c kernel指令,在devices driver/spi support目录下,选中user mode SPI device driver support,然后重新编译内核并启动系统,即可在/dev目录下看到注册的一个SPI字符设备,一般命名为SPI x.x。在应用层编写程序通过该驱动控制外设,可参考/opt/petalinux-v2015.4-final/components/linux-kernel/xlnx-4.0/DocumentaTIon/spi目录下的spi_test.c程序。使用该程序,将SPI的MOSI和MISO引脚短接,即可自收自发数据了。