Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡

时间:2024-05-20 16:19:25

半年前用经费买的ZYNQ开发板,最近才派上用场。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
最近正在进行的一些工作需要用到它(没错就是那个离线式数字信号处理系列的),今天来写第一个程序,准备一下后面的数据采集操作。
使用官方给的Example来测试SD卡的读写。

Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
首先打开Vivado,在这里我使用的版本是2019.1,属于比较新的版本,黑金给的很多例程不能正常编译了。。而我又是个硬件,我也看不懂C语言编译器报的到底是个什么鬼错误。

所以重新新建一个好了。先打开工程新建。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
打开之后直接创建block design。因为我们的SD卡是纯运行在PS端的,所以不需要使用到任何PL的东西。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
创建出来就是这个样子滴~
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
双击打开zynq processing system7来进行下一步配置,红框中的三个是我们需要进行配置的东西。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
首先配置PS端的IO,通过查阅官方使用手册,我们可以找到本次实验需要外设所连接到的引脚位置
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡

在SD卡IO的说明中可以看到,板子的生产商干了一件十分疑惑的事情,他们将SD卡的每个引脚通过了一颗电平转换芯片连接到FPGA的PS端,也就是说在SD的一端,其逻辑电平为LVCMOS3.3V,而在FPGA的一端,电平则为LVCMOS1.8V。如果配置成了3.3V就会导致出现错误,无法读写。这在我刚开始调这个例程的时候把我给坑惨了。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
来到IO配置页面,把SD0和UART1这两个外设启动,注意SD卡那里要把它展开,勾选上Card Detect这一项,这是用来检测SD卡插入的。
两个外设根据刚才原理图上的接口选择就好了。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
随后打开MIO configuration,在这里我们要修改Bank 1的IO电压,从原来的3.3V修改为1.8V,否则将会直接导致SD卡工作不正常。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
接着打开DDR配置,修改成自己开发板的DDR内存型号就可以了。
完成之后直接点击OK就可。执行一下自动连线。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
到这里,对PS的配置就完成了,接下来依次完成红框中的两个。这些的作用是Vivado会为IP子系统生成一个顶层文件,这样我们就可以对该系统进行综合、实现并生成bit流了。
各Block都搭建完成后,Generate Output Products主要是把IP参数和连接信息update到project中,同时也会检查错误。Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
然后就是素质三连hhhh
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
在生成比特流之后,我们需要导出硬件配置,以便我们在SDK中操作这些硬件。随后就可以打开SDK了。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
新建一个工程~
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
重新编辑板级支持包,打开它的xilfs库。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
打开打开使用长文件名的配置Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
可以看到编译器很快就编译好了我们刚才加入的库。接下来我们就可以导入官方库附带的例程了。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
接下来我们打开SDK自带的终端,连接板子上PS端的UART1串口到IDE自带的终端上,方便观察信息。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
打开后先返回Vivado,把bitstream烧写进FPGA里。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡
接下来运行这个例程就可以了。可以看到很轻松的print出了成功写入的消息。
如果打开SD卡里的文档,就是这个样子的。
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡

以上desu。喵内!
Xilinx ZYNQ学习笔记(一)——使用PS读写SD卡