Xilinx社区
首页 > Steve专栏 > Adam Taylor玩转Microzed系列第81部分:简单通信接口
Steve专栏
Adam Taylor玩转Microzed系列第81部分:简单通信接口
来源:  时间:2015-07-20  浏览量:14586

  By Adam Taylor

  到目前为止的文章中,我们已经研究了MicroZed开发板上使用以太网的数据传输问题。我们还没有涉及片上外设通信的问题:实时时钟,非易失内存以及独特的传感器。这些通信涉及到I2C或者SPI总线。下面我们就来看看两者:

  SPI(串行外设接口)是一个原先由摩托罗拉半导体开发的串行、4线、全双工接口。后来它发展成为一个工业标准,并且在模块间通信中广泛使用——比如在外设和处理器或有相同模块的FPGA间传输数据中。SPI通信经常用在半导体内存、ADC、CODEC、MMC和SD内存卡上。SPI系统架构包括一个单一主机或多主机和一个或多个从机。

  I2C(内部集成电路,通常发音为“I方C”)接口是一个多主机、2线的串行总线,由飞利浦公司于20世纪80年代开发,目的是开发出和SPI有类似作用的总线。由于2线的特征,其只有半双工模式。它的优势在于:你减少了2个管脚——在20世纪80年代,40管脚的DIP封装就被认为“很大”了,在当时减少2个管脚起到的作用比如今可大的多了。I2C标准得以延续至今源于它的经济和实用性。

  Zynq SoC的PS(处理器系统)结合了两个I2C和两个SPI外设接口,其可以和MIO或者Zynq PL(可编程逻辑)上的EMIO接口,如下图所示:

  驱动和配置OLED显示模块是在ZedBoard上演示SPI使用的最佳范例。然而MicroZed板上并没有OLED模块,我们可以方便的使用一个Digilent OLED PMOD。我们所要做的仅仅是映射I/O管脚即可。

  MicroZed板通过SPI总线和OLED模块通信。然而它还需要一些其它的控制信号来正确地和设备接口:一个电源使能、OLED使能和一个数据/命令标志线。通信协议如下图所示:

  正确的驱动OLED需要以下管脚:

名称

ZedBoard板管脚

功能

VDD

U12

控制器PSU使能

VBAT

U11

OLED PSU使能

RES

U9

低电平复位

D/C

U10

数据/控制(低电平)

SCK

AB12

SPI 时钟

SDO

AA12

SPI 数据

  为了实现OLED显示,我实例化了一个基于ZedBoard板的Vivado设计,使能SPI0,并且将其连接到EMIO,而不是GPIO。我也定义了四个GPIO EMIO管脚用作OLED的保留接口。

  在下图中可以看到这个:

  在我们创建系统、输出到硬件、开发软件来控制我们的SPI应用之前,我们必须定义SPI时钟频率。该任务被Vivado和SDK分割了,因此我需要解释必要的东西:

  从模块图中打开Zynq处理器系统自定义界面,选择“时钟配置”。在基本时钟标签页,处于IO外设之下,你会看到SPI时钟。该选项使你拥有选择锁相环(本例中为IO PLL)、所需频率和真实频率的能力。在我的系统中,所需频率和真实频率分别是166MHz和160MHz。点击“高级时钟”显示更多信息。

  本例中为了获得一个1600MHz的PLL频率,IO锁相环将33.333MHz的输入时钟频率(显示在图中最上面)倍频48倍,之后进行10分频——如上表SPI外设时钟行中的“First divisor”栏所示——来产生一个160MHz的SPI时钟。选择“重载”来更改这些数字。然而进行该操作的时候必须小心。结合波特率分频器,我们在SPI配置寄存器中设置它,我们可以设置最适合目标外设的SPI频率。以OLED为例,我们需要操作在3MHz以下,因此我们使用一个最小为64的分频器来把160MHz降到3MHz。

  本系列的下一期博客中将会研究相关的软件开发。

  现在,你可以方便地获取第一Adam Taylor MicroZed开发板编年史Kindle电子书版本了,很实惠仅需7.5美元。

  原文链接:

  http://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-ish-...

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

中国授权培训机构

北京 电话:(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