ESP8266 Developer Zone The Official ESP8266 Forum 2016-08-18T11:40:05+08:00 https://bbs.espressif.com:443/feed.php?f=7&t=2609 2016-08-18T11:40:05+08:00 2016-08-18T11:40:05+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2609&p=8558#p8558 <![CDATA[Re: HSPI接口可否连接一片flash并读写?]]>
宏定义的操作指令为:

Code:

#define   SPI_FLASH_PageSize       256

#define WRITE       0x02  /* Write to Memory instruction */
#define WRSR        0x01  /* Write Status Register instruction */
#define WREN        0x06  /* Write enable instruction */
#define READ        0x03  /*Read from Memory instruction */
#define FSTREAD     0x0B  /* FAST Read from Memory instruction */
#define RDSR        0x05  /* Read Status Register instruction  */
#define RDID        0x90  /* Read ¹¤³§ID */
#define SE          0x20  /* Sector Erase instruction */
#define BE          0xD8  /* Bulk Erase instruction */
#define CE          0xC7  /* ȫƬ²Á³ý*/
#define WIP_Flag    0x01  /* Write In Progress (WIP) flag */
#define Dummy_Byte  0x00  /* Dummy Byte The data on the line not care*/

Statistics: Posted by xiaoleizii — Thu Aug 18, 2016 11:40 am


]]>
2016-08-18T11:33:03+08:00 2016-08-18T11:33:03+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2609&p=8557#p8557 <![CDATA[Re: HSPI接口可否连接一片flash并读写?]]> 0x000 ---- 0x85 0xA5 0x03 0x86 0x4F 0x00 0x00 0x00
0x008 ---- 0x00 0x22 0xA0 0x00 0x10 0x31 0x20 0x42
0x010 ---- 0xA0 0x20 0x85 0x25 0x00 0x08 0x01 0x26
0x018 ---- 0x30 0x24 0x26 0x20 0x21 0x2D 0x01 0x0C
0x020 ---- 0x03 0x2C 0x04 0x01 0xEC 0xFF 0xC0 0x00
0x028 ---- 0x00 0x0C 0x42 0x31 0xCC 0xFC 0xC0 0x20
0x030 ---- 0x00 0x2C 0x04 0x22 0x63 0x4C 0x29 0x01
0x038 ---- 0x3D 0x01 0x0C 0x02 0x45 0x1D 0x00 0x0C
spi_clk HSPI 00000005
FLASH ERASE SECTOR!!

FUNC[SPIMasterSendData],line[282]
SPI_ADDR [0x00001000]
SPI_CMD [0x00008020]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0xc00000f0]
SPI_USER1 [0x5c000000]
SPI_USER2 [0x70000020]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x00800200]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0xffffffff]
ADDR[0x60000144],Value[0xffffffff]
ADDR[0x60000148],Value[0xffffffff]
ADDR[0x6000014c],Value[0xffffffff]
ADDR[0x60000150],Value[0xffffffff]
ADDR[0x60000154],Value[0xffffffff]
ADDR[0x60000158],Value[0xffffffff]
ADDR[0x6000015c],Value[0xffffffff]
ADDR[0x60000160],Value[0xffffffff]
ADDR[0x60000164],Value[0xffffffff]
ADDR[0x60000168],Value[0xffffffff]
ADDR[0x6000016c],Value[0xffffffff]
ADDR[0x60000170],Value[0xffffffff]
ADDR[0x60000174],Value[0xffffffff]
ADDR[0x60000178],Value[0xffffffff]
ADDR[0x6000017c],Value[0xffffffff]

FUNC[SPIMasterRecvStatus],line[451]
SPI_ADDR [0x00001000]
SPI_CMD [0x00002005]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0x900000f0]
SPI_USER1 [0x5c000700]
SPI_USER2 [0x70000005]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x01000210]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0xffffff00]
ADDR[0x60000144],Value[0xffffffff]
ADDR[0x60000148],Value[0xffffffff]
ADDR[0x6000014c],Value[0xffffffff]
ADDR[0x60000150],Value[0xffffffff]
ADDR[0x60000154],Value[0xffffffff]
ADDR[0x60000158],Value[0xffffffff]
ADDR[0x6000015c],Value[0xffffffff]
ADDR[0x60000160],Value[0xffffffff]
ADDR[0x60000164],Value[0xffffffff]
ADDR[0x60000168],Value[0xffffffff]
ADDR[0x6000016c],Value[0xffffffff]
ADDR[0x60000170],Value[0xffffffff]
ADDR[0x60000174],Value[0xffffffff]
ADDR[0x60000178],Value[0xffffffff]
ADDR[0x6000017c],Value[0xffffffff]
FLASH STATUS ----------> 0x0

FUNC[SPIMasterSendData],line[282]
SPI_ADDR [0x00001000]
SPI_CMD [0x00002006]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0x900000f0]
SPI_USER1 [0x00000700]
SPI_USER2 [0x70000006]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x01800210]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0xffffffff]
ADDR[0x60000144],Value[0xffffffff]
ADDR[0x60000148],Value[0xffffffff]
ADDR[0x6000014c],Value[0xffffffff]
ADDR[0x60000150],Value[0xffffffff]
ADDR[0x60000154],Value[0xffffffff]
ADDR[0x60000158],Value[0xffffffff]
ADDR[0x6000015c],Value[0xffffffff]
ADDR[0x60000160],Value[0xffffffff]
ADDR[0x60000164],Value[0xffffffff]
ADDR[0x60000168],Value[0xffffffff]
ADDR[0x6000016c],Value[0xffffffff]
ADDR[0x60000170],Value[0xffffffff]
ADDR[0x60000174],Value[0xffffffff]
ADDR[0x60000178],Value[0xffffffff]
ADDR[0x6000017c],Value[0xffffffff]

FUNC[SPIMasterSendData],line[282]
SPI_ADDR [0x00001000]
SPI_CMD [0x0000a020]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0xd00000f0]
SPI_USER1 [0x5c000700]
SPI_USER2 [0x70000020]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x02000210]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0xffffffff]
ADDR[0x60000144],Value[0xffffffff]
ADDR[0x60000148],Value[0xffffffff]
ADDR[0x6000014c],Value[0xffffffff]
ADDR[0x60000150],Value[0xffffffff]
ADDR[0x60000154],Value[0xffffffff]
ADDR[0x60000158],Value[0xffffffff]
ADDR[0x6000015c],Value[0xffffffff]
ADDR[0x60000160],Value[0xffffffff]
ADDR[0x60000164],Value[0xffffffff]
ADDR[0x60000168],Value[0xffffffff]
ADDR[0x6000016c],Value[0xffffffff]
ADDR[0x60000170],Value[0xffffffff]
ADDR[0x60000174],Value[0xffffffff]
ADDR[0x60000178],Value[0xffffffff]
ADDR[0x6000017c],Value[0xffffffff]

FUNC[SPIMasterRecvStatus],line[451]
SPI_ADDR [0x00001000]
SPI_CMD [0x00002005]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0x900000f0]
SPI_USER1 [0x5c000700]
SPI_USER2 [0x70000005]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x02800210]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0xffffff00]
ADDR[0x60000144],Value[0xffffffff]
ADDR[0x60000148],Value[0xffffffff]
ADDR[0x6000014c],Value[0xffffffff]
ADDR[0x60000150],Value[0xffffffff]
ADDR[0x60000154],Value[0xffffffff]
ADDR[0x60000158],Value[0xffffffff]
ADDR[0x6000015c],Value[0xffffffff]
ADDR[0x60000160],Value[0xffffffff]
ADDR[0x60000164],Value[0xffffffff]
ADDR[0x60000168],Value[0xffffffff]
ADDR[0x6000016c],Value[0xffffffff]
ADDR[0x60000170],Value[0xffffffff]
ADDR[0x60000174],Value[0xffffffff]
ADDR[0x60000178],Value[0xffffffff]
ADDR[0x6000017c],Value[0xffffffff]
FLASH STATUS ----------> 0x0

FUNC[SPIMasterSendData],line[282]
SPI_ADDR [0x00001000]
SPI_CMD [0x00049002]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0xc80000f0]
SPI_USER1 [0x5ffe0700]
SPI_USER2 [0x70000002]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x03000210]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0x03020100]
ADDR[0x60000144],Value[0x07060504]
ADDR[0x60000148],Value[0x0b0a0908]
ADDR[0x6000014c],Value[0x0f0e0d0c]
ADDR[0x60000150],Value[0x13121110]
ADDR[0x60000154],Value[0x17161514]
ADDR[0x60000158],Value[0x1b1a1918]
ADDR[0x6000015c],Value[0x1f1e1d1c]
ADDR[0x60000160],Value[0x23222120]
ADDR[0x60000164],Value[0x27262524]
ADDR[0x60000168],Value[0x2b2a2928]
ADDR[0x6000016c],Value[0x2f2e2d2c]
ADDR[0x60000170],Value[0x33323130]
ADDR[0x60000174],Value[0x37363534]
ADDR[0x60000178],Value[0x3b3a3938]
ADDR[0x6000017c],Value[0x3f3e3d3c]

FUNC[SPIMasterRecvStatus],line[451]
SPI_ADDR [0x00001000]
SPI_CMD [0x00002005]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0x900000f0]
SPI_USER1 [0x5ffe0700]
SPI_USER2 [0x70000005]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x03800210]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0x03020100]
ADDR[0x60000144],Value[0x07060504]
ADDR[0x60000148],Value[0x0b0a0908]
ADDR[0x6000014c],Value[0x0f0e0d0c]
ADDR[0x60000150],Value[0x13121110]
ADDR[0x60000154],Value[0x17161514]
ADDR[0x60000158],Value[0x1b1a1918]
ADDR[0x6000015c],Value[0x1f1e1d1c]
ADDR[0x60000160],Value[0x23222120]
ADDR[0x60000164],Value[0x27262524]
ADDR[0x60000168],Value[0x2b2a2928]
ADDR[0x6000016c],Value[0x2f2e2d2c]
ADDR[0x60000170],Value[0x33323130]
ADDR[0x60000174],Value[0x37363534]
ADDR[0x60000178],Value[0x3b3a3938]
ADDR[0x6000017c],Value[0x3f3e3d3c]
FLASH STATUS ----------> 0x0
FLASH WRITE SECTOR!!
0x000 ---- 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x008 ---- 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
0x010 ---- 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x018 ---- 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F
0x020 ---- 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27
0x028 ---- 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F
0x030 ---- 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37
0x038 ---- 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F

FUNC[SPIMasterRecvData],line[355]
SPI_ADDR [0x00001000]
SPI_CMD [0x0000a00b]
SPI_CTRL [0x0028afff]
SPI_CTRL2 [0x00000011]
SPI_CLOCK [0x0003f7ff]
SPI_RD_STATUS [0x00000000]
SPI_WR_STATUS [0x00000000]
SPI_USER [0xd00000f0]
SPI_USER1 [0x5fffff00]
SPI_USER2 [0x7000000b]
SPI_PIN [0x0000001e]
SPI_SLAVE [0x04000210]
SPI_SLAVE1 [0x02000000]
SPI_SLAVE2 [0x00000000]
ADDR[0x60000140],Value[0xffffffff]
ADDR[0x60000144],Value[0xffffffff]
ADDR[0x60000148],Value[0xffffffff]
ADDR[0x6000014c],Value[0xffffffff]
ADDR[0x60000150],Value[0xffffffff]
ADDR[0x60000154],Value[0xffffffff]
ADDR[0x60000158],Value[0xffffffff]
ADDR[0x6000015c],Value[0xffffffff]
ADDR[0x60000160],Value[0xffffffff]
ADDR[0x60000164],Value[0xffffffff]
ADDR[0x60000168],Value[0xffffffff]
ADDR[0x6000016c],Value[0xffffffff]
ADDR[0x60000170],Value[0xffffffff]
ADDR[0x60000174],Value[0xffffffff]
ADDR[0x60000178],Value[0xffffffff]
ADDR[0x6000017c],Value[0xffffffff]
FLASH READ SECTOR!!
0x000 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x008 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x010 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x018 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x020 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x028 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x030 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x038 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
FLASH CMP DATA!!
FLASH TEST FAIL!!

Statistics: Posted by xiaoleizii — Thu Aug 18, 2016 11:33 am


]]>
2016-08-18T11:17:36+08:00 2016-08-18T11:17:36+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2609&p=8555#p8555 <![CDATA[HSPI接口可否连接一片flash并读写?]]>
附初始化和操作函数:

初始化(尝试三种方式,都无法正常读写):

Code:

void hspi_hardware_init(void) {
   /*
    SpiAttr HspiInitAttr;

    HspiInitAttr.mode = SpiMode_Master;
    HspiInitAttr.bitOrder = SpiBitOrder_MSBFirst;
    HspiInitAttr.subMode = SpiSubMode_2;
    HspiInitAttr.speed = SpiSpeed_2MHz;
    WRITE_PERI_REG(PERIPHS_IO_MUX, 0x005);
    //   WRITE_PERI_REG(PERIPHS_IO_MUX, 0x105);
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_HSPIQ_MISO); //configure io to spi mode
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_HSPID_MOSI); //configure io to spi mode
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_HSPI_CLK); //configure io to spi mode
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_HSPI_CS0); //configure io to spi mode
    CLEAR_PERI_REG_MASK(SPI_PIN(SpiNum_HSPI), SPI_CS0_DIS);
    SET_PERI_REG_MASK(SPI_PIN(SpiNum_HSPI), SPI_CS1_DIS |SPI_CS2_DIS);

    SPIInit(SpiNum_HSPI, &HspiInitAttr);
    SPICsPinSelect(SpiNum_HSPI, SpiPinCS_0);

    //   SET_PERI_REG_MASK(SPI_USER(SpiNum_HSPI), SPI_CS_SETUP|SPI_CS_HOLD|SPI_USR_COMMAND|SPI_USR_MOSI);
    //   CLEAR_PERI_REG_MASK(SPI_USER(SpiNum_HSPI), SPI_FLASH_MODE);
    //   CLEAR_PERI_REG_MASK(SPI_CTRL(SpiNum_HSPI), SPI_QIO_MODE|SPI_DIO_MODE|SPI_DOUT_MODE|SPI_QOUT_MODE);
    //   WRITE_PERI_REG(SPI_CLOCK(SpiNum_HSPI),
    //               ((3&SPI_CLKCNT_N)<<SPI_CLKCNT_N_S)|
    //               ((1&SPI_CLKCNT_H)<<SPI_CLKCNT_H_S)|
    //               ((3&SPI_CLKCNT_L)<<SPI_CLKCNT_L_S));
    //   WRITE_PERI_REG(SPI_USER1(SpiNum_HSPI),
    //               ((7&SPI_USR_MOSI_BITLEN)<<SPI_USR_MOSI_BITLEN_S)|
    //               ((7&SPI_USR_MISO_BITLEN)<<SPI_USR_MISO_BITLEN_S));*/

//   hspi_overlap_init();
   hspi_master_dev_init(HSPI_CS_DEV, 1, 0x1F);
   hspi_dev_sel(HSPI_CS_DEV);

//   PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
//   GPIO_OUTPUT_SET(GPIO_ID_PIN(15), 1);

//   hspi_overlap_flash_init();

}


HSPI FLASH 操作函数:

Code:

int hspi_write_data(uint32_t addr, uint32_t* data, uint32_t length) {
   SpiData tspidata;
   int status;

   tspidata.addr = &addr;
   tspidata.addrLen = 3;
   tspidata.cmd = WRITE;
   tspidata.cmdLen = 1;
   tspidata.data = data;
   tspidata.dataLen = length;

   status = SPIMasterSendData(SpiNum_HSPI, &tspidata);
   return status;
}

int hspi_read_data(uint32_t addr, uint32_t* data, uint32_t length) {
   SpiData tspidata;
   int status;

   tspidata.addr = &addr;
   tspidata.addrLen = 3;
   tspidata.cmd = FSTREAD;
   tspidata.cmdLen = 1;
   tspidata.data = data;
   tspidata.dataLen = length;

   status = SPIMasterRecvData(SpiNum_HSPI, &tspidata);
   return status;
}

int hspi_erase_sector(uint32_t addr) {
   SpiData tspidata;
   int status;

   tspidata.addr = &addr;
   tspidata.addrLen = 3;
   tspidata.cmd = SE;
   tspidata.cmdLen = 1;
   tspidata.dataLen = 0;

//   GPIO_OUTPUT_SET(GPIO_ID_PIN(15), 0);

   status = SPIMasterSendData(SpiNum_HSPI, &tspidata);
   hspi_wait_for_write_finish();

//   GPIO_OUTPUT_SET(GPIO_ID_PIN(15), 1);
   return status;
}

int hspi_write_enable(void) {
   SpiData tspidata;
   int status;

   tspidata.addrLen = 0;
   tspidata.cmd = WREN;
   tspidata.cmdLen = 1;
   tspidata.dataLen = 0;

   status = SPIMasterSendData(SpiNum_HSPI, &tspidata);
   return status;
}

uint8_t hspi_read_status(void) {
//   SpiData tspidata;
   uint32_t flash_staus;
//
//   tspidata.addrLen = 0;
//   tspidata.cmd = RDSR;
//   tspidata.cmdLen = 1;
//   tspidata.data = &flash_staus;
//   tspidata.dataLen = 1;

   flash_staus = SPIMasterRecvStatus(SpiNum_HSPI);

//   SPIMasterRecvData(SpiNum_HSPI, &tspidata);
   return flash_staus & 0xFF;
   //   return 0x00;
}

int hspi_wait_for_write_finish(void) {
   uint32_t flash_status = 0;

   do {
      flash_status = hspi_read_status();
      printf("FLASH STATUS ----------> 0x%X \r\n", flash_status);
      vTaskDelay(100 / portTICK_RATE_MS);
   } while (flash_status & 0x01 > 0);

   return flash_status;
}


测试读写函数:

Code:

int hspi_flash_test(uint32_t addr) {
   uint8_t tbuf[64], status = 0;
   uint8_t tbufchk[64] = { 0 };
   uint16_t i;


   spi_flash_read(0x1000, (uint32_t *)tbufchk, 64);
   disp_arry(tbufchk, 64);

   os_printf("spi_clk HSPI %08x\r\n", READ_PERI_REG(PERIPHS_IO_MUX));
   for (i = 0; i < 64; i++)
      tbuf[i] = i;
   printf("FLASH ERASE SECTOR!!\r\n");
   hspi_erase_sector(addr);
   vTaskDelay(5000 / portTICK_RATE_MS);
   flash_write_data(tbuf, addr, 64);
   printf("FLASH WRITE SECTOR!!\r\n");
   disp_arry(tbuf, 64);
   vTaskDelay(5000 / portTICK_RATE_MS);
   flash_read_data(tbufchk, addr, 64);
   printf("FLASH READ SECTOR!!\r\n");
   disp_arry(tbufchk, 64);
   vTaskDelay(5000 / portTICK_RATE_MS);
   printf("FLASH CMP DATA!!\r\n");
   status = Buffercmp(tbufchk, tbuf, 64);
   if (status == 0)
      printf("FLASH TEST SUCCESS!!\r\n");
   else
      printf("FLASH TEST FAIL!!\r\n");
   return status;
}


printf结果:

0x000 ---- 0x85 0xA5 0x03 0x86 0x4F 0x00 0x00 0x00
0x008 ---- 0x00 0x22 0xA0 0x00 0x10 0x31 0x20 0x42
0x010 ---- 0xA0 0x20 0x85 0x25 0x00 0x08 0x01 0x26
0x018 ---- 0x30 0x24 0x26 0x20 0x21 0x2D 0x01 0x0C
0x020 ---- 0x03 0x2C 0x04 0x01 0xEC 0xFF 0xC0 0x00
0x028 ---- 0x00 0x0C 0x42 0x31 0xCC 0xFC 0xC0 0x20
0x030 ---- 0x00 0x2C 0x04 0x22 0x63 0x4C 0x29 0x01
0x038 ---- 0x3D 0x01 0x0C 0x02 0x45 0x1D 0x00 0x0C
spi_clk HSPI 00000005
FLASH ERASE SECTOR!!
FLASH STATUS ----------> 0x0
FLASH STATUS ----------> 0x0
FLASH STATUS ----------> 0x0
FLASH WRITE SECTOR!!
0x000 ---- 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
0x008 ---- 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
0x010 ---- 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17
0x018 ---- 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F
0x020 ---- 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27
0x028 ---- 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F
0x030 ---- 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37
0x038 ---- 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F
FLASH READ SECTOR!!
0x000 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x008 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x010 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x018 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x020 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x028 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x030 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x038 ---- 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
FLASH CMP DATA!!
FLASH TEST FAIL!!

Statistics: Posted by xiaoleizii — Thu Aug 18, 2016 11:17 am


]]>