History: usbd_drv_sam_udphs

This page describes all changes made to the usbd_drv_sam_udphs package, USBD Low Level Driver for Atmel SAM UDPHS, since its release.


1.9r2 (2018-08-29, 18:27):

  • Added document HTML link to the documentation folder.
  • Renamed history and document files to the package name.


  • Enumeration could cause NULL-pointer dereference on Windows 8.
  • Size of DMA transfers may be reported incorrectly: now fixed.
  • Refactoring to comply with coding standard rules.
  • Missing OAL_ISR_PRE/OAL_ISR_POST macros added.


  • Enabling / disabling of USB clock moved to PSP.
  • OUT transfer end is not recognized correctly if host sends multiple of packet size data; zero-length OUT packet handling corrected.
  • MAX_NR_OF_DMA_EP define added to tell which endpoints can use DMA. If HCC_USBD_UDPHS_USE_DMA set DMA transfer will be configured to the first MAX_NR_OF_DMA_EP endpoints.
  • In usbd_remove_endpoint() unlock memory if it is locked for DMA transfer.


  • Transfers worked incorrectly with data cache enabled.
  • PSP-specific calls are performed from usbd_hw_init(), usbd_start(), usbd_stop() and usbd_hw_delete().


usbd_hw_init(), usbd_start(), usbd_stop() modified for OTG functionality.


  • Set Feature TEST MODE implemented.


  • Fixed issue when receiving a GET_CONFIG_DESC with 0byte to send. TX interrupt enable and flag is not cleared because there is no TX interrupt in this case, however the device tries to send 0 byte, so the transfer is started.


  • Fixed Endpoint interrupt enable and disable mechanism.
  • Fixed issue with endpoint's DMA TX transfers. After the last packet is transferred by the DMA an endpoint TX interrupt is set up. However the next TX interrupt for that endpoint does not mean that the packet is already sent by the HW, because when setting the TX interrupt the TX_COMPLT flag is already set by the previous packet. To avoid this busy bank flag should be checked in the interrupt.
  • Removed unnecessary version checks.


  • DMA channel stop fixed.


  • Initial release.