Release Notes for 

STM32F10x and STM32L1xx USB Full Speed Device Library

Copyright 2011 STMicroelectronics

 

Contents

  1. STM32F10x and STM32L1xx USB-FS-Device Library update History
  2. License

STM32F10x and STM32L1xx USB-FS-Device Library update History

 

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
      • Demoenhanced by using more reliable data buffering algorithm (largecircular buffer for IN transfers using SOF synchronization) andmodifying 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 defintion 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 porvided ) 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 ( thismemory 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 embeded 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 complient  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

The enclosed firmware and all the related documentation are not covered by a License Agreement, if you need such License you can contact your local STMicroelectronics office.

THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.

 


For Complete on STM32( CORTEX M3) 32-Bit Microcontrollers visit www.st.com/STM32