/**
******************************************************************************
* @file stm3210b_eval_spi_flash.h
* @author MCD Application Team
* @version V5.0.1
* @date 05-March-2012
* @brief This file contains all the functions prototypes for the
* stm3210b_eval_spi_flash firmware driver.
******************************************************************************
* @attention
*
*
© COPYRIGHT 2012 STMicroelectronics
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM3210B_EVAL_SPI_FLASH_H
#define __STM3210B_EVAL_SPI_FLASH_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm3210b_eval.h"
/** @addtogroup Utilities
* @{
*/
/** @addtogroup STM32_EVAL
* @{
*/
/** @addtogroup STM3210B_EVAL
* @{
*/
/** @addtogroup STM3210B_EVAL_SPI_FLASH
* @{
*/
/** @defgroup STM3210B_EVAL_SPI_FLASH_Exported_Types
* @{
*/
/**
* @}
*/
/** @defgroup STM3210B_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_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 STM3210B_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 STM3210B_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);
#ifdef __cplusplus
}
#endif
#endif /* __STM3210B_EVAL_SPI_FLASH_H */
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/