AT45DBl61支持SPI系统工作方式,SPI的四种工作方式如图3所示。
其中支持SPI 0和SPI 3两种方式的时序图分别如图4和图5所示。
对于不同的操作模式,即使在执行相同的操作时,其操作码也可能不同。如读存储页操作,SPI 0模式下的命令代码为52H,而SPI 3模式下的命令代码则为D2H。除读状态寄存器外,所有的命令格均示于图6图中的rr:代表保留位,建议清零。
操作时,MCU首先向AT45DBl6l发送1个命令字节,其后跟随24位地址数据(前两位为保留位,其后12位为页地址选择位,10位为页内开始字节地址),根据不同的操作对SI执行不同的处理。如写操作后面紧跟着待写入的数据(高位在前),那么,读存储页就要延迟32个SCK时钟周期以处理读操作,读缓冲区则需延迟8个SCK时钟周期。读状态寄存器的时序(SPI 0)如图7所示。
读状态寄存器(SCK上升沿写入)时,在写入命令字节(57H)后,如没有地址数据,那么,在其后的8个SCK周期就可以直接从SO读取STATUS数据,而且可以连续读取,直到片选信号/CS置高为止。
基于AT45DBl61税控器的存储电路设计
◇系统硬件设计
图8所示为AT45DB16l与W78E516B连接示意图。虽然FLASH的工作电压和MCU不同,但它们都不需要电平转换,两者仍能正常通讯,从而简化了电路设计,节约了系统成本。由于WP接高电平,因而去掉了FLASH前256个字节的写保护功能,并且不会对系统的安全造成隐患,同时还节约了单片机的I/O口资源。为了保证对FLASH操作的可靠性,上电后,可对FLASH在操作前复位。AT45DB16l的RDY没有占用单片机的I/O口,可在软件处理中通过读状态寄存器的方法来确定FLASH内部操作是否处于忙状态。
◇系统软件设计
系统中包含智能卡的读写、FLASH读写和串口通讯处理操作,对于智能
FLASH写数据过程都采用先写入缓冲区,再从缓冲区写入存储页中方法,且数据都是以页为单位,每次要写入528个字节。如果只修改页中部分数据,而保留该页其他数据,那么,必须先把该页数据拷贝到缓冲区中,然后调用写缓冲区操作,再把缓冲区的数据写入该存储页中。
结束语
AT45DBl61串行FLASH存储芯片在税控器中的实际应用效果很好,而且编程也比较简单,与其它一些FLASH存储芯片相比,AT45DB16的突出特点是电路简单,存储容量大,占用系统资源少。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。