差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
stm32:i2c [2024/12/23 11:04] – laythy | stm32:i2c [2024/12/23 12:23] (当前版本) – laythy | ||
---|---|---|---|
行 1: | 行 1: | ||
- | I2C硬件:\\ | + | ⓵ -- I2C硬件:\\ |
{{ : | {{ : | ||
{{ : | {{ : | ||
- | **I2C软件(时序基本单元):**\\ | + | I2C地址:\\ |
+ | < | ||
+ | 一般I2C地址高位由厂商控制(固定部分),低位可以由用户引脚来配置(可编程部分)。 | ||
+ | 在AT24C02中,I2C地址的前四位已经固定为1010,而后三位则由A0、A1、A2三个引脚的状态决定,同时还有一位是读/ | ||
+ | |||
+ | 当AT24C02的A0、A1、A2都接低电平时,即A0=0、A1=0、A2=0,那么结合固定的前四位1010,可以得到AT24C02的I2C地址如下: | ||
+ | |||
+ | 写操作时的地址:由于R/ | ||
+ | 读操作时的地址:由于R/ | ||
+ | 因此,把AT24C02的A0、A1、A2都接低电平时,它的I2C写地址为0xA0,读地址为0xA1。</ | ||
+ | |||
+ | **⓶ -- I2C软件(时序基本单元):**\\ | ||
【写在前面】为了学习和基本单元的拼接方便,现规定除了起始和终止条件,所有基本单元的SCL都以低电平开始。实线代表主机控制,虚线代表从机控制。\\ | 【写在前面】为了学习和基本单元的拼接方便,现规定除了起始和终止条件,所有基本单元的SCL都以低电平开始。实线代表主机控制,虚线代表从机控制。\\ | ||
- | **起始:**SCL为高时SDA下降沿。\\ | + | **起始:**SCL为高时SDA下降沿。(在后面“指定地址读”可以看出,起始的本质是切换读写状态)\\ |
**终止:**SCL为高时SDA上升沿。\\ | **终止:**SCL为高时SDA上升沿。\\ | ||
{{ : | {{ : | ||
行 12: | 行 23: | ||
**发送一字节:**全程由从机掌握总线,在SCL低电平时,从机把数据放到SDA上,然后拉高SCL,主机在SCL上升沿读取SDA数据,SCL高电平持续一段时间,然后拉低。重复8次发送一个字节。\\ | **发送一字节:**全程由从机掌握总线,在SCL低电平时,从机把数据放到SDA上,然后拉高SCL,主机在SCL上升沿读取SDA数据,SCL高电平持续一段时间,然后拉低。重复8次发送一个字节。\\ | ||
{{ : | {{ : | ||
+ | **发送应答:**与发送一字节的一位的结构相同(发送一位)。主机收到数据后,发送应答。\\ | ||
+ | **接收应答:**与发送一字节的一位的结构相同(发送一位)。紧跟主机发送数据后,接收应答,判断从机是否应答。\\ | ||
+ | 0为应答,1为非应答。\\ | ||
+ | {{ : | ||
+ | **⓷ -- 拼接6块基本数据单元拼图,组成一帧完整数据帧:**\\ | ||
+ | I2C协议规定,发送的第一字节为硬件地址,而后由芯片厂商自定,一般是寄存器地址或指令控制字。\\ | ||
+ | 下面数据帧的详解看B站江科大stm32入门视频的[10-1]节00: | ||
+ | **指定地址写:**\\ | ||
+ | {{ : | ||
+ | **当前地址读:**\\ | ||
+ | I2C协议规定,一旦起始第一个字节最后一位为读,那么紧跟着下一字节数据就是从机发数据主机接收,没有时间给主机发送“指定地址”的时间。而从机读的数据就是当前地址指针的数据。\\ | ||
+ | 当前地址指针:AT24C02每次上电后初始化为0,之后每一次读或写操作都会+1。\\ | ||
+ | {{ : | ||
+ | **指定地址读:**\\ | ||
+ | 指定地址读是一种复合格式,前半部分为指定地址写,后半部分是当前地址读。下面的(-> | ||
+ | 前半部分依次是:S-> | ||
+ | 执行完前半部分后当前地址指针就会变成其中的ADDR,然后后半部分当前地址读自然就输出指定地址的数据了。\\ | ||
+ | {{ : | ||
+ | 记住,在进行读或写操作后,地址指针会自动+1。也就是说可以连续发送或接收多个字节数据。\\ | ||
+ | 连续写入多字节数据:在一字节写完后再发送n个字节,会依次存放到前一字节的后面。S-> | ||
+ | 连续读取多字节数据:S-> |