mbed-os/libraries/USBDevice
Mikko Polojarvi 511b46de83 SiL USB: Disable LEM in Happy with ISOC endpoints
Happy Gecko's USB Low Energy Mode does not work properly with
isochronous endpoints.

Note that Happy Gecko errata USB_E112 states:

  Do not use the SUSPEND mode of LEMOSCCTRL in USB_CTRL.

  In rare cases with high data throughput, a transmission can
  fail when this mode is enabled.

  Use the GATED mode of LEMOSCCTRL for the best energy
  efficiency. The NONE mode can be used to disable energy
  savings

However, even using GATE mode causes problems for high-frequency
isochronous transfers. The primary effect for OUT endpoints is that
the first read will succeed, and the following one (targetting the
next frame) will fail with zero bytes incoming data, and PKTDRPSTS
is set in the related interrupt status register.

Disabling LEMOSCCTRL (set to NONE) solves the problem. Since this
will cause increased energy usage, do this only when an ISOC endpoint
is added.
2015-07-28 17:22:53 +03:00
..
USBAudio Added macros to alias the endpoint callback functions to support configurability. 2015-03-17 13:41:40 -05:00
USBDevice SiL USB: Disable LEM in Happy with ISOC endpoints 2015-07-28 17:22:53 +03:00
USBHID Added macros to alias the endpoint callback functions to support configurability. 2015-03-17 13:41:40 -05:00
USBMIDI [USBMIDI] Fix compile error 2015-04-20 14:34:47 +09:00
USBMSD free memory afer disabling the usb ISR solves race condition which could corrupt the heap. (issue #1049) 2015-04-17 01:56:35 +02:00
USBSerial used Size+1 insted of size because no c++11 (no constexpr) 2015-06-05 20:04:07 +02:00