NXP RT1064学习笔记(七)— I2C EEPROM

一、I2C协议

I2C物理层两条线,SCL和SDA。

SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道。

SDA(serial data):数据线,通信数据都通过SDA线传输。

I2C通信可以一对一(一个主设备对1个从设备),也可以一对多(一个主设备对多个从设备)。

一个Master可以对应多个Slave。

IIC主从结构

1.1 数据传输格式

I2C数据传输格式

其中 S 表示由主机的 I 2 C 接口产生的传输起始信号 (S) ,这时连接到 I 2 C 总线上的所有从机都会
接收到这个信号。
起始信号产生后,所有从机就开始等待主机紧接下来广播的从机地址信号 (SLAVE_ADDRESS)。每个设备的地址都是唯一的,当主机广播的地址与某个设备地址相同时,这个设备就被选中了,没被选中的设备将会忽略之后的数据信号。
在地址位之后,是传输方向的选择位,该位为 0 时,表示后面的数据传输方向是由主机传输至从
机,即主机向从机写数据。该位为 1 时,则相反,即主机由从机读数据。
从机接收到匹配的地址后,主机或从机会返回一个应答 (ACK) 或非应答 (NACK) 信号,只有接收
到应答信号后,主机才能继续发送或接收数据。
接下来为传输的数据 (DATA) ,数据包的大小为 8 位,每发送或接收完一个字节数据,都 要等待应答信号 (ACK) ,重复这个过程,可以向从机传输 N 个数据,这个 N 没有大小限制。

当数据传输结束时,发送一个停止传输信号 (P),表示不再传输数据。

 1.2 信号解析

  • 起始信号[Start]:在SCL保持高电平时,SDA下降沿。
  •  读写位:【0写1读】
  •  数据位:SCL低电平时,SDA可变化;SCL高电平,SDA不变
  •  终止信号:在SCL高电平时,SDA上升沿。
  •  回应信号[ACK]:SDA低电平,低电平

i2c信号解析

 二、RT1064 I2C

我们可以用两个GPIO引脚,分别用作SCL和SDA,模拟I2C的协议,这被称之为“软件模拟协议”方式。

RT1064提供了LPI2C(Low power I2C,低功耗 I2C)片上外设专门负责实现 I2C 通讯协议,这种由硬件外设处理 I2C 协议的方式被称之为“硬件协议”方式。这种方式只需要配置好外设,软件设计更加的简单。

RT1064 I2C的框架图:

RT1064提供了4个I2C。官方已经提供了封装好的库函数,也有例程,其中很多细节不需要

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值