单片机/MCU论坛
直播中

于振南

12年用户 131经验值
擅长:MEMS/传感技术
私信 关注

振南ZN-X开发板【51版】基于振南SHELL命令系统 对ZN-X开发板进行全面的整板测试【连载】

本帖最后由 于振南 于 2016-6-17 14:06 编辑

振南电子 ZN-X开发板技术支持QQ群: 177856520
振南 SD卡、FAT32文件系统、嵌入式存储技术交流QQ群:198521880
振南电子网站 www.znmcu.cn
=========================================================================================
【振南的整板测试思想与方案介绍】
原文出处:http://www.znmcu.cn/znx_51_alltest_jieshao.html

关于ZN-X开发板,有一个很重要的问题一直困扰着我和用户,那就是:如何方便快速地对板上的所有硬件资源进行测试,也就是“整板”测试。通过它来检查和确认板上硬件是否完好,是否可以正常工作。如果有问题,能够快速定位问题。这对于振南开发板的批量化生产加工、测试、发货有很大的好处,可以让工作效率有很大提高,另一方面,对于开发板的使用者来说,也可以全面快速的验证开发板是否OK,是否在物流或自己的使用过程中造成了损坏。
振南ZN-X开发板上包含了很多的实验资源,比如TFT液晶、SD卡、ADC/DAC、点阵屏、数码管等等,总共算下来足有近20种。我们要把所有模块全部插接到ZN-X的基板上,对各个功能统一的逐个进行测试。

一种最原始最笨的办法就是把各个功能的测试程序,一个个地烧到开发板上。要完成近20个功能的测试,我们就需要烧录20次。这个工作量是比较大的,而且是重复性的劳动,乏味无趣。
所以,我们提出了“整板测试”的概念。我们开发一个高度集成化的综合性的实验,它包含了开发板上所有功能的驱动,这个程序烧到开发板之后,我们通过某种接口,来灵活调用各个功能,从而完成对所有功能的统一化的测试。
有人曾经提出过这样的问题:“ZN-X开发板的那么多的模块,可以一股脑地全部插到基板上去吗,并且还要让它们能够同时工作起来,这看似有点困难,因为单片机IO数量是有限的!!”回答是:“振南在设计ZN-X之初,就已经深入而全面的考虑了多个功能模块共同占用IO,又能够同时工作的实现方案。比如SD卡、spiFLASHTFT液晶、摄像头....等等,同时接起来,互不影响的协同工作。这涉及到IO与总线的深度复用,一条SPI或并行总线上,通过选通和编址,基于三态的原理,实现了挂接多个功能模块,对IO资源进行分时复用。通过长期的优化和安排,最终实现了所有模块全部插上去,也能够全部正常运转起来!!”
这一问题对于整板测试是很重要的。我们不需要在测一个功能的时候,而把其它与之冲突的功能模块拿掉。对IO和总线的高度复用,使得我们可以把所有模块一次性全部插上去,然后就可以一个个地对它们进行测试了!!
这个高度集成化的综合性的实验,必然是一个很大的工程,它不光只是简单的驱动大杂烩,更重要的是它一方面涵盖了对功能模块细致深入的测试方法,针对哪个模块要使用哪种测试方法,比如对于TFT液晶,我们的测试方法就是去简单一个简单的图片或是用纯色对刷屏,再或者是显示一个色带;而对于SD卡,我们采用的测试方法则是对某一扇区进行写和读,然后比较写入读出的数据是否一致;对于点阵屏,我们可以让他显示一个点阵图形,然后肉眼观察是否显示正常。这些测试方法需要精心的设计。另一方面,这个整板测试要给人留出一个方便的接口,以便可以灵活调用到某一个测试。

回帖(10)

于振南

2016-6-17 14:05:33
通过SHELL命令行方式对各功能模块进行灵活测试
原文出处:http://www.znmcu.cn/znx_51_alltest_shell_jieshao.html

可以看到,有一些测试是需要设定一些参数的,比如让TFT液晶以给定的颜色刷屏、从EEPROM给定的地址读写数据等等。这种情况,最合适的就是SHELL命令行方式。这种形式就像是DOS这样,一个命令对应一个测试程序,同时又可以传入一些参数。
这个SHELL命令行方式的整板测试,由振南历时10天完成开发和测试,一共包含近20个命令,可以对ZN-X开发板上的各功能模块进行全面的测试。振南使用它可以快速进行开发板的测试,提高批量化生产和发货速度;而用户使用它,可以在拿到板子后第一时间把板子玩转起来,初步领略到ZN-X的乐趣。起码可以快速的确定开发板硬件是否是完好正常的。

举报

于振南

2016-6-17 14:08:20
ZN-X开发板各功能模块的测试方法
本文出处:http://www.znmcu.cn/znx_51_alltest_fangfa.html
测试方法的设计是一件比较有创造性的工作,振南对各个功能模块的测试方法是这样的
ZN-X 整板测试各功能模块测试方案》:
功能模块
测试方法及说明
LED环测
说明:在ZN-X上有一圈LED,它们不光只是为了好看和趣味性,它们每一个LED都与板上的关键信号相连,LED的亮灭可以反映出单片机对这些关键信号的控制是否正常。
测试方法:依次点亮这些LED,肉眼观察是否有不亮的。LED组成了一个环,振南把这种测试方法称为“环测”或者“环状流水灯”。“环测”通过之后,说明单片机与外围功能模块之间的关键信号的连接是OK的。
SD1测试
说明:对ZN-X上的第一个SD卡进行扇区读写测试。扇区读写是进一步进行文件系统移植和应用的基础,想使用振南的znFAT,这一测试必须通过。
测试方法:先向SD1999扇区写入512字节数据,然后再将此扇区数据读出,比较数据是否一致。
注:不同的SD卡,在初始化的时候对SPI的速度要求不同,有的速度可以高一些,有的则不能太高。所以在测试中,可以对SD卡初始化的速度进行调节。
SD2测试
同上。
注:ZN-X上有两个SD卡接口,可以同时插接两个SD卡模块。1、因为SD卡是振南开发板上的重头,它围绕文件系统znFAT有大量的应用实验。两个SD卡接口是为了防止其中一个损坏或另有它用之后,还有候补可用。2、两个SD卡之间可以作一些【跨卡】的实验,比如卡卡之间拷贝文件、znFAT同时挂载多张SD卡的实验,这样可以把znFAT和文件系统的应用作得更全面更深入。
VS1003 MP3播放/录音测试
说明:ZN-X上有一个MP3解码播放模块,同时它还可以进行录音。单片机只需要将MP3等音频文件的数据写入到VS1003中,即可实现播放;录音功能,VS1003可以将声音编码为ADPCM,单片机可读出存为WAV文件。
测试方法:
播放功能,如果要向VS1003写入MP3数据,我们就要去准备这个数据,涉及到数据存储,虽然可以把它存到SD卡或Flash中,但是这个步骤比较繁琐。我们使用VS1003内置的正弦音测试,它内部可以产生某一频率的正弦信号,让它通过解码,再通过模拟通道(音频DAC输出),最终播放出来,我们可以从耳机中听到频率对应的尖锐声音。通过这种方法可以简单测试解码播放功能。
录音功能,VS1003在使能录音功能之后,可以从耳机中听到麦克所拾获的声音,这被称为 LOOPBACK
TFT液晶测试
说明:ZN-X上是支持多种尺寸分辨率,多种接口的TFT液晶模块的。这里着重对ILI9325控制器的320X240分辨率的TFT模块进行测试。
测试方法:首先分别测试竖屏与横屏模式下的刷屏,然后显示一幅简单的图片(图片数据内置于单片机ROM中)。测试中可以指定刷屏颜色,或者以色块方式刷屏。
按键测试
说明:ZN-X上有5个独立按钮,他们分别与P1端口的几个IO相连,可以用于作简单的控制和交互。
测试方法:依次按下5个按键,以确认按键是否OK
摄像头测试
说明:ZN-X上有摄像头模块,它采用OV7670+FIFO的方式,这样就可以让51这种低端低速的单片机也可以获取到图像。
测试方法:51读取摄像头的图像实时的显示在TFT液晶上。这种测试方法,有一定局限性,也就是必须要搭配TFT液晶才能完成。因此,振南设计了无需TFT的测试方法,51读取摄像头模块图像,转为BMP文件格式,直接通过串口上传给PCPC存为图片,可直接打开看到图像。
DS18B20测试
说明:DS18B20是经典的初学者必学的温度传感器
测试方法:读取温度值实时显示出来
PCF8563测试
说明:PCF8563是经典的RTC芯片,即实时钟,它可以为我们提供年月日时分秒时间信息
测试方法:PCF8563常见的问题是晶振不起振,从而导致时间不走。所以,我们可以用程序检测时间秒是否变化,如果在5秒钟内,秒一直没有变化,则认识有问题。另外我们还可以读取PCF8563的时间信息显示出来,也可以向它设置新的时间。
AT24C64测试
说明:AT24C64是容量为8KBEEPROM芯片,通常用于存储一些小数据量的信息,比如ID号、字符串等。
测试方法:我们选取某一个地址,先向它写入一个字节,然后再读取这个地址,比较数据是否一致。
很多时候我们需要把数据烧录到EERPOM中,比如一些字模、素材、声音、图片等等。所以在AT24C64的测试中,附加了这些烧录和读取数据的功能。可以通过串口将PC上的文件下载到AT24C64中,或者将AT24C64中的数据上传到PC。同时还可以随意查看某个地址上的若干字节的内容,或向指定的地址写入字节。
AT45DB161测试
说明:AT45DB161是容量为2MBFlashROM,它的数据被组织成扇区或数据块的形式,通过ATMEL的缓冲技术,可以实现对它的单个字节的读写操作。
测试方法:选取某一地址,向写入若干个字节,然后再从这个地址读取数据,比较数据是否一致。
同样,对于AT45DB161也附加了数据的下载和上传功能。也可以向指定地址写入字节,或查看某个地址上的数据。
TLC549测试
说明:TLC549是一颗8ADC
测试方法:不断读取ADC的值,调节电位器,观察ADC值是否相应变化。
TLC5615测试
说明:TLC5615是一颗10DAC
测试方法:在DAC输出上产生一个锯齿波,观察LED的明暗变化。附加功能:产生一个给定的电压。
16X16点阵测试
说明:ZN-X的基础模块上有一个16X16LED点阵屏。用它可以一些简单的字符图案的显示,以及滚动效果。
测试方法:在点阵屏上显示一些简单的演示效果,观察是否显示正常。附加功能:可以随意点亮某一个或多个LED点。
数码管测试
说明:4位数码管,可以显示410进制数或浮点数。
测试方法:在4位数码管的每一位上循环显示0-9这十个数。也可以显示指定的某一个数值。
触摸功能测试
说明:ZN-X上的TFT液晶是有触摸功能的,这样可以实现较为复杂的人机交互。
测试方法:读取触摸芯片的坐标数据,实时地显示出来。观察数据变化是否与触摸的位置同步。
以太网控制器ENC28J60硬件测试
说明:ZN-X上是可以接以太网ENC28J60模块的,通过它网络的世界就此打开。
测试方法:此测试不涉及TCP/IP方面的测试,只是对ENC28J60的接口和硬件进行基础的硬件测试,以确保芯片是完好的。
NRF24L01测试
说明:ZN-X是可以进行RF射频无线通信的,模块使用NRF24L01+芯片。
测试方法:初步地进行硬件接口和芯片的测试。然后可进行简单的数据通信测试:一个为发射,一个为接收,完成一个数据包的收发和验证,即说明数据通信成功。
可以看到,这是一个庞大的测试集合,每一个功能模块的测试都是精心设计的,而且还有一些附加功能,这是有一定实用价值的。

举报

于振南

2016-6-17 14:10:15
SHELL命令平台的搭建(超级终端的使用方法)
本文出处:http://www.znmcu.cn/znx_51_alltest_shell_pingtai.html
PC端的串口终端软件有很多种,比如我们经常用的串口助手、Windows自带的超级终端,还有SecureCRT,它们都可以实现串口命令和数据的发送和接收。但是我们这里选用超级终端,备选SecureCRT。为什么?因为它们可以实现SHELL系统中的按键发送功能(一般的串口助手需要在输入框里输入要发送的字符或数据,然后按“发送”按钮,这不符合SHELL命令行的习惯和风格。我们需要键盘输入,即时发送,回车后命令立即运行!
超级终端虽然是WINDOWS内置的原生串口工具,但是很多人并不了解它。这里振南对它进行一个介绍。
超级终端在“开始-程序-附件-通讯”中,第一次使用的时候,它会让你填写区别什么的,你填1即可。
随便输入一个名称。
我们选择一个串口号(ZN-X配送了USB转串口模块,正确安装驱动之后,即可得到一个虚拟串口,这里就选择这个虚拟串口的串口号即可,在振南的电脑上是COM7
振南开发的整板测试实验中使用的波特率为115200bps,所以超级终端也设置为115200,数据流控制选择无。
点击“属性”按钮。
如图中进行设置。OK,接下来,我们就可以开始对ZN-X进行SHELL整板测试了!!(前提ZN-X开发板已经烧录了振南的整板测试程序)
开发板正确连接之后,上电即可看到上面的内容。
振南的这个整板测试,已经作得比较完善,是有完备的帮助信息的,你可以输入“?”或“h”或“help”去查看关于某个命令的详细介绍以及范例。比如下图:
我们甚至可以看到这个系统中所有命令集合:
为什么要选SecureCRT作为备选软件,因为有些用户对于超级终端的界面可能有些不太习惯,或者觉得有些乱,窗口小。
至于SecureCRT的设置和使用方法,振南会在别的文章和教程中进行介绍。
好,接下来,振南要分若干个章节来讲解通过SHELL中的命令对ZN-X上的功能模块进行测试的方法。

举报

于振南

2016-6-17 14:13:54
测试板上所有LED(LED环测,环状流水灯)
本文出处:http://www.znmcu.cn/znx_51_alltest_shell_allled.html
这里振南使用SHELL命令系统对ZN-X上的LED环进行测试。
说明:ZN-X开发板上有一圈LED,很多人都觉得这种设计很新奇,我们可以作一个环状流水灯,这比传统的、我们早已玩腻的直线流水灯更有意思。这一圈LED的作用还只于此,每一个LED都与板上关键的信号相连(主要是一些片选、中断以及使能信号),它的亮灭代表了信号的变化。这样就可以很直观地知道某一个信号是否有问题。
SHELL平台测试命令:


举报

于振南

2016-6-17 14:16:13
测试板上第一个SD卡(扇区读写与数据校对)
本文出处:http://www.znmcu.cn/znx_51_alltest_shell_sd1.html
这里振南使用SHELL命令系统对ZN-X上的第一个SD卡进行测试。
说明:振南的ZN-X开发板上有两个SD卡模块的接口,可同时插接两个SD卡。这里我们对第一个SD卡进行测试。
具体测试方法请见《ZN-X各个功能模块的测试方法》 http://www.znmcu.cn/znx_51_alltest_fangfa.html
SHELL平台测试命令:
SD卡这种东西,对于初始化时的SPI时钟比较敏感。所以振南设计可调节初始化时SPI速度的参数。这个DELAY其实就是驱动程序中SPI时钟上的一个延时,这个DELAY我们设置的最大,SPI越慢。初始化时SPI越快,我们测试的过程越长,但是SD卡初始化成功的机率越大。到底DELAYSPI时钟速度之间的关系是怎样的?振南可以给出一个参考值,当DELAY=20时,SD卡初始化时的SPI时钟频率大约是5KHz左右。

举报

于振南

2016-6-17 14:17:28
测试板上第二个SD卡(扇区读写与数据校对)
此文出处:http://www.znmcu.cn/znx_51_alltest_shell_sd2.html
这里振南使用SHELL命令系统对ZN-X上的第二个SD卡进行测试。
说明:这里对振南ZN-X上的第二个SD卡进行测试,测试方法与第一个SD卡相同。
SHELL平台测试命令:


举报

于振南

2016-6-17 14:18:43
测试板上的MP3播放与录音功能(正弦音测试与录音回放)
此文出处:http://www.znmcu.cn/znx_51_alltest_shell_mp3.html
这里振南使用SHELL命令系统对ZN-X上的VS1003 MP3播放与录音功能进行测试。
说明:这里对振南ZN-X上的VS1003 MP3解码播放及录音功能进行测试。
具体的测试方法请详见《整板测试【各个功能模块的测试方法】http://www.znmcu.cn/znx_51_alltest_fangfa.html
SHELL平台测试命令:


举报

于振南

2016-6-17 14:20:20
测试板上的TFT液晶显示(刷屏、色带以及显示简单图片)
本文出处:http://www.znmcu.cn/znx_51_alltest_shell_tft.html
这里振南使用SHELL命令系统对ZN-X上的TFT液晶的显示功能进行测试。
说明:这里对振南ZN-X上的TFT液晶的显示功能进行测试。ZN-X其实是支持很多的TFT液晶模块的,它有两个TFT液晶接口,基本上兼容了市面上所有的TFT液晶接口(这个接口还可以用于功能扩展,比如可以插接一些新的模块,振南研发的一些新的模块,有一些也是通过这个接口来插接的。)
具体的测试方法请详见《整板测试【各个功能模块的测试方法】http://www.znmcu.cn/znx_51_alltest_fangfa.html
SHELL平台测试命令:
演示效果:


举报

于振南

2016-6-17 14:21:36
测试板上的5个按键(逐一测试各个按键)
本文出处:http://www.znmcu.cn/znx_51_alltest_shell_key.html
这里振南使用SHELL命令系统对ZN-X上的5个按键进行测试。
说明:这里对振南ZN-X上的51个按键进行测试。
具体的测试方法请详见《整板测试【各个功能模块的测试方法】http://www.znmcu.cn/znx_51_alltest_fangfa.html
SHELL平台测试命令:


举报

koenlee93

2016-8-6 21:00:24
于老师,这个超级终端软件可以发下么
举报

更多回帖

发帖
×
20
完善资料,
赚取积分