单片机实验指导书(14)
发布时间:2021-06-06
发布时间:2021-06-06
单片机实验指导书
写过程,故应在SDA端产生一个停止状态,这是外部写过程。
在这个过程中,控制EEPROM的单片机应在EEPROM的SCL,SDA端送入恰当的信号。当然在一个字节写过程结束时,单片机应以停止状态结束写过程。在这时,EEPROM进入内部定时的写周期,以便把接受的数据写入到存储单元中。在EEPROM的内部写周期中,其所有输入被屏蔽,同时不响应外部信号直到写周期完成。这是内部写过程。内部写过程大约需要10ms时间。内部写过程处于停止状态与下一次起始状态之间。
页面写:
这种写入方式执行含若干字节的1个页面的写入。对于AT24C01A/02,它们的1个页面含8个字节;页面写的开头部分和字节写一样。在起始状态,首先写入8位器件地址;待EEPROM答当了“0”信号ACK之后,写入8位字地址;又待芯片应答了“0”信号ACK之后,写入8位资料。
随后页面写的过程则和字节写有区别。
当芯片接受了第一个8位资料并产生应答信号ACK之后,单片机可以连续向EEPROM芯片发送共为1页面的资料。对于AT24C01A/02,可发送共1个页面的8个字节(连第一个8位资料在内)。对于AT24C04/08/16,则共可发送1个页面共16个字节(连第一个8位资料在内)。当然,每发一个字节都要等待芯片的应答信号ACK。
之所以可以连续向芯片发送1个页面资料,是因为字地址的低3~4位在EEPROM芯片内部可实现加1,字地址的高位不变,用于保持页面的行地址。页面写和字节写两者一样可,都分为外部写和内部写过程。
应答查询:应答查询是单片机对EEPROM各种状态的一种检测。单片机查询到EEPROM有应答“0”信号ACK输出,则说明其内部定时写的周期结束,可以写入新的内容。单片机是通过发送起始状态及器件地址进行应答查询的。由于器件地址可以选择芯片,则检测芯片送出到SDA的状态就可以知道其是否有应答了。
④读操作:读操作的启动是和写操作类同的。它一样需要图所示的器件地址字。和写操纵不同的就是信号为时执行读操作。
读操纵有3种方式,即现行地址读,随机读和顺序读。下面分别说明它们的工作过程。 现行地址读:
在上次读或写操纵完成之后。芯片内部字地址计数器会加1,产生现行地址。只要没有再执行读或写操作,这个现行地址就会在EEPROM芯片保持接电的期间一直保存。一旦器件地址选中EEPROM芯片,并且有R/W=1,则在芯片的应答信号ACK之后把读出的现行地址的资料送出。现行地址的资料输出时,就由单片机一位一位接受,接收后单片机不用向EEPROM发应答信号ACK“0”电平,但应保证发出停止状态的信号以结束现行地址读操作。现行地址读会产生地址循环覆盖现象,但和写操纵的循环覆盖不同。在写操纵中,地址的循环覆盖是现行页面的最后一个字节写入之后,再行写入则覆盖同一页面的第一个字节。而在现行地址读操纵中,地址的循环覆盖是在最后页面的最后一个字节读出之后,再行读出才覆盖第一个页面的第一个字节。
随机读:
随机读和现行地址读的最大区别在于随机读会执行一个伪写入过程以把字地址装入EEPROM芯片中,然后执行读出,显然,随机读有2个步骤。
第一,执行伪写入——把字地址送入EEPROM,以选择需读的字节。 第二,执行读出——根据字地址读出对应内容。
当EEPROM芯片接收了器件地址及字地址时,在芯片产生应答信号ACK之后,单片机必须再产生一个起始状态,执行现行地址读,这时单片机再发出器件地址并且令R/W=1,则EEPROM应答器件地址并行输出被读数据。在资料读出时由单片机执行一位一位接收,接收完毕后,单片机不用发“0”应答信号ACK,但必须产生停止状态以结束随机读过程。