/** ****************************************************************************** * @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****/