History: usbh_drv_atmel

This page describes all changes made to the usbh_drv_atmel package, USB Atmel Host Controller, since its release.


2.13 (2019-03-11, 17:10):

  • Several bugs fixed in Fair access pipe implementation and it was made interrupt safe.
  • Wrong interrupt handling fixed if multiple endpoint interrupts are fired.
  • Wrong interrupt handling fixed if multiple DMA interrupts are fired.
  • Bit handling in usbh_atmel_used_hw_pipe() is fixed.
  • SOF interrupt is only enabled if at least to transfers were added to bulk FIFO.

2.12r2 (2018-08-29, 18:13):

  • Document HTML link added to the documentation folder.
  • History and document files renamed to the package name.

2.12 (2018-04-11, 18:26):

  •   Build error removed for the case USBH_ATMEL_BULK_SOF_SCHEDULE == 0.
  •   Compiler warnings eliminated.

2.11 (2017-09-19, 12:09):

  •  Last packet of a multi-packet transmission might have been delayed until the next transmission on the same endpoint.


  •  Jittering USB data lines during USB reset could lock up the driver.


  • Interrupt load could have been unreasonably increased if multiple bulk endpoints are used and USBH_ATMEL_BULK_SOF_SCHEDULE is enabled.
  • Double buffer operation did not reflect user configuration.
  • First transmission on a Bulk endpoint could make the driver stuck if the OUT endpoint was configured as a double buffer one.


  •  Driver could cause USB stack freeze in case of transfer timeout.


  •  Rx transfers with data size which is exact multiple of the endpoint packet size might have failed with DMA enabled.


  •  Transfers with data size which is exact multiple of the endpoint packet size might have failed with DMA enabled.


  •  Concurrent Bulk transfers could block each other.


  •  Slight modification of previous workaround which resulted in an unstable operation on heavy OUT traffic.


  •  A pending Bulk IN transfer could block all other Bulk transfers on higher pipes. Temporarily Bulk IN transfers are treated as INT ones.


  •  some transfers could stick in case of more parallel active transfers on different endpoints.
  •  fixed setting polling interval for interrupt endpoints.
  •  transfers were not started if there were >3 already active transfers.


  •  module renamed to usbh_hc_atmel (sources: usbh_atmel*, psp_usbh_atmel*).
  •  driver could freeze on device disconnection.