IIC学习笔记(1):简介、时序逻辑与基本模式

  1. IIC是一种同步时序通信协议,有一根时钟线SCL与一根数据线SDA,在IIC总线下可以挂载多个设备,IIC设备分为主、从设备,因此在挂载多设备时有单主单从、一主多从、多主多从等种工作状态。

  1. 为避免时序错误等故障可能导致的电源短路,IIC设备的输出为开漏输出,即输出低电平时强下拉,输出高电平时弱上拉或无上拉;同时在总线中添加上拉电阻(4.7KR左右),使总线设备开漏输出时即恢复高电平。

  1. IIC的时序逻辑:IIC主设备拥有对总线的完全控制权,在数据传输开启时,主设备要在总线中提供开启信号:在SCL高电平期间拉低SDA总线,使从设备检测到下降沿;在数据传输结束时,IIC主设备要在总线中提供结束信号:在SCL高电平期间拉高SDA总线,使从设备检测到上升沿。

  1. IIC主设备发送数据(高位先行):SCL低电平期间,主机将数据位依次放到SDA线上,然后释放SCL,从机将在SCL高电平期间读取数据位,在SCL高电平期间,主机的SDA数据不允许发生变化,SCL高电平持续一段时间之后,主机将其拉低,进行下一位数据的发送。重复8次,即发送一个字节。

  1. IIC主设备接受数据(高位先行):SCL低电平期间,从机将数据位依次放到SDA线上,主机释放SCL后,读取SDA的数据,在SCL高电平期间,从机不会改变SDA的电平;主机读取完毕后,拉低SCL,即通知从机进行下一位数据的发送。

  1. 发送应答:主设备在接受完一个字节后(8个字),在下一个时钟发送一位数据,0表示应答,1表示非应答(发送过程和发送一位数据完全相同。),若主机非应答,则从机会释放SDA线,不再进行数据传输。

  1. 接受应答:主设备在发送完一个字节后(8个字),在下一个有效时钟内,若收到从机发送的一位数据0,则表示从机应答,否则从机非应答或无从机。

  1. IIC的时序:分为指定地址写(对于指定设备,在指定地址下写入指定数据);当前地址读(对于指定设备,在当前地址指针指向的位置下,读取从机设备);指定地址读(对于指定设备,在指定地址下,读取从机数据。)

4.1指定地址写:主机在发送起始信号之后,第一个字节为目标从机设备的(7位)地址加一位读写位(0位写,1为读)。一个字节结束后,从机将产生应答信号。后续需要写入的字节由从机决定,芯片手册中会有提及。以MPU6050为例,下一个字节是写入要写入的寄存器地址,在写入寄存器的地址并应答校验后,下一个字节是传输即将写入的数据。

4.2当前地址读:主机在发送起始信号之后,第一个字节为目标从机设备的(7位)地址加一位读写位(0位写,1为读)。一个字节结束后,从机将产生应答信号。之后主机释放SDA线,接收从机的数据。(其中从机发送的数据是当前地址指针指向的地址的数据,读写操作都会使地址指针自增。)

4.3指定地址读:先执行指定地址写的时序:执行起始指令,选择芯片地址与读/写(写),之后重复一次起始指令,执行当前地址读,即可读取到选择的地址的数据。

4.4停止数据传输:在主机读数据模式中,主机需在一个字节传输完成之后,回复应答/非应答以选择是否继续接收数据,若应答,则从机地址自增,主机继续接收下一地址的数据。若非应答,则从机释放SDA线,之后总机发送停止指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值