# Release Notes for STM3210C_EVAL Evaluation Board Drivers

Copyright © 2014 STMicroelectronics

# Purpose

This directory contains the board drivers to demonstrate the capabilities of the STM3210C Evaluation Kit.

# Update History

V6.1.1 / 07-April-2023

## Main Changes

- All source files: update disclaimer to add reference to the new license agreement.

V6.1.0 / 14-April-2017

## Main Changes

- Add STM3210C_EVAL_BSP_User_Manual.chm file
- stm3210c_eval.c/.h:
  - Update SPI/SD I/O low level API to support SD high capacity card (> 2Gbytes)
  - SD_IO_Init(): remove SD pin detecting NVIC configuration
    - Up to user application to configure the SD detecting pin with or without interrupt.
- stm3210c_eval_sd.c/.h:
  - Update BSP SD APIs to support SD high capacity card (> 2Gbytes)
- stm3210c_eval_audio.c/.h:
  - Add BSP_AUDIO_OUT_MspInit() and BSP_AUDIO_OUT_MspDeInit() as weak APIs to manage audio hardware resources initialization/de-initialization.

V6.0.2 / 29-April-2016

## Main Changes

- Add AUDIO_IO_DeInit for compatibility with common V4.0.1.
- Set the NVIC priority to the lowest possible to not interfere with user settings.

V6.0.1 / 18-December-2015

## Main Changes

- Rename GPIO_SPEED_HIGH to GPIO_SPEED_FREQ_HIGH for compatibility with STM32F1xx HAL Drivers V1.0.2.
- Rename GPIO_SPEED_MEDIUM to GPIO_SPEED_FREQ_MEDIUM for compatibility with STM32F1xx HAL Drivers V1.0.2.

V6.0.0 / 16-December-2014

## Main Changes

- Major update based on STM32Cube specification: drivers architecture and APIs modified vs. V5.1.0 and thus the 2 versions are not compatible.
- This version has to be used only with STM32CubeF1 based development.

V5.1.0 / 08-January-2013

## Main Changes

- stm3210e_eval_lcd.c: update to support new LCD AM240320LGTNQW00H (controller HX8347-D).

V5.0.1 / 05-March-2012

## Main Changes

- All source files: license disclaimer text update and add link to the License file on ST Internet.

V5.0.0 / 03-February-2012

## Main Changes

- All source files: update disclaimer to add reference to the new license agreement
- Update STM32 Evaluation Board Drivers architecture and folder organization, full API compatibility maintained vs. V4.6.2
  - All the HW drivers required for each board are provided within this board folder. The concerned drivers are:
    - stm32_eval_i2c_ee.c.h: I2C M24Cxx EEPROM memory driver
    - stm32_eval_i2c_tsensor.c.h: I2C LM75 temperature sensor driver
    - stm32_eval_spi_flash.c.h: SPI M25Pxxx FLASH memory driver
    - stm32_eval_sdio_sd.c.h: SDIO SD Card memory driver
    - stm32_eval_spi_sd.c.h: SPI SD Card memory driver
    - These drivers were moved from to 32XXX_EVAL folder(s)
  - Common folder contains only drivers for the fonts and log module used by the LCD driver
  - stm32_eval.c.h files removed, as consequence you need to perform the following update on your project configuration (based on EVAL drivers V4.6.2):
    - In the project files, add your EVAL board driver source file “stm3210e_eval.c” instead of “stm32_eval.c”
    - Include your EVAL board driver header file #include “stm3210e_eval.h” instead of #include “stm32_eval.h”
    - If you are using the EVAL board’s LCD, you need to add the include of the LCD header file #include “stm3210e_eval_lcd.h”
      - If you are using the LCD log module, after copying it to the application folder you have to edit it and update the name of the LCD header file. For more details, refer to the lcd_log_conf_template.h driver description.
- stm3210e_eval_lcd.c
  - Remove “static” from TextColor and BackColor variables declaration (need to be changed from other application modules)
- stm3210e_eval.h/.c
  - change value of “SDIO_TRANSFER_CLK_DIV” define from 0 to 1 to achieve SD max frequency at 24MHz.
  - Remove SD_DMAEndOfTransferStatus() function as now the DMA transfer is tracked using DMA End of transfer interrupt.
  - Update SD_LowLevel_DMA_TxConfig() and SD_LowLevel_DMA_RxConfig() functions to enable the DMA transfer complete IT
- stm3210e_eval_sdio_sd.h/.c
  - Add new function SD_ProcessDMAIRQ() to be called from the DMA end of transfer interrupt.
  - Add some improvements by handling SDIO errors and adding timeout for different loops.
  - Update to support SDHC memory cards with capacity greater than 4 GB
    - SD_CardInfo structure, define CardCapacity variable as 64-bit long (instead of 32-bit)
    - Declare ReadAddr and WriteAddr parameters in SD_ReadBlock(),SD_WriteBlock(), SD_ReadMultiBlocks() and SD_WriteMultiBlocks() as 64-bit long (instead of 32-bit)
  - Refer to the driver header file’s comments for more information on how to use the provided API.
- stm3210e_eval_fsmc_nor.c
  - NOR_ProgramBuffer() function: remove this comment “This function must be used only with S29GL128P NOR memory.”

V4.6.2 / 22-July-2011

## Main Changes

- STM3210C_EVAL
  - stm3210c_eval_lcd.c: update to support new LCD AM240320D5TOQW01H (controller ILI9325)
- STM322xG-EVAL
  - stm322xg_eval.h: fix value of the SDIO clock divider (SDIO_TRANSFER_CLK_DIV constant) to 2 instead of 0
  - stm322xg_eval_lcd.c: increase FSMC AddressSetupTime value from 1 to 3 to be compliant with some LCD access timing
  - stm322xg_eval_audio_codec.c: update Codec_CtrlInterface_Init() and Codec_GPIO_Init() functions to not reconfigure the I2C peripheral if it’s already enabled and configured (to avoid configuring the I2C twice when using both Audio codec and IO Expander drivers in the same application).

V4.6.1 / 18-April-2011

## Main Changes

- Update some STM322xG_EVAL drivers (no change on the API) to fix warnings with TASKING C compiler.
- Change the Release Notes name to STM32 Evaluation Board Drivers
- stm322xg_eval.c
  - SD_LowLevel_Init(): change SDIO pins speed configuration to “GPIO_Speed_25MHz”

V4.6.0 / 11-Mars-2011

## Main Changes

- Official version supporting STM322xG_EVAL evaluation board RevB (for STM32F2xx devices).
- Common
  - Add new LCD log utility drivers: The LCD Log module allows to automatically set a header and footer on any application using the LCD display and allows to dump user, debug and error messages by using the following macros: LCD_ErrLog(), LCD_UsrLog() and LCD_DbgLog().
- Note: the STM322xG_EVAL board RevA was wrongly named STM3220F_EVAL

V4.5.0 / 07-Mars-2011

## Main Changes

- stm32_eval_sdio_sd.c.h: driver improvement
  - SD Clock increased to 24MHz to improve the data transfer performance.
  - Add new functions to check the SDIO peripheral and SD Card status at any time: SD_WaitReadOperation(), SD_WaitWriteOperation(). The software sequence is little bit changed but without any impact on driver API. For more details, refer to the stm32_eval_sdio_sd.c driver description.
  - Add new structure containing the SD Status register parameters. This structure is called by the SD_SendSDStatus() function.
  - Transfers mode updated
    - Read/Write Block using Polling and DMA modes
    - Read/Write Multi Blocks using DMA mode only
    - Interrupt mode removed
  - Data transfer functions are managing only fixed Block size (512-byte)
- STM32100B-EVAL
  - stm32100b_eval_cec.c: fix some strict ANSI-C errors
- STM32100E-EVAL
  - stm32100e_eval_cec.c: fix some strict ANSI-C errors

V4.4.0 / 31-December-2010

## Main Changes

- Add new directory for STM32L152-EVAL board containing the following files:
  - stm32l152_eval.h/.c, stm32l152_eval_lcd.h/.c, stm32l152_eval_glass_lcd.h/.c, stm32l152_eval_i2c_ee.h/.c
- Add support for the STM32100E-EVAL Rev B: SPI FLASH CS pin “sFLASH_CS_PIN” changed from PB.02 to PE.06.
- stm32100e_eval_lcd.h/.c: Add support for “LCD_ILI9325” LCD controller.
- stm32100e_eval_fsmc_onenand.h/.c driver updated to correct asynchronous and synchronous read operations procedures.

V4.3.0 / 15-Octobre-2010

## General

- I2C EEPROM, Temperature Sensor and IOE Expander drivers updated to use the DMA for read/write transfer and add more robustness
- SD Card (SDIO) driver updated to add more robustness
- SPI Flash and SD Card (SPI) drivers: SPI MISO pin configuration changed to Input Floating

## Utilities

- Add new directory for STM32100E-EVAL board containing the following files:
  - stm32100e_eval.h/.c, stm32100e_eval_lcd.h/.c, stm32100e_eval_cec.h/.c, stm32100e_eval_fsmc_onenand.h/.c, stm32100e_eval_fsmc_sram.h/.c, stm32100e_eval_ioe.h/.c
- Common
  - stm32_eval_sdio_sd.c: Update the DMA End of Transfer Check loop inside the SD_ReadBlock(), SD_WriteBlock(), SD_ReadMultiBlocks() and SD_Write MultiBlocks().
  - stm32_eval_i2c_ee.c/.h
    - Enhanced sEE_WaitEepromStandbyState() function for more robustness.
    - Enhanced Read and Write operations to manage I2C limitations.
    - Add Timeout management with user callback implementation which allows recovering from I2C bus errors.
    - Add critical sections user callbacks allowing to disable then enable interrupts when I2C operation require to be not interrupted.
  - stm32_eval_i2c_tsensor.c/.h
    - Enhanced I2C communication functions by using DMA for registers Read and Write operations.
    - Add Timeout management with user callback implementation which allows recovering from I2C bus errors.
- STM32100B_EVAL
  - stm32100b_eval.h: Add LM75 DMA defines.
  - stm32100b_eval_lcd.c: Change “SPI_FLASH” by “sFLASH” in LCD_DrawBMP() function.
- STM3210B_EVAL
  - stm3210b_eval.h: Add LM75 DMA defines.
  - stm3210b_eval_lcd.c: Change “SPI_FLASH” by “sFLASH” in LCD_DrawBMP() function.
- STM3210C_EVAL
  - stm3210c_eval.h: Add EEPROM driver Timeout define.
  - stm3210c_eval_lcd.c: Change “SPI_FLASH” by “sFLASH” in LCD_DrawBMP() function.
  - stm3210c_eval_i2c_ioe.c
    - Enhanced I2C communication functions by using DMA for registers Read and Write operations.
    - Add Timeout management with user callback implementation which allows recovering from I2C bus errors.
    - change IOE_I2C_SPEED from “400000” to “300000”.
- STM3210E_EVAL
  - stm3210e_eval.c: change “void SD_WaitForDMAEndOfTransfer(void)” to “uint32_t SD_DMAEndOfTransferStatus(void)”.
  - stm3210e_eval.h: Add LM75 DMA defines.
  - stm3210e_eval_fsmc_nand.h: remove “NAND_CMD_AREA_TRUE1” define.
  - stm3210e_eval_fsmc_nand.c: Update FSMC timing in NAND_Init() function to be aligned with AN2784 application note.
  - stm3210e_eval_fsmc_nor.c
    - NOR_Init() function: add FSMC_AsynchronousWait field to FSMC_NORSRAMInitStructure
  - stm3210e_eval_fsmc_sram.c
    - Update FSMC timing in SRAM_Init() function to be aligned with AN2784 application note.
    - SRAM_Init() function: add FSMC_AsynchronousWait field to FSMC_NORSRAMInitStructure
  - stm3210e_eval_lcd.c
    - LCD_FSMCConfig() function: add FSMC_AsynchronousWait field to FSMC_NORSRAMInitStructure

V4.2.0 / 16-April-2010

## General

- I2C EEPROM driver update to use the DMA to perform data transfer to/from EEPROM memory.

## Utilities

- STM32_EVAL
  - stm32_eval_i2c_ee.c: updated to use the DMA to perform data transfer to/from EEPROM memory. For more details, refer to the description provided within this file.
  - stm3210c_eval.c: add low level functions to configure the DMA (needed for I2C EEPROM driver)
  - stm3210c_eval_ioe.c: add a delay in IOE_TS_GetState() function to wait till the end of ADC conversion
  - stm3210e_eval_fsmc_nor.c: add PD6 pin configuration in NOR_Init() function
  - stm3210b_eval_lcd.c: remove the second “;” from “static void PutPixel(int16_t x, int16_t y);;”

V4.1.0 / 03-January-2010

## General

- Add support for STM32 Low-density Value line (STM32F100x4/6) and Medium-density Value line (STM32F100x8/B) devices.
- Add support for the STMicroelectronics STM32100B-EVAL evaluation board.

## Utilities

- STM32_EVAL
  - Add new directory “Common” containing a common drivers for all STM32 evaluation boards: fonts.h/.c, stm32_eval_i2c_ee.h/.c, stm32_eval_spi_flash.h/.c, stm32_eval_i2c_tsensor.h/.c, stm32_eval_spi_sd.h/.c and stm32_eval_sdio_sd.h/.c
  - Add new driver for the STM32100B-EVAL managing Leds, push button and COM ports.
  - New HDMI CEC High level driver.
  - For all LCD drivers new fonts has been added.
  - New FSMC memories drivers for STM3210E-EVAL board: stm3210e_eval_fsmc_sram.h/.c, stm3210e_eval_fsmc_nor.h/.c and stm3210e_eval_fsmc_nand.h/.c.