2012年8月13日星期一

如何使用W7100A類比I2C匯流排

1.简介
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。这篇文档主要介绍如何使用iMCU7100EVB模拟I2C总线。在本文档中还用到了EEPROM 24C02。
注意:本文是基于100引脚封装的W7100A芯片,由于W7100A 64引脚封装的GPIO口的数目有限,所以这篇应用手册可能不会正确地用于64引脚封装的W7100A芯片。详细信息,请查阅W7100A 64引脚封装的GPIO引脚介绍。
2.I2C
I2C总线的特点如下:
-两路总线线路:串行数据线(SDA)和串行时钟线(SCL)
-可使用标准模式(100kbit/s),低速模式(10kbit/s)和高速模式
3.硬件配置
这一章将介绍EVB和EEPRORM(24C02)之间的电路。
(更多关于MCU封装信息:32引脚(8pin*4) 2.54mm间距,请参考附录)
<注意> 由于本文使用24C02 EEPROM,如果用户使用的是不同的芯片,需要修改相关电路。
在本例中,EEPROM地址(A0~A2)被设置为‘000’,同时WP处于无效状态。iMCU7100EVB的P3_0和P3_1口分别设置为SDA和SCL。这些端口内部已经具有上拉寄存器,因此不需要外部上拉。
4.软件
4.1 初始化
4.2 读字节(Byte READ)
如图2所示为I2C总线的读(READ)时序。设备地址一共有8位,高4位为0x0A。在低4位中,其中3位用于地址线,余下的一位为写(WRITE)(0)/读(READ)(1)标志位。
I2C总线的读(READ)函数如下程序3所示。第一个eep_writedata是虚拟的(DUMY)。因为EEPROM的地址为‘000’,所以第二个eep_wirtedata的设备地址也为‘0000’。关于此单元函数的详细信息,请参考I2C相关代码。
4.3 写字节(Byte Write)
如图3所示为I2C总线的写(WRITE)时序。为了能够写入设备地址,将W位置为0,程序4给出了如何在I2C-bus使用写(WRITE)程序的代码。
5.模拟I2C总线读/写(READ/WRITE)演示
终端机设置
设置超级终端机(Hyper terminal)来演示和执行I2C总线的读/写功能,具体过程如下:
6.附录 iMCU7100开发板布局
这就是本文的全部内容,谢谢大家的访问浏览,如果想更深刻的了解WIZnet的产品和技术,请随时与我们联系。

想了解更多,请登录我们的网站:http://www.iwiznet.cn/
 或者来电:86-10-84539974(转166
官方博客:blog.iwiznet.cn
公共邮箱:wiznetbj@wiznettechnology.com

没有评论:

发表评论