STM32303C_EVAL BSP User Manual: stm32303c_eval_eeprom.c File Reference

STM32303C EVAL BSP Drivers

stm32303c_eval_eeprom.c File Reference

This file provides a set of functions needed to manage a M24LR64 or M24M01 I2C EEPROM memory, or a M95M01 SPI EEPROM memory. More...

Go to the source code of this file.

Functions

static uint32_t EEPROM_I2C_Init (void)
 Initializes peripherals used by the I2C EEPROM driver.
static uint32_t EEPROM_I2C_ReadBuffer (uint8_t *pBuffer, uint16_t ReadAddr, uint32_t *NumByteToRead)
 Reads a block of data from the I2C EEPROM.
static uint32_t EEPROM_I2C_WritePage (uint8_t *pBuffer, uint16_t WriteAddr, uint32_t *NumByteToWrite)
 Writes more than one byte to the EEPROM with a single WRITE cycle.
static uint32_t EEPROM_I2C_WaitEepromStandbyState (void)
 Wait for EEPROM I2C Standby state.
static uint32_t EEPROM_SPI_Init (void)
 Initializes peripherals used by the SPI EEPROM driver.
static uint32_t EEPROM_SPI_ReadBuffer (uint8_t *pBuffer, uint16_t ReadAddr, uint32_t *NumByteToRead)
 Reads a block of data from the SPI EEPROM.
static uint32_t EEPROM_SPI_WritePage (uint8_t *pBuffer, uint16_t WriteAddr, uint32_t *NumByteToWrite)
 Writes more than one byte to the EEPROM with a single WRITE cycle.
static uint32_t EEPROM_SPI_WaitEepromStandbyState (void)
 Wait for EEPROM SPI Standby state.
uint32_t BSP_EEPROM_Init (void)
 Initializes peripherals used by the EEPROM device selected.
void BSP_EEPROM_SelectDevice (uint8_t DeviceID)
 Select the EEPROM device to communicate.
uint32_t BSP_EEPROM_ReadBuffer (uint8_t *pBuffer, uint16_t ReadAddr, uint32_t *NumByteToRead)
 Reads a block of data from the EEPROM device selected.
uint32_t BSP_EEPROM_WriteBuffer (uint8_t *pBuffer, uint16_t WriteAddr, uint32_t NumByteToWrite)
 Writes buffer of data to the EEPROM device selected.
__weak void BSP_EEPROM_TIMEOUT_UserCallback (void)
 Basic management of the timeout situation.

Variables

__IO uint16_t EEPROMAddress = 0
__IO uint16_t EEPROMPageSize = 0
__IO uint16_t EEPROMDataRead
__IO uint8_t EEPROMDataWrite
static EEPROM_DrvTypeDefEEPROM_SelectedDevice = 0
EEPROM_DrvTypeDef EEPROM_I2C_Drv
EEPROM_DrvTypeDef EEPROM_SPI_Drv

Detailed Description

This file provides a set of functions needed to manage a M24LR64 or M24M01 I2C EEPROM memory, or a M95M01 SPI EEPROM memory.

Author:
MCD Application Team =================================================================== Notes:
  • This driver is intended for STM32F30x families devices only.
  • The I2C EEPROM memory (M24LR64) is available on separate daughter board ANT7-M24LR-A, which is provided with the STM32F303C EVAL board. To use this driver with M24LR64, you have to connect the ANT7-M24LR-A to CN1 connector of STM32F303C EVAL board. Jumper JP5 and JP6 needs to be set in I2C2 position. Jumper JP8 (E2P WC) needs to be set.
  • The I2C EEPROM memory (M24M01) is mounted on the STM32F303C EVAL board. Jumper JP5 and JP6 needs to be set in I2C2_F position. Jumper JP8 (E2P WC) needs to be set.
  • The SPI EEPROM memory (M95M01) is available directly on STM32F303C EVAL board. ===================================================================

It implements a high level communication layer for read and write from/to this memory. The needed STM32F30x hardware resources (I2C, SPI and GPIO) are defined in stm32303c_eval.h file, and the initialization is performed depending of EEPROMs in EEPROM_I2C_IO_Init() or EEPROM_SPI_IO_Init() functions declared in stm32303c_eval.c file. You can easily tailor this driver to any other development board, by just adapting the defines for hardware resources and EEPROM_I2C_IO_Init() or EEPROM_SPI_IO_Init() functions.

Note:
In this driver, basic read and write functions (BSP_EEPROM_ReadBuffer() and BSP_EEPROM_WriteBuffer()) use Polling mode to perform the data transfer to/from EEPROM memories. +-----------------------------------------------------------------+ | Pin assignment for M24M01 EEPROM | +---------------------------------------+-----------+-------------+ | STM32F30x I2C Pins | EEPROM | Pin | +---------------------------------------+-----------+-------------+ | . | NC | 1 | | . | E1(VDD) | 2 (3.3V) | | . | E2(GND) | 3 (0V) | | . | VSS | 4 (0V) | | EEPROM_I2C_SDA_PIN/ SDA | SDA | 5 | | EEPROM_I2C_SCL_PIN/ SCL | SCL | 6 | | . | /WC(VSS)| 7 (0V) | | . | VDD | 8 (3.3V) | +---------------------------------------+-----------+-------------+ +-----------------------------------------------------------------+ | Pin assignment for M24LR64 EEPROM | +---------------------------------------+-----------+-------------+ | STM32F30x I2C Pins | EEPROM | Pin | +---------------------------------------+-----------+-------------+ | . | E0(GND) | 1 (0V) | | . | AC0 | 2 | | . | AC1 | 3 | | . | VSS | 4 (0V) | | EEPROM_I2C_SDA_PIN/ SDA | SDA | 5 | | EEPROM_I2C_SCL_PIN/ SCL | SCL | 6 | | . | E1(GND) | 7 (0V) | | . | VDD | 8 (3.3V) | +---------------------------------------+-----------+-------------+

+-----------------------------------------------------------------+ | Pin assignment for M95M01 EEPROM | +---------------------------------------+-----------+-------------+ | STM32F30x SPI Pins | EEPROM | Pin | +---------------------------------------+-----------+-------------+ | EEPROM_CS_PIN | ChipSelect| 1 (/S) | | EEPROM_SPI_MISO_PIN/ MISO | DataOut | 2 (Q) | | EEPROM_SPI_WP_PIN | WR Protect| 3 (/W) | | . | GND | 4 (0 V) | | EEPROM_SPI_MOSI_PIN/ MOSI | DataIn | 5 (D) | | EEPROM_SPI_SCK_PIN/ SCLK | Clock | 6 (C) | | . | Hold | 7 (/HOLD)| | . | VCC | 8 (3.3 V)| +---------------------------------------+-----------+-------------+

Attention:

© COPYRIGHT(c) 2016 STMicroelectronics

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file stm32303c_eval_eeprom.c.

Generated on Wed May 31 2017 10:00:44 for STM32303C_EVAL BSP User Manual by   doxygen 1.7.6.1