7000 芯片Linux下的SPI接口与驱动配置
出处:维库电子市场网 发布于:2017-03-21 09:18:17
本文将介绍如何利用Vivado和petalinux开发Zynq7000系列芯片的SPI外设接口。
开发环境:
Vivado 2015.4
Petalinux 2015.4
一、 硬件工程的搭建
1. 打开vivado开发环境,新建工程,并选择你所使用的芯片型号(本文使用xc7z045ffg900-2这款芯片);
2. 点击“CreateBlock Design”创建一个新的工程桌布,在其中添加IP,将ZYNQ7芯片IP添加进来;

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

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

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

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

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

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

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

图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驱动如图;

图9 勾选上SPI驱动
4. 利用petalinux-build工具编译整个工程,然后利用petalinux-package生成BOOT.bin文件;
5. 利用硬件平台或QEMU启动Linux系统,即可在系统中看到spi驱动

图10 Linux下的SPI驱动
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 保护设备通信:为何隔离现场总线很重要2026/9/4 17:15:35
- 常用硬件接口的 PCB 设计关键要求2026/9/3 16:59:54
- 工业以太网协议揭秘:性能等级与线缆应用指南2026/8/24 16:40:06
- 为什么高速接口几乎都要用差分线?2026/8/21 16:03:51
- 常见连接器的作用及应用场合2026/8/20 15:52:43









