/**
|
******************************************************************************
|
* @file stm32_eval_spi_flash.h
|
* @author MCD Application Team
|
* @version V4.5.0
|
* @date 07-March-2011
|
* @brief This file contains all the functions prototypes for the stm32_eval_spi_flash
|
* firmware driver.
|
******************************************************************************
|
* @attention
|
*
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
*
|
* <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2>
|
******************************************************************************
|
*/
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
#include "stm32f10x.h"
|
#ifndef __STM32_EVAL_SPI_FLASH_H
|
#define __STM32_EVAL_SPI_FLASH_H
|
#define ID_Adress 0x08008000
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
/* Includes ------------------------------------------------------------------*/
|
#include "stm32_eval.h"
|
|
/** @addtogroup Utilities
|
* @{
|
*/
|
|
/** @addtogroup STM32_EVAL
|
* @{
|
*/
|
|
/** @addtogroup Common
|
* @{
|
*/
|
|
/** @addtogroup STM32_EVAL_SPI_FLASH
|
* @{
|
*/
|
|
/** @defgroup STM32_EVAL_SPI_FLASH_Exported_Types
|
* @{
|
*/
|
/**
|
* @}
|
*/
|
|
/** @defgroup STM32_EVAL_SPI_FLASH_Exported_Constants
|
* @{
|
*/
|
/**
|
* @brief M25P SPI Flash supported commands
|
*/
|
|
|
#define sFLASH_CMD_WRITE 0x02 /*!< Write to Memory instruction */
|
#define sFLASH_CMD_WRSR 0x01 /*!< Write Status Register instruction */
|
#define sFLASH_CMD_WREN 0x06 /*!< Write enable instruction */
|
#define sFLASH_CMD_READ 0x03 /*!< Read from Memory instruction */
|
#define sFLASH_CMD_RDSR 0x05 /*!< Read Status Register instruction */
|
#define sFLASH_CMD_RDID 0x9F /*!< Read identification */
|
#define sFLASH_CMD_SE 0xD8 /*!< Sector Erase instruction */
|
#define sFLASH_CMD_BE 0xC7 /*!< Bulk Erase instruction */
|
#define sFLASH_CMD_FastRead 0x0b
|
|
#define sFLASH_WIP_FLAG 0x01 /*!< Write In Progress (WIP) flag */
|
|
#define sFLASH_DUMMY_BYTE 0xA5
|
#define sFLASH_SPI_PAGESIZE 0x100
|
|
#define sFLASH_M25P128_ID 0x202018
|
#define sFLASH_M25P64_ID 0x202017
|
|
/**
|
* @}
|
*/
|
|
/** @defgroup STM32_EVAL_SPI_FLASH_Exported_Macros
|
* @{
|
*/
|
/**
|
* @brief Select sFLASH: Chip Select pin low
|
*/
|
#define sFLASH_CS_LOW() GPIO_ResetBits(sFLASH_CS_GPIO_PORT, sFLASH_CS_PIN)
|
/**
|
* @brief Deselect sFLASH: Chip Select pin high
|
*/
|
#define sFLASH_CS_HIGH() GPIO_SetBits(sFLASH_CS_GPIO_PORT, sFLASH_CS_PIN)
|
/**
|
* @}
|
*/
|
|
|
|
/** @defgroup STM32_EVAL_SPI_FLASH_Exported_Functions
|
* @{
|
*/
|
/**
|
* @brief High layer functions
|
*/
|
void sFLASH_DeInit(void);
|
void sFLASH_Init(void);
|
void sFLASH_EraseSector(uint32_t SectorAddr);
|
void sFLASH_EraseBulk(void);
|
void sFLASH_WritePage(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite);
|
void sFLASH_WriteBuffer(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite);
|
void sFLASH_ReadBuffer(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead);
|
uint32_t sFLASH_ReadID(void);
|
void sFLASH_StartReadSequence(uint32_t ReadAddr);
|
|
/**
|
* @brief Low layer functions
|
*/
|
uint8_t sFLASH_ReadByte(void);
|
uint8_t sFLASH_SendByte(uint8_t byte);
|
uint16_t sFLASH_SendHalfWord(uint16_t HalfWord);
|
void sFLASH_WriteEnable(void);
|
void sFLASH_WaitForWriteEnd(void);
|
void sFLASH_FastRead(uint32_t ReadAddr, uint16_t NumByteToRead);
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /* __STM32_EVAL_SPI_FLASH_H */
|
/**
|
* @}
|
*/
|
|
/**
|
* @}
|
*/
|
|
/**
|
* @}
|
*/
|
|
/**
|
* @}
|
*/
|
|
/**
|
* @}
|
*/
|
|
/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
|