您好,欢迎来到尚佳旅游分享网。
搜索
您的当前位置:首页利用MAX II CPLD的I2C总线接口实现GPIO 引脚扩展

利用MAX II CPLD的I2C总线接口实现GPIO 引脚扩展

来源:尚佳旅游分享网
 利用MAX II CPLD的I2C总线接

口实现GPIO引脚扩展

2007年12月,1.0版

应用笔记494

引言

本设计实例展示了Altera® MAX® II CPLD通过工业标准I2C总线提供通用I/O (GPIO) 引脚扩展的能力。为了减小封装尺寸和引脚数量,很多微处理器系统了通用I/O的数量。然而,如果系统有I2C接口,那么本设计可以通过I2C总线来加入更多的 GPIO引脚。借助于MAXII CPLD,增加的这些GPIO引脚要比微处理器的I/O引脚功耗低。在某些情况下,可能需要通过较长的PCB走线来访问系统中的GPIO引脚(例如蜂窝电话中不同部分的连接)。I2C接口是2线系统,本设计通过普通的2线走线,在远端提供多个输入和输出引脚。这提高了设计灵活性以及整个系统的物理紧凑性,还减小了封装尺寸和引脚数量。可以通过这些通用输出引脚来连接并控制风扇控制器、LED状态显示和状态指示器等设备。同样的,复位引脚和按钮开关等设备可以直接连接到CPLD的通用输入上,实现各种应用。

GPIO引脚扩展和I2C

图1.通过I2C总线实现GPIO引脚扩展温度传感器电池量表I2C微处理器主机SCLSDAMAX IIPC至GPIO接口8位GPIO输入8位GPIO输出Altera公司AN-494-1.0

1

Altera Confidential - Internal Use Only利用MAX II CPLD的I2C总线接口实现GPIO引脚扩展

GPIO引脚扩展的I2C接口

MAXII CPLD用作I2C总线从机,在其I2C接口上有两个引脚:I2C时钟

作为 I2C主机的主系统和MAXII(用作 I2C从机)进SCL和I2C 数据线SDA。

行通信。CPLD为主系统提供8个通用输入端口和8个通用输出端口。GPIO引脚并行接收 I2C总线串行发送的数据。这样,可以同时读写所有8个通用I/O。

I2C接口

对于I2C接口,CPLD(I2C从机)提供一个符合常用I2C 协议的内置7位地址。主机发送起始信号,然后是7位地址和一个R/W位。 当I2C总线上广播的地址和从机设备的地址匹配时,根据主机发送的读或者写信号,设备发送一个ACK (应答)信号, 然后是数据。随后是另一个ACK信号。以此不断进行数据交换,直到主机发送Stop (P)信号。

表1.I2C接口引脚说明信号

SCLSDA

目的

I2C时钟 I2C串行数据

方向

输出双向

图2.I2C信号格式SADDRESSR/WACKDATAACKP主机写操作从机写操作S = Start (SCLK高电平,SDA高电平至低电平转换)R/W = Read/Write (1为读操作,0为写操作)ACK = Acknowledgement (SDA被接收器置为低电平)P = Stop (SCLK高电平,SDA低电平至高电平转换)默认从机地址 = 0000000 (00h)2

Altera公司

设计实现

GPIO接口

当主机发出写命令(R/W = 0)时,I2C 总线接收到的数据被用于更新通用输出引脚,直到接收到停止或者重新启动命令。同样的,当I2C 主机发出读命令(R/W = 1)时,在ACK位对通用输入引脚上的数据进行采样,并通过I2C 总线串行发送。一直持续这一过程,直到主机发出停止或者重新启动命令。

表2.GPIO引脚说明信号

8位输入8位输出

目的

通用通用

方向

输入输出

图3.GPIO引脚扩展演示电路SCL8路 DIP开关阵列, 仿真8个通用输入比特MAX IIEPM240GSDA8个LED阵列,用于显示 8个通用输出比特设计实现

该设计实例可以采用EPM240G或者其他MAX II CPLD来实现。实现过程涉及到使用设计实例源代码, 为MAXII CPLD GPIO分配I2C 总线和GPIO引脚扩展输入和输出。在MDN-B2演示板上采用I2C仿真器演示了GPIO引脚扩展。使用PC并口来生成该仿真器,通过接口硬件来生成I2C兼容二线总线。Dallas半导体公司的Maxim应用笔记AN3230详细说明了怎样建立 I2C环境,可以从下面的链接下载该应用笔记:

Altera公司

3

Altera Confidential - Internal Use Only利用MAX II CPLD的I2C总线接口实现GPIO引脚扩展

4

www.maxim-ic.com/appnotes.cfm/an_pk/3230。

除了能够从这一URL下载免费的软件外,还可以从下面的链接下载并口I2C设置的相应免费软件程序:

http://files.dalsemi.com/system_extension/AppNotes/AN3315/ParDS2W.exe

这一实用程序采用了并口及其硬件和MAX II CPLD进行接口,并提供

I2C 2线系统需要的SDA和SCL连接。

完成后,该设计使MDN-B2演示板(通过DIP开关设置)的输入能够到达I2C主机。 同样,I2C主机发送的数据出现在MAXII CPLD的 GPIO输出端口 (连接到演示板的LED)上。对于该演示,I2C主机是运行并口I2C 软件 PC的用户接口。

下面详细介绍了怎样在MDN-B2演示板上实现本设计实例。 表3列出了本设计实例的EPM240G引脚分配。

表3.MDN-B2演示板设计实例EPM240G引脚分配

信号

引脚

信号

引脚

SCLK

引脚39SDA

引脚40GPIO_output[0]引脚69GPIO_output[1]引脚70GPIO_output[2]引脚71GPIO_output[3]引脚72GPIO_output[4]引脚73GPIO_output[5]引脚74GPIO_output[6]引脚75GPIO_output[7]引脚76GPIO_input[0]引脚55GPIO_input[1]引脚56GPIO_input[2]引脚57GPIO_input[3]引脚58GPIO_input[4]引脚61GPIO_input[5]引脚66GPIO_input[6]

引脚67

GPIO_input[7]

引脚68

在Quartus® II 软件中, 把未使用的引脚分配为input-tristated。您还必须使能SCLK和SDA引脚上的Auto Open-Drain设置。对此,在

Assignments菜单中,单击Settings,然后选择Analysis and Synthesis Settings,使能Auto Open-Drain设置。设置完成后是进行编译。

设计说明

按照以下步骤在MDN-B2演示板上演示本设计:

Altera公司

设计实现

Altera公司1.使用滑动开关SW1打开演示板电源。

2.

通过演示板上JTAG插头JP5和普通编程电缆(ByteBlaster™II或者USB-Blaster™),把设计下载到MAXII CPLD中。

3.

在编程启动前和启动过程中,保持演示板上SW4的按下状态不变。编程完成后,关断电源,拔下JTAG连接器。4.

按照以下步骤在PC上建立并口驱动I2C环境:a.

下载Maxim并口实用程序等软件工具实现和I2C协议的从机进行通信。安装并口软件。 (这一实例使用了ParDS2W.exe程序)b.

对于这一并口程序,您必须安装并口驱动程序来使能对Windows XP或者Windows 2000并口的访问。您可以从Direct-IO下载该驱动程序: www.direct-io.com/Direct-IO/directio.exec.

安装完成后,必须配置Direct-IO程序。打开Windows控制面板,单击Direct IO图标。输入并口的起始和结束地址,这通常是378至37F;但是要查看下面的设置来确定PC的并口地址:Control Panel/System/Hardware/Device

Manager/Ports/ECP Printer port (LPT)/Resources。d.启动PC时,在BIOS设置中把并口配置为ECP。

e.

然后,在Direct IO控制面板中选择Security 标签,浏览

ParDS2W.exe 程序路径。单击Open,然后单击Add,加入程序。在Allowed Processes域中出现该程序的路径。单击OK。 f.

安装MDN-B2演示板提供的并口I2C软件狗。如果需要,使用延长线延长并口连接,以靠近演示板。

g.

连接I2C并口软件狗的4针插座和演示板的I2C插头(JP3),插座的红色标记对上JP3插头的引脚1。

h.

打开ParDS2W程序,选择PC合适的并口地址 (配置Direct IO时可以看到),把2-Wire Device Address设置为00h。

i.

最后,在Test Circuit标签下测试 I2C设置,观察在Status窗口中是否出现Test PASS消息。如果出现,则表明现在建立了I2C环境。

5.通过并口实用程序,利用2线功能,进行I2C读写操作。

5

利用MAX II CPLD的I2C总线接口实现GPIO引脚扩展

源代码

结论

其他资源

文档版本历史

6

6.

进行I2C写操作时,单击Start,然后单击Write Byte。在靠近Write Data的区域中键入一个十六进制字节,单击Write Data。观察8个红色LED上相应的数值。每次写操作后,单击Stop。

7.

同样的,单击Start,然后单击Read Byte,进行读操作。Read窗口显示演示板上SW5 开关的设置。 每次读操作后,单击Stop。

本应用笔记所介绍的设计实例采用了Verilog HDL来实现,成功地运行在MDN-B2演示板上。下面的链接提供源代码、测试台文件以及完整的QuartusII工程:

www.altera.com/literature/an/an494.zip

正如本设计实例所示,MAX II CPLD是实现I2C等工业标准接口非常好的选择。其低功耗以及易于上电特性及其内部振荡器功能使其成为需要I2C接口来提供GPIO引脚扩展等应用理想的可编程逻辑器件选择。■

MAX II CPLD主页:

www.altera.com/products/devices/cpld/max2/mx2-index.jsp

MAX II器件资料:

www.altera.com/literature/lit-max2.jsp

■MAX II关断设计:

www.altera.com/support/examples/max/exm-power-down.html

MAX II应用笔记:

AN 422:利用MAX II CPLD实现便携式系统的功耗管理AN 428:MAX II CPLD设计指南

表4列出了本应用笔记的版本历史。

表4.文档版本历史日期和文档版本

进行的改动

对改动的总结

2007年12月,1.0版

初次发布

Altera公司

利用MAX II CPLD的I2C总线接口实现GPIO引脚扩展

101 Innovation DriveSan Jose, CA 95134www.altera.comTechnical Support:

www.altera.com/support/Literature Services:literature@altera.com

版权© 2007 Altera公司。保留所有版权。Altera、可编程解决方案公司、程式化Altera标识、专用器件名称和所有其他专有商标或者服务标记,除非特别声明,均为Altera公司在美国和其他国家的商标和服务标记。所有其他产品或者服务名称的所有权属于其各自持有人。Altera产品受美国和其他国家多种专利、未决应用、模板著作权和版权的保护。Altera保证当前规范下的半导体产

但是保留对产品和服务在没有事先通知时的升品性能与Altera标准质保一致,

级变更权利。除非与Altera公司的书面条款完全一致,否则Altera不承担由此处所述信息、产品或者服务导致的责任。Altera建议客户在决定购买产品或者服务,以及确信任何公开信息之前,阅读Altera最新版的器件规范说明。

7

Altera公司

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务