IIC
IIC读写EEPROM
1、IIC数据起始位与停止位
SCL为高电平时,SDA数据线由高电平转换为低电平为起始信号;
而SDA由低电平转换为高电平,则为停止信号,
2、IIC数据的有效性
每一个时钟周期传输一位数据,并且只有在SCL时钟线为高电平时,数据有效。
在SCL时钟线的低电平处发生数据位的电平跳变,为下一次传输数据做准备。
3、IIC物理层
- IIC有两条总线,一条时钟线SCK,一条数据线SDA。两条总线通过上拉电阻接到电源,默认状态时是高电平。
- 支持多主机多从机的模式,每个设备有一个独立的地址,根据这个地址可以进行设备间的通信
- 当有多个主机同时使用总线的时候,还可以通过仲裁的方式来决定使用总线的优先级,具体是通过线与的逻辑来实现的,即
- 主机A与主机B同时发送数据,发送低电平的一方获得总线的使用权。
- 连接到总线上的IIC的设备数量受到总线电容400PF的限制,根据设备地址位为7位,理论上会有128个设备
4、IIC读写数据过程
5、IIC读写EEPROM
字节写:起始信号,从机地址,R/W,ACK,写入地址,数据,ACK,停止信号
页写:在写入地址处进行连续的写入数据,不需要每次发送写入地址(1页是8个字节,当写入数据的大小超过8字节后会从头开始写入)

当前地址读:EEPROM内部有指针,从当前指针所指的位置读取数据

随机读:起始信号,从机地址,R,ACK,读取地址,起始信号,从机地址,R,ACK,数据,NO-ACK,停止信号
连续读:连续读取数据

IIC与SPI的区别
1、IIC是通过设备地址来寻址,SPI通过SS信号线来寻址,SS置低电平则为开始信号,SS置高电平则为停止信号
SPI
SPI有四根总线,一条片选线,一条时钟线,两条数据线。
片选线:由主机控制,当片选线置低电平时有效
时钟线:由主机产生,作用是为了数据同步
SPI由四种通信模式:CPOL/CPHA
CPOL表示时钟极性,在空闲状态下有高电平和低电平两种模式,0代表低电平,1代表高电平
CPHA表示时钟相位,在奇数边沿采用还是在偶数边沿采样,0代表奇数,1代表偶数
常用模式为11/00
SPI外设:可以实现全线全双工,双线单向,单线模式;其中双线模式可以使传输速率加倍
IIC结构体:时钟频率、地址模式、占空比、主机地址
IIC写入数据函数
函数参数:传入要写入的缓存区指针,写地址,写入多少字节
要考虑换页的操作:一页是8个字节,一个32页,如果是从起始位置开始写入数据,那么要计算两个数据,一个是写满多少页,一个是余下多少个字节。可以用一共写入数据的大小
比如:写入15个字节,15/8=1,15%8=7,也就是说要写满1页,然后再写7个字节。
如果不是起始位置写入数据,

浙公网安备 33010602011771号