I2C协议_EEPROM

I2C

**I2C 通讯协议(Inter-Integrated Circuit**)是由 Philips 公司开发的一种简单、双向二线制

同步串行总线, 只需要两根线即可在连接于总线上的器件之间传送信息。

I2C 通讯协议和通信接口在很多工程中有广泛的应用,如数据采集领域的串行 AD, 图

像处理领域的摄像头配置,工业控制领域的 X 射线管配置等等。除此之外,由于 I2C 协议
占用引脚特别少, 硬件实现简单, 可扩展型强, 现在被广泛地使用在系统内多个集成电路
(IC)间的通讯。

在这里插入图片描述
I2C总线可以进行多个主设备与多从设备通信!
在这里插入图片描述

  1. 串口时钟信号 SCL 和串行数据信号 SDA 均保持高电平,此时无 I2C 设备工作;
  2. I2C 总线处于“空闲状态”时, SCL依旧保持高电平时, SDA 出现由高电平转为低电平的下降沿,产生一个起始信号,此时与总线相连的所有 I2C设备在检测到起始信号后,均跳出空闲状态,等待控制字节的输入;
  3. 数据读/写状态;
  4. 完成数据读写后,串口时钟 SCL 保持高电平,当串口数据信号 SDA 产生一个由低电平转为高电平的上升沿时, 产生一个停止信号, I2C 总线跳转回“总线空闲状态”。

数据读/写状态

在这里插入图片描述
主机向从机每次只写入一位数据;串行数据线 SDA 中的数据在串行时钟SCL 为低电平时进行数据更新,以保证在 SCL 为高电平时采集到 SDA 数据的稳定状态。当一个完整字节的指令或数据传输完成,从机设备正确接收到指令或数据后,会通过拉低 SDA 为低电平,向主机设备发送单比特的应答信号,表示数据或指令写入成功。

**

注意:每个字节在写入数据的间隔为5ms。

**

I2C单字节数据操作

单字节存储地址:
在这里插入图片描述
双字节存储地址:
在这里插入图片描述
按高位在前低位在后的顺序写入单字节存储地址。

实验目标

	使用写控制按键向 EEPROM 中写入数据 1-10 共 10 字节数据,使用读控制按键读出之前写入到 EEPROM 的数据,并将读出的数据在数码管上显示出来。EEPROM 型号为 24C64 存储容量为 64 Kbit(8Kbyte),需要 13位存储地址才可满足所有存储单元的寻址,存储地址为 2 字节。

在这里插入图片描述
EEPROM 地址位 A0、 A1 接高电平, A2 接地;EEPROM 地址为 7’b1010_011。

实验总体框图

在这里插入图片描述

I2C写入/读入数据 状态转化图

对比上面的单字节写入/读入操作图,可以转化为下图的状态机,了解这个过程,那么I2C就不难设计。
在这里插入图片描述
注意: EEPROM 读写操作的串行时钟 scl 的频率为 250KHz,且只在数据读写操作
时时钟信号才有效,其他时刻 scl 始终保持高电平。若直接使用系统时钟生成串行时钟
scl,计数器要设置较大的位宽,较为麻烦,所以先将系统时钟分频为频率较小的时
钟,在使用新分频的时钟来生成串行时钟 scl。

以上内容借鉴野火开发指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值