Added support for the Atmel XPLAIN board.
[pub/USBasp.git] / LUFA / Drivers / USB / HighLevel / Events.h
index 1e63831..5a007ff 100644 (file)
@@ -97,7 +97,7 @@
                        \r
                        /** Event for USB device attachment. This event fires when a the USB interface is in host mode, and\r
                         *  a USB device has been connected to the USB interface. This is interrupt driven, thus fires before\r
-                        *  the standard \ref EVENT_USB_Device_Connect event and so can be used to programmatically start the USB\r
+                        *  the standard \ref EVENT_USB_Device_Connect() event and so can be used to programmatically start the USB\r
                         *  management task to reduce CPU consumption.\r
                         *\r
                         *  \note This event only exists on USB AVR models which supports host mode.\r
                        /** Event for USB device connection. This event fires when the AVR in device mode and the device is connected\r
                         *  to a host, beginning the enumeration process, measured by a rising level on the AVR's VBUS pin.\r
                         *\r
-                        *  \note For the smaller USB AVRs (AT90USBXX2) with limited USB controllers, VBUS is not available to the USB controller.\r
+                        *  \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.\r
                         *        this means that the current connection state is derived from the bus suspension and wake up events by default,\r
                         *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state\r
                         *        needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by\r
                         *        passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection\r
                         *        and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.\r
                         *\r
+                        *  \note This event may fire multiple times during device enumeration on the series 2 USB AVRs with limited USB controllers\r
+                        *        if NO_LIMITED_CONTROLLER_CONNECT is not defined.\r
+                        *\r
                         *  \see USBTask.h for more information on the USB management task and reducing CPU usage.\r
                         */\r
                        void EVENT_USB_Device_Connect(void);\r
                        /** Event for USB device disconnection. This event fires when the AVR in device mode and the device is disconnected\r
                         *  from a host, measured by a falling level on the AVR's VBUS pin.\r
                         *\r
-                        *  \note For the smaller USB AVRs (AT90USBXX2) with limited USB controllers, VBUS is not available to the USB controller.\r
+                        *  \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.\r
                         *        this means that the current connection state is derived from the bus suspension and wake up events by default,\r
                         *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state\r
                         *        needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by\r
                         *        passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection\r
                         *        and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.\r
                         *\r
+                        *  \note This event may fire multiple times during device enumeration on the series 2 USB AVRs with limited USB controllers\r
+                        *        if NO_LIMITED_CONTROLLER_CONNECT is not defined.\r
+                        *\r
                         *  \see USBTask.h for more information on the USB management task and reducing CPU usage.\r
                         */\r
                        void EVENT_USB_Device_Disconnect(void);\r
                         *        \ref Group_USBManagement documentation).\r
                         */\r
                        void EVENT_USB_Device_Reset(void);\r
+\r
+                       /** Event for USB Start Of Frame detection, when enabled. This event fires at the start of each USB\r
+                        *  frame, once per millisecond, and is synchronised to the USB bus. This can be used as an accurate\r
+                        *  millisecond timer source when the USB bus is enumerated in device mode to a USB host.\r
+                        *\r
+                        *  This event is not normally active - it must be manually enabled and disabled via the\r
+                        *  \ref USB_Device_EnableSOFEvents() and \ref USB_Device_DisableSOFEvents() commands after enumeration.\r
+                        *\r
+                        *  \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see\r
+                        *        \ref Group_USBManagement documentation).\r
+                        */\r
+                       void EVENT_USB_Device_StartOfFrame(void);\r
                #endif\r
                \r
        /* Private Interface - For use in library only: */\r
                                        void EVENT_USB_Device_Suspend(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                                        void EVENT_USB_Device_WakeUp(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                                        void EVENT_USB_Device_Reset(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
+                                       void EVENT_USB_Device_StartOfFrame(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                                #endif\r
                        #endif\r
        #endif\r