linux系统spi配置,7000 芯片Linux下的SPI接口与驱动配置

本文将介绍如何利用Vivado和petalinux开发Zynq7000系列芯片的SPI外设接口。

开发环境:

Vivado 2015.4

Petalinux 2015.4

一、 硬件工程的搭建

1. 打开vivado开发环境,新建工程,并选择你所使用的芯片型号(本文使用xc7z045ffg900-2这款芯片);

2. 点击“CreateBlock Design”创建一个新的工程桌布,在其中添加IP,将ZYNQ7芯片IP添加进来;

676c089a2aafac62be46404834b0565c.png

图1 ZYNQ7 IP

3. 双击ZYNQ7芯片IP,点击界面左边的Peripheral I/O Pins对芯片的引脚进行配置,分别点击“Quad SPI Flash”、“Ethernet”、SPI0最右边的“EMIO”和“UART1”对这些外设引脚进行使能;

64b5e81bdbe7caabc17c39ec292a6c9d.png

图2 外设引脚配置

4. 打开“DDRConfiguraTIon”页面,点击“DDR Controller ConfiguraTIon”,然后点击下拉菜单,选择你所使用DDR类型,本文选用MT41J256M8 HX-15E这款DDR芯片,如图所示;

27905c17f0457ae8790aedd1cb47b58f.png

图3 DDR配置

5. DDR配置完成后,退出ZYNQ配置界面,点击ZYNQ7 IP中的SPI引脚,选择相应的IO端口,右键点击并选择Make External将引脚向外引出。

8fe8fc0ae38a8c958dbcd83cc6c8a639.png

图4 向外引出引脚

6. 所有SPI相关引脚引出后,如下图所示,点击auto connetcion将DDR与FIXED两个引脚引出;

d16fe88a18a9d3ae52b3ba8a5b5d481d.png

图5 配置DDR和FIXED引脚

7. 引脚配置完成后,在顶层文件中对ZYNQ7这个IP进行例化,在“source”界面栏中双击顶层文件,打开硬件代码编辑器;

bfc38b63ce83c4b2e907a0b98cfb2115.png

图6 顶层代码

8. 在右边的顶层.v代码中添加spi相关的端口和例化代码,添加的代码如下所示(由于本例中只使用到了spi的四个接口,因此在例化spi接口时,只用到了其中的四个,其它的悬空或直接输入高低电平);

400c3728ebe77bc664a961734b3ef969.png

图7 添加接口和例化代码

9. 代码添加完成后,对工程进行综合(synthesis)和布局(implementaTIon),综合和布局通过完成后,对管脚进行约束,点击“open implementaTIon”打开布局结果,点击最上方的“Windows”选中“I/O Ports”,对SPI的外部接口进行约束(根据原理图中接口的连接,选中对应的硬件管脚);

22897d9b8d28938f3d57a6b5e8e9fccf.png

图8 管脚约束

10. 管脚约束完成后,重新对工程进行Implementation;

11. 最后点击“GenerateBitstream”生成bit文件;

12. 点击“File”—“Export”——“Export Hardware”导出硬件工程;

二、 硬件工程的搭建

1. 在Linux中,利用petalinux创建一个Zynq工程;

2. 利用petalinux-config–get-hw-description命令将刚才vivado下所生成的硬件工程.hdf文件导入到软件工程中;

3. 利用petalinux-config–c kernel对内核进行裁剪,选中驱动中的SPI驱动如图;

db35031f222dd367ad8af87c8993b832.png

图9 勾选上SPI驱动

4. 利用petalinux-build工具编译整个工程,然后利用petalinux-package生成BOOT.bin文件;

5. 利用硬件平台或QEMU启动Linux系统,即可在系统中看到spi驱动

530f94a8620d44f96869a821009ad34c.png

图10 Linux下的SPI驱动

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值