Xilinx社区
首页 > Steve专栏 > 亚当泰勒玩转MicroZed连载35:用MicroZed驱动Adafruit RGB NeoPixel LED阵列(第6节)
Steve专栏
亚当泰勒玩转MicroZed连载35:用MicroZed驱动Adafruit RGB NeoPixel LED阵列(第6节)
来源:  时间:2015-01-27  浏览量:1130

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

我们已经完成了以下工作:设计Adafruit NeoPixel LED驱动器、把它集成到Vivado框图中以及和系统的其它部分相连接,现在,我们需要思考一下将要采用什么样的验证方案,也就是说,我们需要做哪些测试来证明这个设计可以成功的工作?通常情况下,这个阶段的复杂程度要超过设计本身。

这是一个相当简单的设计案例,所以我将要采用的验证方案需要完成以下任务:
1.验证MicroZed、I/O载体板卡以及NeoPixel阵列之间的硬件接口。
2.使用VHDL仿真器对NeoPixel驱动器进行仿真。
3.开发测试软件对BRAM所有的地址进行读写操作,保证PS(处理器系统)能够正确地访问存储器。
4.开发测试软件去驱动阵列中的第一个NeoPixel,验证NeoPixel驱动器的功能,然后使用示波器验证发送到NeoPixel阵列的时序波形。
5.开发测试软件去驱动NeoPixel阵列中不同位置上的一些像素点(比如阵列中的第二个像素点、中间的像素点以及最后的像素点)。
6.使用一个终端程序去验证最终版本的软件是否能对正确的命令、错误的命令以及乱序的命令等做出正确的反应。
7.使用一个开发好的GUI来执行最终的功能验证,保证最终的设计可以按照最初的说明那样进行工作。

上面的这些步骤可能看起来比较复杂。然而,在许多类似这个简单应用的情况下,实现起来相对来说是比较简单的。

通常情况下,任何测试的第一要素就是要保证硬件能正确工作。(参见我在Xcell第82期发表的文章“设计一个FPGA硬件的基本要素”,以及第85期的文章“进行硬件设计的一种无痛的方法”)。使用MicroZed系统带来的一个好处是,Zynq SoC中的底层硬件、MicroZed板以及MicroZed I/O载体板卡其本身都是验证成熟的,这就减少了需要用在系统测试上的时间,可以开始验证我们的功能需求。(但是,这并不意味这我们将正确地实现SoC的功能)

在开始验证过程(上面的第1点)之前,我们还需要在硬件层次上去验证下面几个方面:
1.从IO载体板卡的PMOD连接器输出到NeoPixel的信号的正确性:最好是在MicoZed板没有上电的时候,使用万用表去测量。我们一定要保证NeoPixel阵列的VCC和GND信号是正确连接的。

2.用于对NeoPixel阵列进行驱动和供电的IO bank的电压设置正确性:这也可以简单地用万用表来测量电压是否是3.3V。

3.当我们证明了物理连接和电源连接后,一个不错的想法是把MicroZed板子上电,用万用表检查NeoPixel阵列供电的稳定性。

3v3 Bank 35供电测试点


3v3 Bank 35供电测试点

我上一篇博文主要讲的是设计NeoPixel驱动器以及使用ModelSim来对其进行仿真,这已经完成了验证方案中第2点描述的内容,这样就可以进行到第3点:验证Zynq SoC的PS和PL的功能性能以及它们两者之间的交互。

因为我们这许多周—35周,一直在使用MicroZed PS设计,我很有信心把PS正确配置成从SD卡进行boot,以及从DDR RAM执行程序。然而,在这个系列博文中,这是第一次使用BRAM控制器和BRAM,这也是为什么我要开发测试软件来保证PS能正确地对存储器进行读写的原因。

对驱动NeoPixel阵列的系统能力的测试,到了验证方案的第4和第5点时,已经基本成型了。这两点有着密切的联系,是一个测试到另一个测试的自然演进。第一个测试软件仅仅对一个NeoPixel进行写操作并检查时序,我在示波器上看到的波形与VHDL仿真产生的波形具有对应关系,并且NeoPixel能用正确的颜色点亮。测试成功。

然后我修改了这个测试代码,用全色度的红、绿和蓝去驱动一个像素点,保证驱动器能够正确地设置像素点的颜色。一旦一个像素点可以被驱动,这个程序就很容易修改成用不同颜色驱动特定的像素点,这个是测试控制器能够正确地驱动LED条上一个特定的像素点。最后,把测试软件修改成在相同时间,把LED条上所有的像素点都驱动成同样的颜色,在这个测试中,我选择使用白色,因为这个颜色需要打开NeoPixel阵列中所有红色、绿色以及蓝色的LED,因此,可以保证从I/O载体板卡驱动过来的最大电流能够支持这个LED条工作。

当这一系列测试结束时,我们有信心能够驱动NeoPixel阵列。然而,我们还没有验证将要用来控制NeoPixel颜色设置的命令接口,我将在下一篇博文中描述测试方案中最后两点关于串行接口和GUI的测试步骤,在文章中,我将要介绍一个简单的串行通信协议,我将要用它来实现对Zynq SoC PS和PL 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