Flash存储芯片的通讯方式以SPI居多,在实现flash读写时就是要实现SPI的通讯协议,与EEPROM不同的是,SPI在操作时是按照PAGE页进行整页擦除写入的,这一点需要注意。Flash分为NorFlash和NandFlash,这里主要介绍NorFlash,下面从硬件设计和编程的角度介绍一下。

1 Flash存储芯片的硬件设计

Flash存储芯片多数都是SO-8的封装,具有八个引脚,存储容量较大,比如1M,2M,64M,128M等。通讯方式以SPI居多,所包含的引脚有数据输出DO、数据输入DI、时序SCLK、片选CS以及写保护WP等。

需要用到四个GPIO,片选CS低电平有效,保持和写保护为可选功能。

2 Flash存储芯片的编程事项

Flash是用来存储数据的,在消费类电子上应用比较多,如智能手环、体重秤以及作为WIFI、蓝牙模组的固件存储等。对Flash芯片的操作主要包括擦除和写入。Flash厂家、型号虽然不同,但是同为SPI通讯方式时,基本操作大同小异,都是通过整个PAGE来擦除和写入的,需要注意容量、可操作扇区的不同。在编程时需要注意如下几个问题:

首先,在拿到Flash时需要首先查看Flash的扇区划分

其次,需要根据手册的SPI时序实现程序代码的编写,这一部分一定要遵循手册的时序。

再次,需要设置正确的波特率并选择选择CPOL和CPHA。编程部分,代码的编写比较灵活每个人的实现方式不同、编程思想不同,无法展示代码。也可以选择官方的驱动代码,在此基础上进行修改。

EEPROM一般为IIC通讯,是按照字节读写的,而SIP的Flash是按照PAGE页进行擦除和读写的,这一点需要注意。