feat: KT mBMS 펌웨어 3종(HW1/2/3) 및 통합 빌드 환경 초기 커밋 (V4.0.0.1)
This commit is contained in:
77
mBMS_APP_V3117/HARDWARE/w25qxx.h
Normal file
77
mBMS_APP_V3117/HARDWARE/w25qxx.h
Normal file
@@ -0,0 +1,77 @@
|
||||
#ifndef __W25QXX_H
|
||||
#define __W25QXX_H
|
||||
#include "sys.h"
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//This program is for educational purposes only, without the author's permission, may not be used for any other purpose
|
||||
//ALIENTEK STM32F4 Explorer Board
|
||||
//W25QXX Driver code
|
||||
//Hot Atomic @ALIENTEK
|
||||
//Forum: www.openedv.com
|
||||
//Date modified: 2014/5/6
|
||||
//Version: V1.0
|
||||
//All rights reserved pirated reserved.
|
||||
//Copyright(C) Guangzhou wing electronic technology limited company 2009-2019
|
||||
//All rights reserved
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//W25X/Q series chip list
|
||||
//W25Q80 ID 0XEF13
|
||||
//W25Q16 ID 0XEF14
|
||||
//W25Q32 ID 0XEF15
|
||||
//W25Q64 ID 0XEF16
|
||||
//W25Q128 ID 0XEF17
|
||||
#define W25Q40 0XEF12
|
||||
#define W25Q80 0XEF13
|
||||
#define W25Q16 0XEF14
|
||||
#define W25Q32 0XEF15
|
||||
#define W25Q64 0XEF16
|
||||
#define W25Q128 0XEF17
|
||||
|
||||
#define SPI_FLASH_ADDR 0x00000000
|
||||
#define SPI_FLASH_LAST_64K_BLOCK 0x00070000
|
||||
#define SPI_FLASH_LAST_32K_BLOCK 0x00078000
|
||||
#define SPI_FLASH_LAST_4K_SECTOR 0x0007F000
|
||||
|
||||
#define SPI_FLASH_BLOCK_SIZE 0X10000
|
||||
#define SPI_FLASH_SECTOR_SIZE 0X1000
|
||||
#define SPI_FLASH_PAGESIZE 256
|
||||
|
||||
extern u16 W25QXX_TYPE; //Define W25QXX chips
|
||||
|
||||
#define W25QXX_CS PBout(12) //The chip select signals W25QXX
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//Instruction list
|
||||
#define W25X_WriteEnable 0x06
|
||||
#define W25X_WriteDisable 0x04
|
||||
#define W25X_ReadStatusReg 0x05
|
||||
#define W25X_WriteStatusReg 0x01
|
||||
#define W25X_ReadData 0x03
|
||||
#define W25X_FastReadData 0x0B
|
||||
#define W25X_FastReadDual 0x3B
|
||||
#define W25X_PageProgram 0x02
|
||||
#define W25X_BlockErase 0xD8
|
||||
#define W25X_SectorErase 0x20
|
||||
#define W25X_ChipErase 0xC7
|
||||
#define W25X_PowerDown 0xB9
|
||||
#define W25X_ReleasePowerDown 0xAB
|
||||
#define W25X_DeviceID 0xAB
|
||||
#define W25X_ManufactDeviceID 0x90
|
||||
#define W25X_JedecDeviceID 0x9F
|
||||
|
||||
void W25QXX_Init(void);
|
||||
u16 W25QXX_ReadID(void); //Read FLASH ID
|
||||
u8 W25QXX_ReadSR(void); //Read status register
|
||||
void W25QXX_Write_SR(u8 sr); //Write status register
|
||||
void W25QXX_Write_Enable(void); //Write enable
|
||||
void W25QXX_Write_Disable(void); //Write-protect
|
||||
void W25QXX_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
|
||||
void W25QXX_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead); //Read Flash
|
||||
void W25QXX_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);//Write Flash
|
||||
void W25QXX_Erase_Chip(void); //All erase
|
||||
void W25QXX_Erase_Sector(u32 Dst_Addr); //Sector erase
|
||||
void W25QXX_Wait_Busy(void); //Waiting for a free
|
||||
void W25QXX_Wait_Busy_Erase(void);
|
||||
void W25QXX_PowerDown(void); //Enter the power off mode
|
||||
void W25QXX_WAKEUP(void); //Wake up
|
||||
#endif
|
||||
Reference in New Issue
Block a user