Release Notes for 

STM32F10x, STM32L1xx and STM32F3xx USB Full Speed Device Library

Copyright 2013 STMicroelectronics

 

Contents

  1. Update History
  2. License

Update History

V4.0.0 / 21-January-2013

Main Changes

  • Add support of STM32F30xx and STM32F37xx devices
  • Remove support of the USB OTG Full speed in device (peripheral) mode embedded in the STM32F105x/7x devices
    • All source files starting with prefix otgd_fs (ex. otgd_fs_pcd.c/.h) were removed
    • There is no change on the API dealing with the USB FS Device  peripheral, full compatibility is maintained vs. V3.4.0
    • The  STM32F105x/7x devices are supported by the STM32F105/7xx, STM32F2xx and STM32F4xx USB On-The-Go Host and Device Library (UM1021)
  • All examples
    • usb_pwr.c and usb_istr.c files updated to make the code more robust
  • Custom HID example
    • Add GET_Report/Set_Report features
  • Add composite "Mass Storage and HID" example
  • Add VirtualComport_Loopback example
  • Remove USB Audio Streaming example (used only for STM32F105x/7x devices)
  • Remove "stm32_usb-fs-device_lib_contents.htm" file: the information provided in this html page are available in UM0424

Contents


Development Toolchains

  • IAR Embedded Workbench for ARM (EWARM) toolchain V6.50 + J-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V4.50 + ULINK
  • Raisonance IDE RIDE7 (RIDE) toolchain v1.46 + Rlink Pro
  • Atollic TrueSTUDIO toolchain V3.3.0 + ST-LINK
  • TASKING VX-toolset for ARM Cortex-M V4.3r1 + ST-LINK

 

Supported Devices and EVAL boards

  • STM32F10x Medium-density devices and STM3210B-EVAL board
  • STM32F10x High-density devices and STM3210E-EVAL board 
  • STM32F10x XL-density devices STM3210E-EVAL_XL board 
  • STM32L1xx Medium-Density devices and STM32L152-EVAL board  
  • STM32L1xx High-Density devices and STM32L152D-EVAL board
  • STM32F37xx devices and STM32373C-EVAL board 
  • STM32F30xx devices and STM32303C-EVAL board 

V3.4.0 / 29-June-2012

Main Changes

  • All source files: license disclaimer text update and add link to the License file on ST Internet.
  • Add support of STM32L1xx High Density and Medium Density Plus devices
  • Use latest version of STM32F10x and STM32L1xx HAL and BSP components (for more details refer to each component's release notes):
    • CMSIS drivers: update directory structure to be compliant with CMSIS V2.1, full API compatibility maintained with previous version
    • Standard Peripherals Drivers: miscellaneous bug fix and enhancement
    • STM32xxx_EVAL board drivers: update drivers architecture and folder organization, full API compatibility maintained vs. V4.4.0
  • All examples: 
    • Project settings updated to be in line with changes made on latest version of the STM32F10x and STM32L1xx HAL and BSP drivers
    • Remove projects for HiTOP toolchain
    • Add projects for TASKING toolchain
    • Add support of STM32L1xx High Density devices and STM32L152D_EVAL board
    • Source code update to be in line with latest version of STM32xxx_EVAL board drivers
  • JoyStickMouse example
    • usb_pwr.c: remove duplicated function RCC_HSEConfig()


Contents


Development Toolchains

  • IAR Embedded Workbench for ARM (EWARM) toolchain V6.30.7 + J-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V4.50 + ULINK
  • Raisonance IDE RIDE7 (RIDE) toolchain (RIDE7 IDE:7.36, RKitARM for RIDE7:1.38) + Rlink Pro
  • Atollic TrueSTUDIO toolchain V3.0.0 + ST-LINK
  • TASKING VX-toolset for ARM Cortex-M V4.2r1 + ST-LINK

V3.3.0 / 21-March-2011

Main Changes

  • Add support for STM32L15x Medium-Density Low-Power devices.
  • Project
    • All demos: add support for STM32L15x devices.
    • Device_Firmware_Upgrade demo: 
      • Update the project to use the library SPI flash driver stm32_eval_spi_flash.c
      • dfu_mal.c: add explanation of write and erase timings and use defines for all values
      • usb_conf.h: add defines for Erase/Write timing values for all memories
      • For STM32L15x devices, the Joystick Up button is used  instead of Key push button to control entering DFU mode or jump to user application
    • Custom HID demo: for STM32L15x devices, the Right/Left Joystick buttons are used instead of Key/Tamper push buttons
  • Utilities
    • Binary folder : update the hextobin.bat and axftobin.bat files to support the STM32L15x devices template project
    • DFU_images folder: update DFU images for all demos

Contents


Development Toolchains

  • IAR Embedded Workbench for ARM (EWARM) toolchain v5.50
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain v4.13
  • Raisonance IDE RIDE7 (RIDE) toolchain (RIDE7 v7.24 & Rkit ARM v1.22.09.0254)
  • Hitex IDE/Debugger (HiTOP) toolchain v5.32 (compiler: Tasking v3.0r3)
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v1.3.0

V3.2.1 - 07/05/2010

  1. General
    • Fix bug in usb_core.c (only for  STM32F105x/7x Connectivity Line devices ).
  2. Libraries
    • STM32_USB-FS-Device_Driver
      • usb_core.c
        • Setup0_Process() function: remove call to  OTGD_FS_EP0StartXfer() function, to fix issue when the  Endpoint0 is stalled and no further setup request is received.
  3. Project
    • The library and demonstrations firmware are provided and have been tested with the following toolchains:
      • EWARM v5.42
      • MDK- ARM v4.10
      • RIDE7 v7.24 & Rkit ARM v1.22.09.0254
      • HiTOP5.32 (compiler: Tasking v3.0r3)
      • TrueSTUDIO v1.3.0
    • The Standard Peripherals Library components used in this version are:
      • CMSIS: v1.30
      • Peripheral drivers: v3.3.0
      • Utilities: v4.2.0
    • AudioStreaming Demo:
      • MDK-ARMproject: in the configuration "STM3210C-EVAL-14MHz", add HSE_Value = 14745600 define in the compiler preprocessor.
  4. Utilities\DFU_images
    • DFU
      • Update all STM3210C-EVAL DFU images (available in folder " STM32_USB-FS-Device_Lib\Utilities\DFU_images "). .

V3.2.0 - 05/14/2010

  1. General
    • Add support for STM32F10x XL-Density devices.
    • Solve issues and enhance the Virtual COM Port demo. 
    • Update drivers to support Isochronous IN transfers.
    • Add project for TrueSTUDIO toolchain. 
    • Update demos projects to use latest version V3.3.0 of Standard Peripherals Library.
  2. Libraries
    • STM32_USB-FS-Device_Driver
      • otgd_fs_cal.c/h
        • Update all registers and bit names to be in line with the reference manual description and remove unused registers/bits.
        • Update function OTGD_FS_EPStartXfer() to support Isochronous IN transfers.
        • Remove unused code in OTGD_FS_EPStartXfer() function.
        • Internal core delay functions ( mDelay() and uDelay() in  otgd_fs_cal.h )modified to use SysTick timer or other user-defined counting mechanism through a user defined function:  USB_OTG_BSP_uDelay() .This function prototype is declared in library header file ( otgd_fs_cal.h ) and should be implemented in user application. In all provided demos a template of the function USB_OTG_BSP_uDelay() is implemented in  hw_config.c file.
      • otgd_fs_pcd.c
        • Remove extra NAKs and PID toggling and update impacted functions accordingly.
      • otgd_fs_pcd.c
        • Update function OTGD_FS_Handle_InEP_ISR() to support Isochronous IN transfers.
        • Remove extra NAKs and PID toggling and update impacted functions accordingly.
  3. Project
    • The library and demonstrations firmware are provided and have been tested with the following toolchains:
      • EWARM v5.42
      • MDK- ARM v4.10
      • RIDE7 v7.24 & Rkit ARM v1.22.09.0254
      • HiTOP5.32 (compiler: Tasking v3.0r3)
      • TrueSTUDIO v1.3.0
    • The Standard Peripherals Library components used in this version are:
      • CMSIS: v1.30
      • Peripheral drivers: v3.3.0
      • Utilities: v4.2.0
    • All demos 
      • hw_config.c: Serial Number definition ( Get_SerialNum() function in all hw_config.c demo files) modified to provide host with a string in Unicode format (instead of device Unique ID in hex format).
    • Virtual_COM_Port demo
      • Demo enhanced by using more reliable data buffering algorithm (largecircular buffer for IN transfers using SOF synchronization) and modifying data OUT writing algorithm. For more details, please refer to the "readme.txt" file in the demo folder.
    • Custom_HID demo
      • usb_desc.c: Modify the Usage page code from 0x8C to "Vendor defined usage page" ( 0xFF00 )
    • Mass_Storage demo
      • Update the project to use the library SD card drivers  stm32_eval_spi_sd.c  and  stm32_eval_sdio_sd.c .
  4. Utilities\DFU_images
    • Binary
      • Update the hextobin.bat and axftobin.bat files to support the XL-Density devices template project.
    • DFU
      • Update DFU images for all demos (available in folder " STM32_USB-FS-Device_Lib\Utilities\DFU_images ").

Note: STM32F10x XL-Density devices are supported with the same boards as High-Density devices (ie. STM3210E-EVAL boards).

V3.1.1 - 04/07/2010

  1. General
    • Solve issue for Virtual Com Port demo on STM32F105x/7x Connectivity Line devices; change the FIFO allocation in the USB OTG Core layer to define statically the Rx and all Tx FIFO sizes following the application configuration in the  usb_config.h file (defined in each project).
    • Add project for HiTOP toolchain
  2. Libraries
    • STM32_USB-FS-Device_Driver
      • otgd_fs_cal.c
        • Initialize some local variables
        • OTGD_FS_CoreInitDev() function: update FIFO allocation to handle user configuration in the usb_config.h file
      • otgd_fs_int.c
        • Initialize some local variables
        • OTGD_FS_Handle_RxStatusQueueLevel_ISR() function: remove commented code
        • OTGD_FS_PCD_WriteEmptyTxFifo() function: increment xfer_buff after writing to the FIFO
        • OTGD_FS_Handle_InEP_ISR() function: code updated to manage all endpoints (previously supporting only endpoint 1)
      • otgd_fs_pcd.c
        • optimize coding of OTGD_FS_PCD_EP_Open() function
        • Initialize some local variables
  3. Project
    • The library and demonstrations firmware are provided and have been tested with the following toolchains:
      • IAR: EWARM v5.41
      • RVMDK: ARM-MDK v4.10
      • RIDE: RIDE7 v7.24 & Rkit ARM v1.22.09.0254
      • HiTOP: HiTOP5.32 (compiler: Tasking v3.0r3)
    • All demos 
      • usb_config.h: add the definition of FIFO partitions for STM32F105x/7x Connectivity Line devices (for more details refer to the comments within this file)
    • Audio_Speaker demo
      • usb_desc.c: change error in USB Descriptor comment
    • Virtual Com Port demo: update USART interrupt service routine to handle the OverRun error
  4. Utilities\DFU_images
    • Update DFU images of Virtual Com Port demo

 V3.1.0 - 10/30/2009

  1. General
    • Supports the USB OTG Full speed in device (peripheral) mode  embedded in the STM32F105x/7x Connectivity Line devices.
    • Implements SIL layer (Simplified Interface Layer) for initialization, read and write operations on non control endpoints.
    • Audio Streaming demonstration added for  STM32F105x/7x Connectivity Line devices.
    • Update with STM32F10x Standard Peripherals Library V3.1.2
  2. Libraries
    • STM32_USB-FS-Device_Driver
      • Enhancements:
        • Minor modifications in usb_int.c : replace some functions by macros to improve speed.
        • Implemented new medium layer: SIL (Simplified Interface Layer, usb_sil.c /.h) allowing simple initialization ,  read and write operations on non control Endpoints.
      • New features:
        • Added Peripheral interface layer to support Connectivity Line USB peripheral: ( otgd_fs_dev.c /.h, otgd_fs_cal.c /.h, otgd_fs_pcd.c /.h, otgd_fs_int.c /.h, otgd_fs_regs.h ) (managed by pre-compiler defines).
        • Minor modifications on usb_core.c to support Connectivity Line USB peripheral (managed by pre-compiler defines).
    • STM32F10x_StdPeriph_Driver
      • Update with STM32F10x Standard Peripherals Library V3.1.2
  3. Project
    • The library and demonstrations firmware are provided and have been tested with the following toolchains:
      • IAR: EWARM v5.42
      • RVMDK: ARM-MDK v3.80a
      • RIDE: RIDE7 v7.24 & Rkit ARM v1.22.09.0254
    • Projects for HiTOP toolchain will be provided in next version.
    • Custom HID, Joystick Mouse, Device Firmware Upgrade, Mass Storage and Virtual Com Port demos have been updated to support Connectivity Line devices and use the SIL layer (Simplified Interface Layer).
    • Mass Storage demo: minor modifications on msd.c driver to support larger range of micro SD cards.
    • Joystick Mouse: Update of Remote wake-up function to operate properly.
    • Device Firmware Upgrade: 
      • DFU Descriptors updated.
    • Added Audio Streaming demo for Connectivity Line devices.
  4. Utilities
    • Binary
      • Updated the hextobin.bat and axftobin.bat files to support the connectivity line template project.
      • Updated the hextobin.bat file to use hex files generated by IAR toolchain.
    • DFU
      • Added dfu image for Connectivity Line devices.

V3.0.1 - 04/27/2009

  • STM3210x USB Library USB-FS-Device Mass Storage ARM startup file updated: increase stack size.

V3.0.0 - 04/06/2009

  • STM3210x USB Library renamed to STM32 USB-FS-Device Library (USB-FS- Device_Lib )
  • STM32 USB-FS-Device Library is full CMSIS compliant
  • STM32 USB-FS-Device Library Structure is updated.
  • STM32 USB-FS-Device Library Package Architecture is enhanced
  • Update with STM32F10x Standard Peripherals Library V3.0.0. 

For more details, please refer to AN2953 "How to migrate from the STM32F10xxx firmware library V2.0.3 to the STM32F10xxx standard peripheral library V3.0.0".

V2.2.1 - 09/22/2008

  • Device_Firmware_Upgrade demo
    • Update the FSMC NOR Driver and SPI FLASH Driver
  • Mass_Storage demo
    • Update the FSMC NAND , SD Card Drivers
  • Virtual_COM_Port demo
    • Update the USART Parity Configuration

V2.2.0 - 06/13/2008

  • Device_Firmware_Upgrade demo
    • Add example with preconfigured projects for RVMDK, EWARMv4, EWARMv5, RIDE and HiTOP toolchain to demonstrate how to create a binary image to be loaded with the DFU      
  • Remove the Firmware License Agreement file
  • Update the source files's header to remove reference to the License

V2.1 - 05/30/2008

  • Device_Firmware_Upgrade demo
    • Resolve the issue of jump to user program with some toolchain. At each device startup, if user doesn't select to enter DFU mode the application program will check if user code is programmed starting from address 0x8003000 (test if the initial Stack Pointer is programmed at this address), and if so it will jump and execute this code. But since some toolchain places the initial Stack Pointer on the top of the SRAM memory (0x20010000 for High-density devices, 0x20005000 for Medium-density devices), this test will not detect that the Stack Pointer is programmed due to wrong definition of mask variable value. This issue is fixed in main.c file at line60: "0x2FFF0000" changed to "0x2FFE0000".

V2.0 - 05/23/2008

  1. General
  • Update with STM32F10x FWLib V2.0 to support the extra peripherals and features embedded in the STM32 High-density devices.   
  • Add Firmware License Agreement file
  • For more details about USB Library and demos implementation, please refer to the User manual "UM0424 STM32F10xxx USB development kit   available for download from the ST microcontrollers website: www.st.com/stm32.
  • Glossary
    • Medium-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 32 and 128 Kbytes.
    • High-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 256 and 512 Kbytes.   
  1. USB library
  • Correct the bug of control transfer when the data to transfer is an exact multiple of wMaxPacketSize for the endpoint. In this case the device should return a zero-length packet to indicate the end of the Data stage. For more details regarding this condition please refer to the section 8.5.3.2 of the USB 2.0 specification.

     The functions DataStageIn ( ) and Data_Setup0() in the file " usb_core.c " are
     modified to support this feature. 

  • Correct the Get Status request (bus/self power feature reporting): function  Standard_ GetStatus ( u16 Length) in the usb_core.c updated.
  1. USB demos
  • Add a CUSTOM_HID demo with PC applet (source code provided ) to give an example of how to create a customized HID device based on windows native driver.
  • All demos ported to run on STMicroelectronics STM3210E-EVAL evaluation board  (in addition to STM3210B-EVAL)   
  • JoyStickMouse  
    • add the support of the remote wake-up using the Key push button as wake-up  source.
    • add the support of STM32 STOP Mode entry/exit during USB Suspend/resume states.
  • DFU 
    • update to support internal Flash programming of STM32 High-density devices
    • add support of NOR flash memory mounted on the STM3210E-EVAL board ( this memory can be: M29W128F, M29W128G or S29GL128)
    • add an intermediary layers to separate media access and USB class (files  dfu_mal.c /h files and nor_if.c /h)
  • Mass Storage Demo 
    • add support of NAND flash memory mounted on the STM3210E-EVAL board (only small page is supported (512Byte/page) and ECC is not supported)
    • add an intermediary layers to separate media access and USB class (files mass_mal.c /h files and nand_if.c /h)
  • All demos 
    • add the support of STMicroelectronics STM3210E-EVAL evaluation board (in addition to STM3210B-EVAL)      
    • add the support of a unique serial number string descriptor based on the STM32 Device Unique ID register.
    • first plug bug: in the first plug on a new PC, Windows sends a specific Get string descriptor (OS descriptor index 0xEE). This descriptor is not supported by the demos so the function " GetStringDescriptor (u16 Length)" is modified to STALL all Get string descriptor requests with an index greater than the number of supported string descriptors(file usb_prop.c ). 
    • the infinite loop in the USB initialization is removed to be compliant with embedded OSs (file usb_prop.c ).
    • update the " bDeviceState " possible values (file usb_pwr.h ) to be:
      • UNCONNECTED
      • ATTACHED
      • POWERED
      • SUSPENDED
      • ADDRESSED
      • CONFIGURED  
      •  The " bDeviceState " is updated according to the device state in the files  usb_prop.c and hw_config.c     
    • current feature initialization: the field " pInformation -> Current_Feature " is initialized on each USB reset (file usb_prop.c ).    
    • update all device and configuration descriptors to be USB 2.0 compliant  and bus powered devices (file usb_desc.c ). 

V1.0 - 10/08/2007

  • Updated with STM32F10x FWLib V1.0 
  • All demos
    • Add project with RIDE toolchain
    • Product descriptor updated
    • hw_config.c
      • PD.09 pin configured as Output open-drain instead of Output push-pull
  • Device_Firmware_Upgrade demo
    • main.c 
      • Initialize user application's Stack Pointer before jumping to user application

V0.3 - 05/21/2007

  • Created.

License

Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); You may not use this package except in compliance with the License. You may obtain a copy of the License at:


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.


For complete documentation on STM32 Microcontrollers visit www.st.com/STM32