History: usbh_drv_stm32_otg


This page describes all changes made to the usbh_drv_stm32_otg package, the USB STM32 OTG Host Controller, since its release.

Version

2.31:

  • Updated to work with USB host base major version 3.

2.30:

  • USB host lockup could occur if transfer status was polled with usbh_transfer_status() function.

2.29:

  • FS mode working again (if STM32UH_FS_USED is set to 1).

2.28:

  • Used flag never cleared for device address zero.
  • INT transfer NYET/TXERR handling applied for BULK transfers as well.
  • Non-periodic transfers prohibited from starting in the same frame a SPLIT transaction has started in  (just like INT transfers).

2.27:

  • Reset USB OTG HS module in stm32uh_start() function.

2.26:

  • Sometimes transfers did not finish correctly in case of device removal or transfer stop in case of timeout.

2.25:

  • Added support for remote wakeup.
  • Fixed the case when a FS/LS device behind a HS hub goes to suspend.
  • Fixed the case when a HS Hub responses with a NYET to a CSPLIT-IN.

2.24:

  • Fixed suspend-resume issue.

2.23:

  • Fast connect-disconnect issue solved.

2.22:

  • No transfers started from transfer_start() function to avoid possible starvation of pending INT transfers.
  • Added protection against the case when a device sends more data than requested (buffer overflow eliminated).

2.21:

  • Disconnect of device0 (directly from port) fix.

2.20:

  • Reorganized configuration.
  • Resource deletion added to stm32uh_delete().

2.19:

  • Handle INT OUT endpoints as bulk.

2.18:

  • stm32uh_start(): the PWRDWN bit in the GCCFG register is now set only in case an internal FS transceiver is used (for the OTG_FS, or for the OTG_HS when used with internal FS PHY), PB14 and PB15 could not be used as GPIO is PWRDWN was set if used with ULPI.

2.17:
    - _stm32uh_schedule(): td.retry set back to original value.

    - add_ep(): removed debug code setting interval to constant 1.

    - stm32uh_get_frame_number(): value divided by 8 in case of a HS link.

    - Periodic transfers are only allowed at the beginning of the frame and can never be executed after a non-periodic transfer (in the same frame).

    - Periodic transfers are not allowed after split transactions in the same frame.

2.16:

    - SPLIT communication fix in case ONE_NAK_PER_FRAME = 0.

    - Disconnect fix in case case ONE_NAK_PER_FRAME = 0.

2.15

    - USB reset delay fix: 10ms instead of 1ms.

2.14

    - Fixed USB reset.

2.13

    - Several fixes regarding SPLIT transactions.

2.12

    - Added support for two units (using OTG_FS and OTG_HS in parallell).

2.11

    - INT endpoint interval calculation fixed for HS devices.

2.10

    - Root hub disconnect issue fixed.

2.9
- driver made independent of PSP (includes psp header instead of  stm32f10x/20x reg. def.)
.
2.8

    - Hardware-specific init changed.

    - Non hardware-specific init moved to stm32uh_init().

2.7
- added support to run with internal FS PHY instead of external ULPI.

2.6
- new register definition file hcc_stm32_regs.h used.
- added call to stm32uh_hw_stop() from stm32uh_stop().

2.5
- fix in add_ep() for when hub is present.
- fixed issue with fast connect/disconnect when ONE_NAK_PER_FRAME is enabled.

2.4
- _stm32uh_remove_transfer(): calls of oal_task_sleep() removed (interrupt context).
- KEIL compilation warnings eliminated.
- call of cb_fn() removed (done in the upper layer).
2.3
- corrected NP_FT_REMAIN value for OTG_FS.
- fixed problem with fast connect-disconnect.
- stm32uh.h: always used OTG_xS_IRQn; defined in config_usbh_stm32uh.h if not defined in library include file.

2.2
- _stm32uh_remove_transfer(): fixed channel halting problem.
- added version number check to stm32uh.c.

2.1
- Initial release.