IIC:Inter-Intergrated Circuit
物理层:
SCL:
SDA:
高阻态:
标准模式:100kbit/s
快速模式:400kbit/s
高速模式:3.4Mbit/s
协议层:
主机写数据到从机:

主机由从机读取数据

Ⅰ、起始信号:当SCL线为高电平时,SDA线从高电平向低电平切换.
停止信号:当SCL线为高电平时,SDA线从低电平向高电平切换.
Ⅱ、SCL高电平时SDA的数据有效,SCL低电平时SDA的数据无效,此时SDA数据变换
Ⅲ、总线上的每个设备都有自己的独立地址,设备地址可以为7位或10位,紧跟设备地址的一个数据位R/W用来表示数据的传输方向.1写0读.
Ⅳ、在第9个时钟时,数据发送端会释放SDA的控制权,由数据接收端控制SDA,若SDA为高电平,表示非应答,低电平,表示应答.

1.通讯引脚
SMBA协议
2.时钟控制逻辑
3.数据控制逻辑
数据寄存器(DR)、地址寄存器(OAR)、PEC寄存器(数据校验的)
4.整体控制逻辑
EV5:SB = 1(Start bit flag)
EV: ADDR = 1(Address sent flag)
EV7:RXNE = 1:RXNE = 1(Data register empty not flag(Receiver)flag)
EV7_1: (读DR寄存器清除该事件,设置ACK=0和STOP请求)
EV8:TXE = 1:(Data register empty flag(Transmitter))
EV8_2:TxE = 1,BTF =1(字节发送结束flag)
初始化IIC相关的GPIO
配置IIC外设的工作模式
编写IIC写入EEPROM的Byte write函数
编写IIC读取EEPROM的RANDOM Read函数
使用read函数和write函数进行读写校验
编写page write 和 seq read函数
网友评论