首页 > 嵌入式硬件 > 嵌入式开发

 

本文引用地址: http://embed.21ic.com/hardware/development/201801/50316.html

 

口袋式高速逻辑分析仪

当新入手一款Zynq开发板后,一般新手在串口输出一个hello world,实现功能就可以了。而对于一些对于Zynq有一定了解的老手而言,往往则会去尝试了解板上硬件的特性和时序,探究hello world输出背后整个系统是如何运作的。

事实上,对于一款新的Zynq板卡来说,在启动序列中QSPI传输的速度不是一个明显的规范,本文教程就将教你如何使用Digital Discovery口袋式高速逻辑分析仪来快速分析启动序列并确定时序。

01

硬件清单

 

1.jpg

Digital Discovery口袋式高速逻辑分析仪

带有flash的Zynq开发板(本文中使用Digilent Zybo作为被测对象)

SOIC测试夹(若有最佳)

杜邦线

注:事实上,除了Digital Discovery之外,当然你也可以用经典的 Digilent Analog Discovery 2 来操作,后者同样带有逻辑分析仪功能。这里更为推荐使用Digital Discovery,有两个原因:一是由于QSPI时钟频率很高,超过100MHz,因此所选的仪器需要具有足够的采样率。二是Digital Discovery具有512 MB的DDR,可以完成大规模数据存储的要求。

02

连接Digital Discovery

 

连接关系如下:

QSPI 信号QSPI/测试夹引脚Digital Discovery引脚

cs7DIO0

clk16DIO1

d015DIO2

d18DIO3

d29DIO4

d31DIO5

gnd10Gnd

在使用如上图所示的杜邦线进行连接时,要注意保证信号完整性,避免串扰。在某些时候,需要将某个信号和地线进行缠绕,如图中的蓝色cs信号就使用了接了地的黑线进行了缠绕。

03

QSPI脚本

为了将QSPI的信号转换成数据,在逻辑分析仪的WaveForm软件中增添了一个“定制”通道,并使用js语言编写了一个“解释器”。代码如下:

// rgData: input, raw digital sample array// rgValue: output, decoded data array// rgFlag: output, decoded flag arrayvar c = rgData.length // c = number of raw samplesvar pClock = false; // previous cock signal levelvar iStart = 0; // used to keep track on word start indexvar cByte = 0; // byte count per transmissionvar cBits = 0; // bit countervar bValue = 0; // value variablevar fCmd = true;for(var i = 0; i < c; i++){ // for each sample var s = rgData[i]; // current sample var fSelect = 1&(s>>0); // pin0 is the select signal var fClock = 1&(s>>1); // pin1 is the clock signal var fData = 1&(s>>2); // pin2 is the data signal var fData4 = 0xF&(s>>2); // DIN 2-5 DQ 0-3 if(fSelect != 0){ // select active low // while select inactive reset our counters/variables iStart = i+1; // select might become active with next sample cByte = 0; cBits = 0; bValue = 0; pClock = false; fCmd = true; continue; } if(pClock == 0 && fClock != 0){ // sample on clock rising edge bValue <<= 4; // serial data bit, MSBit first bValue |= fData4; cBits++; if(cBits==2){ // when got the 8th bit of the word store it cByte++; // store rgValue/Flag from word start index to current sample position for(var j = iStart; j < i; j++){ // Flag change will be visible on plot even when data remains constant. // This is useful in case we get more consecutive equal values. rgFlag[j] = cByte; rgValue[j] = bValue; } iStart = i+1; // next word might start after this sample cBits = 0; // reset bit count for the next byte bValue = 0; // reset value variable } } pClock = fClock; // previous clock level}

除了使用定制的“解释器”外,我们还可以使用标准的SPI来分析那些没有通过QSPI发送到指令,例如第一条读取指令。

04

触发与采样

虽然QSPI的最高时钟频率是100MHz,但在启动过程中的最高频率仅为25MHz。此外,整个启动过程大概需要700ms。因此对于同时满足大量样本和高速采样率,这也正是选择Digital Discovery的原因——200MHz的采样速度可以在1.3s内采样268M的样本数据。

采样本身是十分浪费资源的,这个过程需要使用16GB的电脑内存,并且需要很长的时间来完成数据的处理。

触发设置在CS信号的下降沿。

下图是Waveforms中整个QSPI的传输过程。注意图中采样信号的短暂中断,从这个时候起时钟频率由5.4MHz变为了25MHz。

 

05

启动传输

想要明白所传输的数据含义需要阅读两个文档,一是Zynq技术参考手册(www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf),另一个是flash memory的数据手册(www.cypress.com/file/177966/download)。

Zynq与flash之间使用SPI协议进行通信,Zynq发送通过D0向flash发送指令。所发送的第一条指令是0x03 0x00 0x00 0x20,含义是SPI读,读起始地址是0x20。Flash通过D1接收0x66 0x55 0x99 0xaa。Flash读指令的含义在flash memeory的第85页做了解释。

 

换一批

延伸阅读

[破谣言] 板卡业内人士看法 GPU计算AMD无所作为

板卡业内人士看法 GPU计算AMD无所作为

NVIDIA的GTC大会已经闭幕,但是后续发酵还没有结束。VR-Zone在“新兴公司会议”(GTC大会上的一个专题讨论会)上跟一些公司做了交流,他们谈到了NVIDIA和AMD在GPU计算上的一些看法,来看看业内人士是......

关键字:GPU AMD 板卡 计算

[行业资讯] Xilinx宣布开放SDSoC开发环境 将Zynq SoC用户扩展至广大的系统和软件工程师社群

Xilinx宣布开放SDSoC开发环境 将Zynq SoC用户扩展至广大的系统和软件工程师社群

21ic讯 All Programmable技术和器件的全球领先企业赛灵思公司(Xilinx, Inc. (NASDAQ:XLNX))今天宣布推出正式版(Public Access Release)SDSoC&trade;开发环境......

关键字:Xilinx SDSoC Zynq SoC

[新鲜事] NASA:太阳系究竟有没有外星生命,人类将在10年内找出答案

NASA:太阳系究竟有没有外星生命,人类将在10年内找出答案

美国NASA行星科学部门主任James Green最新透露了寻找外星的四个热点区域,并认为在未来10年内,人类便能够于地外文明建立联系。......

关键字:NASA 人类 地外文明 外星生命

[真心话] MySQL 创始人:写代码比打游戏还爽,程序员应该多泡开源社区

MySQL 创始人:写代码比打游戏还爽,程序员应该多泡开源社区

Monty是一位编程天才。19岁的时候,他从赫尔辛基理工大学辍学开始全职工作,因为大学已经没有什么东西可以教他了。在独自一人写完除了一个库以外的全部代码之后,33岁时,他发布了MySQL,后来后者成为了全世界最流行的开源数据库。55岁时,他......

关键字:MySQL 程序员 开源社区

[真心话] 电子工程师的道路上,如何解决知识遗忘率问题?

电子工程师的道路上,如何解决知识遗忘率问题?

我们都知道,作为电子工程师,特别是电路工程师,如Analog IC, Digital IC Engineer,需要了解到电路、集成电路,数字电路、模拟电路、软件编程,射频电路等各方面的知识。......

关键字:电子工程师 知识遗忘率

[新鲜事] 一个电子工程师去世后,和上帝喝茶...

一个电子工程师去世后,和上帝喝茶...

一个电子工程师去世后,和上帝喝茶。边喝边聊,他们的谈话开始了!上帝问:“听说电子这个职业不错嘛,高垄断高技术高门槛,你还这么年轻,怎么就死了?”......

关键字:电子工程师 上帝

[新鲜事] 郑州84岁老人编写“地铁问路”软件 仅用3天

郑州84岁老人编写“地铁问路”软件 仅用3天

郑州84岁老人冯云怀,是原河南省测绘局总工程师,退休后,便买来书籍自学了一些编程软件以及办公软件。他还曾设计出公交线路查询系统,利用卫星截图拼成绿博园活地图,合作开发出郑州城区路名查询系统。......

关键字:软件编程 84岁老人 地铁问路

[破谣言] 让我来告诉你,为什么AI不会产生“意识”

让我来告诉你,为什么AI不会产生“意识”

拥有自我意识和情感的超级人工智能到底会不会出现?说实话,这个话题都烂大街了。科学家、科技大佬、各国政要们争论得头破血流,我们也不可能知道答案。......

关键字:人工智能 意识

[真心话] 李开复谈中美公司的区别,人工智能全面超越美国只需要五年

李开复谈中美公司的区别,人工智能全面超越美国只需要五年

昨日,富士康集团在深圳举办实体经济与数字经济融合发展高峰论坛,并庆祝富士康30周岁生日,创新工场董事长兼CEO李开复在《AI-工业互联网与消费互联网的融合发展》分论坛进行了主题分享。 他首先谈到了中美在人工智......

关键字:李开复 人工智能 AI
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi&#174;和蓝牙&#174;combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14