Xilinx社区
首页 > Steve专栏 > 亚当泰勒玩转MicroZed连载31:系统模块驱动NeoPixel RGB LED阵列
Steve专栏
亚当泰勒玩转MicroZed连载31:系统模块驱动NeoPixel RGB LED阵列
来源:  时间:2015-01-27  浏览量:880

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

6个月前,在我开始写这个连载博客的时候,我就通过提供一些好的、简单易用的例子,来阐述Zynq All  Programmable SoC的PS(处理器系统)和PL(可编程逻辑)的若干细节知识,并在以前的章节中介绍了MicroZed I/O载体卡,现在,我们可以尝试把之前介绍过的这些方面都组合到一起,来看看让它们协同工作是多么容易的事情。


这个例子,我们主要考虑用PS来控制PL去驱动一个Adafruit  NeoPixel数字RGB LED阵列。我们会通过下面的方法来实现:
1.开发一个PL外设来驱动NeoPixels;
2.在PS和PL之间通信;
3.使用Zynq I/O载体卡和卡上的PMOD扩展端口;
4.开发一个PS应用来使上面这些项协同工作;

我不认为这个工作在一篇博文中就能描述完,可能会需要写几篇,但是不用担心,所有的事情都已经实现了,并且可以正常工作,所以在方法上不会有任何问题,我将花点时间来详细说明这个工作。

有些人也许会问,NeoPixel是什么?它们是独立编址的LED,每一个NeoPixel都包括一个红色、绿色和蓝色LED,这些LED通过一个数字控制器来控制。它们被安装成条状,就象你在这张AdaFruit照片中看到的那样:

AdaFruit NeoPixel数字RGB LED防水条


AdaFruit NeoPixel数字RGB LED防水条

AdaFruit NeoPixel条采用的是一个非常简单的3线接口,包括电源、电源回复和Din(数据输入)。三个NeoPixe LED(红、绿或者蓝)输出的光都用一个8-bit值来表示,因此,每一个单色LED都可以提供256个亮度级,当和另外两个LED组合到一起的时候,就可以得到24位色(16777216个颜色)。丰富的色彩以及简单的串行接口,使得这些LED器件在许多场合中都得到广泛使用。

更好的地方在于,NeoPixel之间可以通过菊花链连接在一起。每一个NeoPixel都有一个缓冲的Dout(数据输出)接口,当命令字一个接一个的传输过来时, NeoPixel就把数据从Din接口直接传送到Dout接口,这样,仅用一根I/O线,就可以把这些独立编址的NeoPixel组合成一个大的条状或者其它的排列方式。想要组合成多大都行,只要你能把它们都点亮。

两个NeoPixel通过菊花链组合在一起


两个NeoPixel通过菊花链组合在一起


NeoPixel采用Worldsemi WS2812智能型LED集成光源(数据手册这里)。这些器件通常采用5V供电,但是,数据手册中建议可以采用3.3V供电,其中的限制因素就是蓝色LED需要的供电电压是3.2V~3.4V。因此,应该(的确是)可以采用MicroZed I/O载体卡的3V3来给这些器件供电,我会在后面的博文中进行更详细的说明。


我需要一个PMOD扩展模块来确保能够把NeoPixel同MicroZed I/O载体卡连接起来。PmodCON1扩展模块连接器把PMOD接口上的4根信号线和电源/电源回复线输出到6个螺丝接线端。

PmodCON1与NeoPixel条之间的连接


PmodCON1与NeoPixel条之间的连接

我们要有一个良好的工程习惯,就是在一头扑进去开发一个方案之前,先定义好一些需求。下面整理了这个应用的一些主要需求:
1、要能够驱动可变数量的NeoPixel;
2、在工作过程中,用户可以进行升级;
3、每一个NeoPixel都要能单独进行编址;
4、每一个NeoPixel在工作过程中要能够进行升级;

这些需求都非常简单,但是,满足这些需求的应用能够以多种方式灵活地进行使用。

在下一篇博文中,我们将要着眼于通过什么样的架构和方法来实现这些需求。下面的图片展示了这个方案最初的测试结果,测试中只控制了一个LED。

第一个用Zynq控制的NeoPixel


第一个用Zynq控制的NeoPixel

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

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

热点文章
精选视频
推荐资源

中国授权培训机构

北京 电话:(010)82757632
      (010) 62192881
深圳 电话:(0755)86186715
武汉 电话:(027)61389792
成都 电话:(028)80821007
南京 电话:(025)66022032
西安 电话:(029)82230498
邮箱:sales@e-elements.com

中国授权经销商

香港 电话:(852)22127848
北京 电话:(010)84148118
成都 电话:(028)86528262
上海 电话:(021)33678387
深圳 电话:(0755)26584925
武汉 电话:(027)87322806
邮箱:china@avent.com
深圳 电话:(0755)26743210
上海 电话:(021)51696680
北京 电话:(010)51726678
成都 电话:(028)85139576
武汉 电话:(027)87690155
邮箱:
xilinx_enquiry@comtech.com.cn

社区主办


《电子产品世界》杂志社

内容提供


    赛灵思公司

Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备12027778号-2 北京市公安局备案:1101082052