串行EEPROM X24128及其与AT89C51的接口及编程
8位地址数据)后,在SDA总线上产生一个负脉冲,该脉冲的宽度一直延续到第9个时钟脉冲信号结束。在读操作过程中,CPU每次接收到 X24128所发送的8位数据后,SDA总线上再发送一个负脉冲,以示读有效,然后X24128可以继续发送数据。如果X24128未接收到应答信号,则停止发送数据,直到接收到结束信号时,通信结束。
4.1按字节写时序
给X24128内部存储阵列中未加锁定保护部分的某一单元写一个字节的数据时,首先设置开始状态,再依次发送器件地址和数据地址的字节1和字节 0,X24128每次接收到一个8位地址字节后,利用第9个时钟脉冲发出应答信号。CPU接收到第3个应答信号后,再发送8位数据和接收应答信号,最后设置结束状态。X24128接收到结束信号后,开始将接收到的数据写入EEPROM阵列的内部写过程。在进行内部写过程中,对外部输入的任何信号都不作反应,SDA管脚输出高阻态。
4.2按页写时序
由CPU给X24128写数据时,可以按页写,每页包括32字节,按页写的方式在开始时如同按字节写,只是每次写完一个字节数据后,X24128内部地址指针自动加1后才可以继续写数据,无需再次写入地址。本页的最高地址写入后,地址指针自动返回到本页的最低地址,如果继续写入数据,则将已写过的数据覆盖,只有发送给X24128结束信号后,X24128才终止接收数据,开始进行内部写过程。
4.3读当前地址数据
如果要读X24128内部地址指针当前所指单元的数据,只要发送给X24128开始信号、器件地址(位为1)和接收到应答信号后,即可接收X24128所发送的当前地址的数据。接收完毕,发送结束信号。X24128发送完数据后,地址指针自动加1。
4.4读取任一地址的数据
先给X24128发送所要读取数据的地址,使其成为当前地址指针所指地址。其中器件地址的位写入0,再按读当前地址数据的方式读取数据。
4.5连续读取数据
连续读取数据如同读取任一地址数据,将所要连续读取数据的首位地址设置成当前地址,在接收完第一字节的数据后,不是发送结束信号,而是发送应答信号,X24128接收到应答信号后继续发送第二字节数据。只要CPU每次接收完一个字节的数据后所发送的是应答信号,X24128就会继续发送下一字节的数据,当发送完整个存储阵列的最高地址的数据后,地址指针将返回到0000H单元。如果继续发送应答信号,X24128将从0000H单元开始继续发送数据。只有接收到结束信号才终止发送。
5.接口电路及编程
X24128与AT89C51的接口电路如图2所示。在2线总线上最多可并接8片X24128。以P1.0口线作为时钟信号输出,P1.1口线作为数据输入、输出。总线接4.7kΩ的上拉电阻。下面以AT89C51寄存器R2的数据写入X24128(1)的1000H地址中为例,假设1000H地址未加写保护,则编程如下:
接口 编程 AT89C51 及其 EEPROM X24128 串行 相关文章:
- μC/OS-II下通用驱动框架的设计与实现(07-23)
- 基于S3C44B0X+μcLinux的嵌入式以太网设计(07-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)
- DSP和Flash接口技术的实现(08-15)
- dsPIC33F系列DSC的 SD存储卡接口设计(01-05)