您好!欢迎来到信盈达产学合作协同育人平台|校企合作|嵌入式培训|解决方案|

登录 注册 微信快速登录

扫一扫看效果 关闭

好文章,欢迎分享给朋友

德馨文学

05-24 16:31    浏览1394

1章 IIC

1.1 IIC介绍

IIC:Inter-Integrated Circuit(集成电路总线),IIC通信协议是飞利浦公司于80年代初发明的一种运用于芯片与芯片之间进行信息交换的串行、同步、半双工通信协议

应用场合:芯片与芯片之间。板间通信。共模通信。抗干扰能力很差。

//:C语言、C语言学习、C语言培训、MCU学习、PCB教程、PCB学习、嵌入式学习、嵌入式培训、嵌入式教程、嵌入式前景、嵌入式Linux、Linux开发、Linux系统、python、python教程、python学习、Python编程、Python待遇、物联网开发、物联网培训、物联网智能控制、物联网学习、信盈达培训、信盈达嵌入式 ://

1.2 IIC总线

1) IIC协议有两根总线:时钟总线SCK,数据总线SDA。

2) 这两根总线都需要接上拉电阻。

3) 所有IIC设备都接在该总线上:一个主机和多个从机。

4) IIC总线空闲为高电平。

5) 时钟总线SCK由主机控制。

1.3 IIC协议

IIC起始条件:表示IIC通信开始,在主机发出起始条件之后,所有的从机都会准备接收设备地址。主机发出的设备地址和从机自身的设备地址相同时,从机就会发送应答。如果不相同,从机静默。

IIC结束条件:表示IIC通信结束,在主机发出结束条件之后,所有的从机都会进入空闲状态。

IIC位传输:一次传输8个位的数据,高位在前,一个时钟发送一个位的数据。

IIC应答:每次收到数据的设备都会应答。

1.3.1 IIC基本信号

IIC起始信号:在SCK高电平期间,SDA的下降沿都是起始信号。

IIC结束信号:在SCK高电平期间,SDA的上升沿都是结束信号。

IIC应答信号:在第9个时钟的高电平期间SDA为低电平表示应答;反之则为非应答

IIC数据发送:一个时钟准备一个位的数据(拉高或者拉低SDA),在时钟的低电平期间准备数据。高位在前。

IIC数据接收:一个时钟接收一个位的数据,在时钟的高电平期间采样数据。高位在前。

注意:在数据发送期间,SCK为高电平的时候,SDA绝对不允许发生改变。所以IIC数据发送时,只能在SCK为低电平期间准备数据。

IIC的时钟:可以有以下两种:两种都可以使用

SCK_L();

//延时

SCK_H();

//延时

SCK_H();

//延时

SCK_L();

//延时

1.4 IO口双向切换

1)IO口配置为推挽输出,能否正常使用按键检测。

2)漏极输出:开漏输出

3)开漏输出模式下,IO输出低电平,输入数据寄存器不能正常工作。。

4)开漏输出模式下,IO输出高电平(输出部分高阻态),输入数据寄存器能正常工作。

开漏输出模式下,IO口需要输出高低电平:直接控制ODR寄存器。

漏极输出需要切换为“输入模式(输出部分高阻态)”:IO输出高电平。

1.5 IIC通信速度

IIC属于一种低速通信协议,IIC的常见通信速度:100KHz,400KHz,3.4MHz。

假如我们需要100KHz的IIC,一个时钟周期10us.

SCK_L();

delay_us(5);

SCK_H();

delay_us(5);

假如我们需要400KHz的IIC,一个时钟周期2.5us.

SCK_L();

delay_us(1);

SCK_H();

delay_us(1);

IIC协议要求是比较宽松的。不太严格。比如某器件要求100KHz的IIC速度。

50KHz~100KHz都不会出错。

1.6 模拟IIC

1.6.1 起始信号

tSU:STA:起始信号建立时间,起始信号产生前,总线空闲的时间,最小4.7us。

tHD:STA:起始信号保持时间,产生起始信号之后,总线保持不变的时间,最小4us

1.6.2 结束信号

tSU:STO:停止信号建立时间,产生停止信号之前,SCK为高,SDA为低的保持时间,最小4us。

tBUF:   新的发送前,总线空闲时间,最小4.7us。

1.6.3 主机发送数据从机应答

主机准备数据的时间:在SCK为低电平期间

主机读取应答的时间:在9个时钟周期的高电平期间采样SDA。低电平表示应答,高电平表示非应答。

1.6.4 主机接收数据主机应答

主机采样数据的时间:在SCK为高电平期间

主机准备应答的时间:在9个时钟周期的低电平期间准备应答。低电平表示应答,高电平表示非应答。

1.7 作业

1) 复习IIC协议规范

2) 自己动手完成IIC的4个基本信号编程,替换法验证。

3) 预习AT24C02,了解的存储空间大小,特性,了解从设备地址。

4) 从设备地址 = 7位硬件地址+读写方向位

信盈达专注嵌入式教育10多年,在嵌入式软、硬件培训教育方面有着丰厚的资源和经验积累。顺应市场需求,开设有嵌入式培训、物联网培训、ARM培训、Linux培训、人工智能Python培训、Java培训、Android培训、单片机培训、硬件培训、PCB培训、电子培训、FPGA培训等培训课程,如果你想成为一名受人尊敬的it开发工程师,来信盈达参加it培训课程,未来的你一定会感激现在的选择!

评论0 0
评论
内容加载中……,请稍候!

手指长按二维码,快速关注

给TA留言
留言
返回
评论