#include <avr/io.h>
#include <stdbool.h>
#include "../../../Common/Common.h"
Defines | |
#define | USB_OTG_DEV_Request_HNP() MACROS{ OTGCON |= (1 << HNPREQ); }MACROE |
#define | USB_OTG_DEV_Cancel_HNP_Request() MACROS{ OTGCON &= ~(1 << HNPREQ); }MACROE |
#define | USB_OTG_DEV_IsSendingHNP() ((OTGCON & (1 << HNPREQ)) ? true : false) |
#define | USB_OTG_HOST_Accept_HNP() USB_OTG_DEV_Request_HNP() |
#define | USB_OTG_HOST_Reject_HNP() USB_OTG_DEV_Cancel_HNP_Request() |
#define | USB_OTG_HOST_IsHNPReceived() ((OTGCON & (1 << HNPREQ)) ? true : false) |
#define | USB_OTG_DEV_Initiate_SRP(type) MACROS{ OTGCON = ((OTGCON & ~(1 << SRPSEL)) | (type | (1 << SRPREQ))); }MACROE |
#define | USB_OTG_SRP_VBUS (1 << SRPSEL) |
#define | USB_OTG_STP_DATA 0 |
#define USB_OTG_DEV_Cancel_HNP_Request | ( | ) | MACROS{ OTGCON &= ~(1 << HNPREQ); }MACROE |
Cancel a Host Negotiation Protocol request. This stops a pending HNP request to the other connected device.
#define USB_OTG_DEV_Initiate_SRP | ( | type | ) | MACROS{ OTGCON = ((OTGCON & ~(1 << SRPSEL)) | (type | (1 << SRPREQ))); }MACROE |
Initiates a Session Request Protocol request. Most OTG devices turn off VBUS when the USB interface is not in use, to conserve power. Sending a SRP to a USB OTG device running in host mode indicates that VBUS should be applied and a session started.
There are two different methods of sending a SRP - either pulses on the VBUS line, or by pulsing the Data + line via the internal pullup resistor. The SRP mode is given as the "type" parameter, and can be either USB_OTG_SRP_VBUS or USB_OTG_STP_DATA.
#define USB_OTG_DEV_IsSendingHNP | ( | ) | ((OTGCON & (1 << HNPREQ)) ? true : false) |
Returns boolean false if not currently sending a HNP to the other connected device, or true if a HNP is currently being issued.
#define USB_OTG_DEV_Request_HNP | ( | ) | MACROS{ OTGCON |= (1 << HNPREQ); }MACROE |
Initiate a Host Negotiation Protocol request. This indicates to the other connected device that the device wishes to change device/host roles.
#define USB_OTG_HOST_Accept_HNP | ( | ) | USB_OTG_DEV_Request_HNP() |
Accepts a HNP from a connected device, indicating that both devices should exchange device/host roles.
#define USB_OTG_HOST_IsHNPReceived | ( | ) | ((OTGCON & (1 << HNPREQ)) ? true : false) |
Returns boolean false if the connected device is not currently sending a HNP request, or true if a HNP is currently being issued by the connected device.
#define USB_OTG_HOST_Reject_HNP | ( | ) | USB_OTG_DEV_Cancel_HNP_Request() |
Rejects a HNP from a connected device, indicating that both devices should remain in their current device/host roles.
#define USB_OTG_SRP_VBUS (1 << SRPSEL) |
Mask for the VBUS pulsing method of SRP, supported by some OTG devices.
#define USB_OTG_STP_DATA 0 |
Mask for the Data + pulsing method of SRP, supported by some OTG devices.