DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

使用 Digilent Arty S7&Pmod 测量环境数据

读者可以通过这篇文章学习如何使用 Arty S7,4个Pmod模块还有触摸显示屏来采集和显示环境的数据。

我们需要以上图片中的器件来进行测量

硬件清单:

Digilent Arty S7-50  x1

Digilent Pmod GPS x1

Digilent Pmod NAV x1

Digilent Pmod HYGRO x1

Digilent Pmod ALS x1

 

简介

Digilent Arty S7是受欢迎的Diligent Arty系列电路板的变体。它是围绕Xlinix Spartan 7系列来设计的。当与Arty S7连接时,它提供了一系列从4个Pmod接口到Arduino Shield连接器的选项。

Arty S7 方框图

在这个教程里面,我们使用Arty S7,4个Pmod模块(见列表)还有一个多点触摸显示屏来采集,计算以及显示环境的数据。我们需要以下器件:

  • Pmod NAV- 3轴加速度计,3轴陀螺仪加数字气压计
  • Pmod GPS- GPS接收器
  • Pmod HYGRO- 数字湿度和温度传感器
  • Pmod ALS- 环境亮度传感器

步骤1:搭建硬件平台

我们首先需要使用Xilinx Vivado打造一个硬件平台。在这里,我们示范在Spartan 7 FPGA上利用MicroBlaze处理器。然后,我们使用Xlinix SDK来设置软件以驱动多点触摸显示屏(MTDS)和Pmod模块。

安装板载文件

首先,我们从https://github.com/Digilent/vivado-boards/archive/master.zip下载Arty S7 板载文件,然后进行安装。这些文件定义了Xilinx Vivado环境中的Arty S7接口和内存配置。文件一解压后我们应该把他们复制去Vivado安装目录,如图下所示。(你也可以参考Digilent的教材https://reference.digilentinc.com/vivado/getting_started/start

在Vivado安装文件夹里面复制Arty S7板卡文件

创建Pmod与MTDS的驱动程序

我们可以通过Digilent Github提供的Digilent Vivado库创建Pmods与MTDS的驱动程序。这个库包含了能够适用于大多数Pmod的Xlinix Vivado与Xlinix SDK驱动器。你可以在Diligent Github上复制文件或下载压缩包或是直接在Github上解压。

接下来,我们打开Xlinix Vivado然后创建一个新的项目用于Arty S7。

创建项目时选择Arty S7选项

当项目创建完毕时,下一步是将Digilent Vivado库设置为储存库,以便我们能够在设计中添加Pmod与MTDS IP Cores. 这个步骤可以通过项目设置选项卡完成。

当所有库镜像完毕,接下来的步骤是创建一个方框图,实例化MicroBlaze。因为我们使用Arty S7的定义,这一步可以很快完成。我们需要从Board 项目卡上拖曳以下元素到框图当中以创建框图。

  • 系统时钟-这会添加一个时间向导,连接到系统时钟的输入,将配置生成两个输出Clk 1=100MHz, Clk 2=200MHz,然后同时设置成禁止重置输入。
  • DDR3 SDRAM-为Arty S7与DDR内存增加一个内存接口器。

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

添加板元素到板框图当中

下一步是添加MicroBlaze。选择 add IP option然后寻找MicroBlaze。添加完成后,我们可以使用run connectionautomation选项以便让Xlinix Vivado连接到大多数的系统中。倘若从来没有创建MicroBlaze的话,本视频提供了以下教程。

当你实例化了MicroBlaze IP core之后,在运行connetion automation之前需要使能下列元素:

  • AXI外设数据与指令接口
  • 调试模块

 

创建MicroBlaze系统后,从Digilent Vivado库中添加Pmod, MTDS还有其他的IP cores(见下表)。这些IP cores需要连接到正确的输出端口(Pmod 或shield)与AXI interconnect以便让MicroBlaze系统连接并控制它们。

  • Pmod GPS
  • Pmod NAV
  • Pmod ALS
  • Pmod HYRGO
  • PmodMTDS
  • AXI Timer – 用来创建周期中断计时器

一旦完成所有添加,我们可以通过双击IP block然后从菜单中选择接口,使到IP blocks的输出连接到Pmod或是shield。

选择连接的Pmod

对于MTDS,我们选择 SPI interface

设置MTDS连接到Shield SPI

现在,我们完成了上层设计,然后可以导出到Xlinix SDK。

完成了的Vivado设计

设计利用率

 

步骤2:创建软件

 

在MicroSD里面储存照片文件,然后安装进MTDS。

首先,我们需要准备一个MicroSD卡。这个卡需要被安插到MTDS然后保存一些我们即将使用的图片。MTDS驱动器提供了一个图片目录,我们可以在此找到

<install location>\ip\Pmods\PmodMTDS_v1_0\drivers\PmodMTDS_v1_0\examples\Resources

复制这些文件以及你所需的文件到SD卡当中,然后插入到MTDS里面。

 生成软件应用程序

系统里面有三种模式。我们可以点击触摸屏上的按钮来切换模式。

  • 模式1:从Pmod NAV中获取信息确定标题,在显示屏上显示指南针。
  • 模式2:从Pmod NAV与Pmod GPS获取信息,显示导航信息
  • 模式3:从Pmod HYGRO与Pmod ALS获取信息然后显示

 

以下是软件架构的概述:

  • 主要功能配置Pmod和其他驱动程序,包括配置中断控制器以与AXI定时器一起使用。这个功能也可使我们可以在触摸屏上绘制初始图像。
  • 连续循环监视显示屏的按钮,配置所选模式的显示效果
  • 中断服务程序依赖于模式选择和Pmod收集信息,然后根据需要更新显示信息。

它保证了系统的效率性和减少丢失”触摸屏事件”的可能性。

现在,我们可以使用Digilent Vivado库所提供的软件驱动器。我们可以使用MYDISP API跟MTDS产生交互。MYDISP API提供了以下的功能:

1.初始化显示

2.画线,椭圆或是两点之间的弧

3.测试显示

4.从SD卡中加载图像

5.创建按钮和监视器,当它们被按下时可以采取行动

MYDISP API是完整的记录在Pmod MTDS软件驱动器中的用户手册。他位置是在<install>ip\Pmods\PmodMTDS_v1_0\drivers\PmodMTDS_v1_0\examples\Documentation。

这个文件里面包含了让MDTS启动和运行的一切。同样的,你可以从软件驱动器里面找到每一个Pmods的相关应用例子。

这些例子还有大纲使我们可以更容易且更快的创建软件的应用。

Arty S7,Pmods 与MTDS运行系统然后采集环境的数据。

我们可以看视频,观察系统如何工作

 

MTDS显示加载的图像

完整的设计可以从Adam’s Github下载:

https://github.com/ATaylorCEngFIET/Arty_s7_example

PuaChengLin 还没写个人简介...

6 Dec 2019, 8:45