I2C:(基于存储器AT24C512)
使用过程:
MCU---发送启始信号和从器件地址---从器件应答之后。。。
1、启停信号
启动:SCL保持高电平,SDA电平由高到低。
停止:SCL…………….,SDA电平由低到高。
2、设备选址。
MCUaction:发送启动信号再发送从器件地址(高5位固定为10100,“1010表示E2ROM”,接下来的2位A0A1为器件地址位,最后一位为读写控制字,“1”为读“0”写)
Slave action:检测总线,当其地址与发送的从地址相符时,通过SDA发出应答信号。
AT24C512控制字:1-0-1-0-0-A0-A1-R/W
3、应答信号。
I2C总线传输数据时,每成功传送1B,接收器必须产生一个ACk信号,应答器件(接收端)在第9个时钟周期将SDA拉低表示已接收。
如果接收器件选择写操作:则每接收1B之后发送一个ACK信号。
工作于读模式:在发送一个8位数据后,释放SDA,并监测1个应答信号,一旦接收到ACK则继续发送数据,若主器件没有发送ACK,器件停止传送数据并等待产生一个停止信号。
4、写操作。
AT24C512分为字节写和页写。(没有缓冲器,写需要一定的时间)
在字节写模式下:主器件首先给从器件发送启‘信号和从器件地址,在从器件回应答信号后,主器件再发送两字节的地址信息到AT24C512地址指针,主器件在收到应答信号后,再发送1B的数据到被寻址的存储单元,从器件再次应答,并在主器件产生停止信号后开始内部数据擦写(擦写过程中,从器件不再接收应答主器件的任何请求。)
在写页方式时:AT24C512可以一次性写入一页128B。(初始化过程与字节相同,不同的是,当写入一个数据字节后,单片机不发停止状态,而是在应答信号后接着输入127B,每一B接收完毕后,AT24C512则照样输出一个应答信号)
5、读操作。
读操作有当前地址读、随机读、读串。(初始化过程与写的基本相同,只是在设备选择字的最低位改为读而已。)
当前地址读操作方式:内部数据的地址将保持在最后的读写操作地址加一,直到读到最后字节后又回到最开始的位置。
随机读模式:读之前要向AT24C512写入1B地址,然后才能读。
读串操作模式:既可以当前地址读,也可以是随机地址读。(当单片机接收到一个数据字后,会回应一个应答信号。AT24C512在接收到应答信号后会将地址加一,接着输出1B。当单片机接收到数据但不送应答信号时,读过程结。)
AC(小波)编写,这几天,心情特别不舒畅,因为,前天,自己把电脑的硬盘资料都丢失了,整理了三年的资料库说没有就没有,心情特别地惆怅,所以,现在,需要网络来维持自己的数据库,且有感而发。
座右铭:求知若渴,虚心若愚!