SST25VF080B 测试

SST25VF080B 是一款 SPI NOR 芯片,容量为1MB(8MBITs)【参考1】。这次测试的使用 Arduino Pro Micro 【参考2】进行读写(它使用32U4 作为主控,工作在8Mhz,3.3V 下面)。特别注意,这个SPI NOR 工作电压为3.3V。

具体连接如下:

编写的测试代码如下:

#include <SST25VF.h>
#include <SPI.h>


#define MemCs 6 //CS#
#define MemWp 4 //WP#
#define MemHold 7 //HOLD#
#define EraseSwitch  5 //擦除开关
#define WriteSwitch  8 //写入开关

SST25VF flash;

uint8_t buffer[]="www.lab-z.com 2022"; 

void setup() {
  Serial.begin(115200);
  pinMode(EraseSwitch, INPUT_PULLUP);
  pinMode(WriteSwitch, INPUT_PULLUP);
  
  flash.begin(MemCs, MemWp, MemHold);
}

void loop() {
  // 函数内部直接串口输出
  flash.readID();
  if (digitalRead(EraseSwitch) == LOW) {
    // 擦除 Sector 0
    Serial.println("erasing...");
    flash.sectorErase(0);
  }
  if (digitalRead(WriteSwitch) == LOW) {
    // 写入字符串
    Serial.println("writing...");
    flash.writeArray(0,buffer,sizeof(buffer));
  }

  //读取
  flash.readArray(0,buffer,sizeof(buffer));
  Serial.print("Read: ");
  for (int i=0;i<sizeof(buffer);i++) {
      Serial.print((char)buffer[i]);
    }
  Serial.println("");

  delay(5000);
}

代码会读取当前芯片的 ID显示出来,然后读取 Address 0开始的数据,以 ASCII字符显示出来。同时预留了D5和D8。当D5接地时会进行Sector 0 的擦除动作;当D8接地时会对 Address 0 写入一个字符串。

参考:

1.芯片收据手册 https://ww1.microchip.com/downloads/en/DeviceDoc/20005045C.pdf

2.Arduino Pro Micro 引脚定义 https://content.arduino.cc/assets/Pinout-Micro_latest.pdf

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注