在IIC通信时,一般有写和读两种操作,我们用AT24C02来具体讲解。
AT24C02芯片工作原理
AT24C02芯片是以IIC接口的EEPROM器件。所谓EEPROM即电可擦除可编程只读存储器,是ROM的一种。它是只读存储器,即掉电可继续存储数据,而同时又可以在高于普通电压的作用下擦除和重写,这就大大方便了单片机对其的开发,现在电脑上的ROM很多都是用的EEPROM。
AT24C02引脚图如下:
其中A0、A1、A2用于定义芯片地址(后面会详细说明),VCC和GND是供电正负接口,SCL和SDA是IIC的数据总线,WP是写保护(若接VCC则该芯片所有内容都被保护,只能读不能写,一般我们直接接地)。
AT24C02的从机地址如下表所示,前四位1010为固定值,A0,A1,A2正好与芯片的1,2,3引角对应,最末一位表示读(1)或写(0)。
实现方法:
AT24C02的内存有2Kbit(256byte),分为32页,对其的写操作包括字节写和页写。
字节写就是对指定地址的字节进行写入操作,时序是:
①发送start信号
②发送从器件地址+写标志“0”,并等待应答信号
③发送要写入的地址,并等待应答信号
④发送要写入的数据,并等应答信号
⑤发送stop信号。
(注意要将从器件地址和④中的地址加以区分,从机地址是用于区分总线上的从机的,而这个地址是器件内部的地址,是用于存储的。)
页写则是在字节写的基础上,在第⑤步之前多次使用第④步,即最后先不要发送stop信号,而是继续发送数据,这时AT24C02就会自动将地址加一,待所有数据发送完毕再发送stop信号。
对24C02的读操作有当前地址读,随机读和顺序读。
随机读可以指定要读取数据的地址,具体时序:
①发送start信号
②发送从器件地址+写标志“0”,并等待应答
③发送要读数据的地址,并等待应答
④重新发送一个start信号(也可称为restart信号)
⑤发送从器件地址+读标志“1”,并等待应答
⑥接收传来的数据,收到数据后要发送非应答信号
⑦发送stop信号。
(注意要将从器件地址和④中的地址加以区分,从机地址是用于区分总线上的从机的,而这个地址是器件内部的地址,是用于存储的。)
当前地址读则是只能读取芯片内部最近一次操作的地址加一处的数据(主要在已知上次操作地址时使用),具体时序:
①发送start信号
②发送从器件地址+读标志“1”,并等待应答
③接收传来的数据,然后发送非应答信号
④发送stop信号。
顺序读则是在前两种读操作的基础上,在接收到数据后发送应答信号,然后就可以继续读上次操作地址加一处的数据了(这是在芯片内部实现的),当读够数据后,要发送非应答信号,最后发送stop信号。
知道了这些,就可以在AT24C02上进行读写了。
基本电路图如下:
以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。若您对文中任何信息有异议,欢迎随时提出,谢谢!