新闻  |   论坛  |   博客  |   在线研讨会
AT25DF321 Flash存储器编程要点
xfjane | 2010-01-08 21:49:40    阅读:7836   发布文章

       AT25DF321是一款SPI串行Flash存储器,2.7V-3.6V单电源供电,最大时钟频率达70MHz,可进行4KB/32KB/64KB块擦除或芯片擦除,可进行字节/页写操作(1至256字节),可擦写10万次等。
   
编程要点如下:

1.         SPI有四种模式0~3,它们的不同在于sck的极性和相位。AT25DF321只支持其中的mode0和3,这两者的区别在于空闲时sck极性的不同(即是高还是低),在sck的上升沿时输入,下降沿时输出;

2.         读阵列操作:/CS置低;写入命令码0Bh或03h;写入3字节地址,即读操作的起始地址;SO引脚输出数据(注意,总是由最高位依次输出)。如果3FFFFF阵列的最后一字节输出,将继续从000000h位置开始读。将/CS置高,可终止读操作。/CS可在任意时刻置高,而不需要读完整个字节;

3.         字节/页写操作:①写入写允许命令(/CS置低;写入命令码06h;不用写地址码,在命令码后输入的任何数将被忽略;/CS置高,使WEL位置1。/CS必须在偶数字节后置高,否则写入的操作码无效。);②写入命令码02h执行字节/页写操作;③写入3字节地址,指示写操作的起始地址;④数据写入缓冲器;⑤/CS置高,数据存入缓冲器及写入阵列,并返回写入字节数。

注:擦写后的各字节都为FFh;如果写操作的起始地址不是256的偶数倍,任何超出该页的数据将从该页的起始位置存储;如果有多于256个字节被写入,只有最后256字节能被锁存到内部缓冲器;如果写入字节数小于256,该页其余字节内容不变;在写操作期间,状态寄存器可被读取并指示忙状态;如果出错,EPE位将指示;操作结束,WEL位置0;

4.         块擦除:4K(命令码20h)、32K(命令码52h)、64K(命令码D8h)字节可被擦除(各位置1);写入3字节地址,即在块区内的擦除起始地址;

注:操作结束,WEL位置0;

5.         芯片擦除:①写入写允许命令(/CS置低;写入命令码06h;不用写地址码,在命令码后输入的任何数将被忽略;/CS置高,使WEL位置1。/CS必须在偶数字节后置高,否则写入的操作码无效。);②写入命令码60h或C7h执行芯片擦除操作;③/CS置高,擦除整个存储器;

注:操作结束,WEL位置0;

6.         读状态寄存器:/CS置低;写入命令码05h;命令码最后一位写入后,立即输出状态寄存器值;

注:只要/CS仍为低,状态寄存器值将重新输出。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客