如何使用W7100A模拟I2C总线?

Home / 博客 / 如何使用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的产品和技术,请随时与我们联系。