基于Digilent Arty S7和Pmods的环境数据测量方案项目的DIY动手指南

生活科技

0 220 0

当前 1/3 Step

Step1: 硬件准备

Digilent Arty S7 是围绕Xilinx Spartan 7 系列器件而设计一款FPGA开发板。在接口方面,Arty S7 提供了从4个Pmod端口到Arduino Shield连接器的一系列选项。


在本项目中,我们使用Arty S7 50T ,四个Pmod和多点触摸屏护罩(MTDS)来收集,处理和显示环境数据。我们需要以下内容

  • Pmod NAV – 3轴加速度计,3轴陀螺仪,3轴磁力计以及数字气压计

  • Pmod GPS – GPS接收器

  • Pmod HYGRO –集成温度传感器的相对湿度传感器

  • Pmod ALS –环境光传感器


image_20200515_ad4afb27d7618.jpeg

    Step2: 建立硬件平台

    第一步需要使用Xilinx Vivado 创建硬件平台。并Spartan 7 FPGA器件中实例化MicroBlaze 处理器然后,我们使用Xilinx SDK 创建软件来驱动多点触摸屏(MTDS)和Pmod。

    安装板文件

    首先,我们应该安装Arty S7开发板文件,这些文件可以从https://github.com/Digilent/vivado-boards/archive/master.zip 下载这些文件为Xilinx Vivado 环境中的Arty S7接口和内存配置定义提取文件夹后,应将它们复制到目录// data / boards / board_files下的Vivado安装中,如下所示(您也可以参考Digilent提供的教程:https:// reference .digilentinc.com / vivado / getting_started / start 

    image_20200515_bb1534c5c2647.jpeg

    在Vivado安装中复制Arty S7板文件


    创建用于Pmods和MTDS的驱动程序

    我们可以利用Digilent GitHub上现有的Digilent Vivado库为Pmods和MTDS创建驱动程序该库包含大多数Pmod Xilinx Vivado Xilinx SDK 驱动程序。进入Digilent GitHub后,您可以在本地克隆目录,也可以下载zip并在本地解压缩。

    接下来,我们打开Xilinx Vivado,并针对Arty S7 创建一个新项目。

    image_20200515_f2fbaa862e248.png

    选择Arty S7 board项目创建对话框


    创建项目后,下一步就是将Digilent Vivado库映射为存储库,以便我们可以将Pmod和MTDS IP内核添加到设计中。这可以通过项目设置选项卡完成。

    image_20200515_cb76ae7edeaaf.jpeg


    MicroBlaze

    将所有库都映射好之后,下一步就是创建一个框图并实例化MicroBlaze 由于我们使用的是Arty S7 电路板定义,因此可以很快实现。首先创建一个框图,并将以下元素从“板”选项卡拖到该框图上。

    1.系统时钟–这将添加一个时钟向导,连接到系统时钟输入,对其进行配置以生成两个输出clk1 = 100 MHz,Clk2 = 200 MHz,禁用复位输入。

    2.DDR3 SDRAM –这将添加为Arty S7 及其配备的DDR存储器配置的Memory Interface Generator项目

    将100 MHz clk连接到DDR系统时钟输入,将200MHz clk连接到DDR参考时钟输入。

    将电路板元素添加到框图

    将电路板元素添加到框图


    下一步是添加MicroBlaze 这可以通过选择添加IP选项并搜索MicroBlaze来完成一旦将其添加到设计中,我们就可以使用运行连接自动化选项Xilinx Vivado 连接大多数系统

    实例化MicroBlaze IP内核时,需要在运行连接自动化之前启用以下元素

    1.AXI 外设数据和指令接口

    2.调试模块

    创建MicroBlaze 系统后,我们从Digilent Vivado库中添加了必需的Pmod,MTDS和其他IP内核(请参见下面的列表)。这些IP内核需要连接到正确的输出端口(Pmod或Shield连接器)和AXI互连,以便MicroBlaze 系统控制它们并与之交互。

    1.Pmod GPS

    2.Pmod NAV

    3.Pmod ALS

    4.Pmod HYRGO

    5.PmodMTDS

    6.AXI计时器–用于创建定期中断计时器

    一旦添加了所有必需的IP块,我们可以通过双击IP块并从下拉菜单中选择接口,将其输出与Pmod或shield接口关联。

    image_KgFcKgDGo9.jpeg

    选择关联Pmod

    对于MTDS,我们选择SPI接口

    image_20200515_95e1752d756fb.jpeg

    配置MTDS以连接到Shield SPI

    我们已经完成了顶层设计,可以将其导出到Xilinx SDK

    image_20200515_6bd9d47bfee4b.jpeg

    完成Vivado设计

    截屏2020-05-1511.20.53.png

    设计Utilization

    Step3: 建立软件平台

    我们首先需要准备一个MicroSD卡。该SD卡已插入MTDS,并保存了所需的数字位图图像。MTDS驱动程序提供了一个包含几个准备好的位图的映像目录,这些位图位于\ ip \ Pmods \ PmodMTDS_v1_0 \ drivers \ PmodMTDS_v1_0 \ examples \ Resources

    将这些文件复制到SD卡(包括应用程序所需的其他文件),然后将SD卡插入MTDS。

    生成软件应用程序

    系统有三种模式。模式将通过MTDS上的触摸屏按钮进行更改

    • 模式一–将从Pmod导航中获取信息并确定航向并在显示屏上的指南针上显示

    • 模式二-将从Pmod导航和Pmod GPS获取信息并显示导航信息

    • 模式三–将从Pmod HYGRO和Pmod ALS获取信息并显示该信息

    这是整体软件架构的概述

    1.主要功能用于配置Pmod和其他驱动程序,包括配置用于AXI定时器的中断控制器。此功能还可以在触摸屏上绘制初始图像。

    2.一个连续的循环,它将监视触摸屏按钮并配置所选模式的显示。

    3.依赖于模式接口和所需Pmod的中断服务例程将收集信息,然后根据需要更新显示元素。

    这样可以确保系统高效,并减少错过任何“触摸屏事件”的可能性。

    现在,我们可以使用Digilent Vivado库提供的软件驱动程序。要与MTDS进行交互,我们可以使用MYDISP API,该API提供了一些功能,例如

    1. 初始化显示。

    2.在两点之间画一条直线,椭圆和弧线。

    3.显示测试。

    4.从SD卡加载位图图像。

    5.创建按钮并监视按下按钮的时间,以便采取措施。

    MYDISP API已在PmodMTDS软件驱动程序下的用户手册中完整记录,位于ip \ Pmods \ PmodMTDS_v1_0 \ drivers \ PmodMTDS_v1_0 \ examples \ Documentation

    本文档将告诉您启动和运行MTDS所需的一切。同样,您可以在软件驱动程序目录下找到每个Pmod的应用示例。

    使用这些示例和上面的大纲体系结构,我们可以快速轻松地创建软件应用程序。

    Arty S7,Pmods和MTDS的环境数据收集和处理系统

    Arty S7,Pmods和MTDS的环境数据收集和处理系统

    截屏2020-05-1510.48.41.png

    MTDS显示已加载的位图


    评论