你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

亚当泰勒玩转MicroZed连载37:用MicroZed驱动Adafruit RGB NeoPixel LED阵列(第8节)

发布者:jackzhang 时间:2014-09-15 20:01:23


作者:Steve Leibson, 赛灵思战略营销与业务规划总监
By Adam Taylor

我们采用基于Zynq的MicroZed板来实现Adafruit NeoPixel驱动器,前后花了8周的时间,在这个过程中,我们齐心协力地解决了许多问题。我想现在是时候来回顾一下这个例子所覆盖的内容了:
1) 系统的模块化方法
2) 在Zynq SoC的PS(处理器系统)和PL(可编程逻辑)间通信
3) 使用IP库来减少我们需要实现的定制模块的数量
4) 在Zynq SoC的PL中,实现一个Neo Pixel驱动器
5) 采用的验证方法
6) 定义了一个串行协议,用于和Zynq SoC进行通信

在我们继续探讨Zynq SoC的其它方面之前,NeoPixel系列最后的这篇博文简要地介绍了TCL/TK GUI的开发,通过这个GUI,你可以在笔记本电脑上或者其它的远程设备上控制一个阵列中的每一个独立的NeoPixel。我开发这个GUI的目的,是让用户可以在NeoPixel 24位色彩深度所表示的1600万种颜色中任意选择。

这个GUI非常简单,LED条中的每一个像素点都有一个按钮与之对应。每个按钮在点击之后,都会弹出一个窗口,你可以选择这个像素点所需要的颜色。一旦你做出了选择,颜色信息就会被下载到Zynq SoC中,该像素点的颜色也将随之改变。

设计这个GUI主要的挑战是要保证传送到MicroZed板的数据的二进制格式的正确性以及和所选择颜色的一一对应性。因为这个原因,GUI的第一个版本要显示每一个被选择颜色的十六进制字,同时,Zynq上的软件也被设计成要把它接收到的数据进行回传,GUI接收回传的数据,并保存成文本文件,这样通过比较,就能保证Zynq SoC接收的数据和GUI发送数据之间的一致性。下面是一个回传的例子。
像素点编号 = 32 绿色 = 0 红色 = ff 蓝色 = 0

当GUI工作正常后,布局就被改成仅仅显示LED编号和选择的像素点。

然后,我使用这个GUI驱动器对系统进行验证,确保可以从GUI来对每个像素点进行定位,并能把像素点设置成红色、绿色、蓝色、白色以及许多不同的随机选择的颜色。

这是系统在工作时的一个视频:


已经到了这个例子结束的时候了,我们继续探讨一下Zynq SoC的其它一些方面,举个例子,我们可以考虑一下这个驱动Neo Pixel的问题还有什么其它的解决方法。这篇博文的连载17章介绍了Triple Timer Counter,它能够产生一个PWM波形,这个输出可以被用来驱动Neo Pixel阵列。但是,处理器的负载就会更高。

在我的下一篇博文中,我们将要开始探讨Zynq SoC上能够运行的操作系统。在此期间,如果你想要得到我在这个例子中使用的代码,请给我发送电子邮件。

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-Chro...

© Copyright 2014 Xilinx Inc.
如需转载,请注明出处

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了