目录
一、AT24C02读写原理
1、设备地址
1 | 0 | 1 | 0 | A2 | A1 | A0 | R/W |
可以看到其地址用了MSB7位标识,其中1010固定,不固定的由A2 A1 A0决定。因此一个总线最多挂载8个AT24C02。
2、单字节写入
可以看到,如果每次写入数据都需要给地址那速度太慢了,因为一般不会只用8bits,而是连续较长的数据,因此AT24C02支持页写入。
3、页写入
可以看到每次页写入支持连续写入多个字节数据,但是超出了仍需要再次写入新的地址。
4、单字节读取
5、随机连续字节读取
同理,读取也支持连续,但是支持无穷连续读取。该随机并不代表随机的地址,而是用户给定的任意地址。
6、顺序读取
支持不给地址的情况下,从头读取。
二、模拟IIC-I2C的时序控制
模拟IIC只写时序,不考虑IIC的相关配置。
1、GPIO配置
之前聊过,I2C为了保证挂载,一般都是ID开漏模式,外部通过电阻上拉。
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(EEPROM_RCC_I2C_PORT, ENABLE)