11 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	group udd_group
The UDD driver provides a low-level abstraction of the device controller hardware. Most events coming from the hardware such as interrupts, which may cause the UDD to call into the UDC and UDI.
Summary
| Members | Descriptions | 
|---|---|
| define Udd_setup_is_in | Return true if the setup request udd_g_ctrlreq indicates IN data transfer. | 
| define Udd_setup_is_out | Return true if the setup request udd_g_ctrlreq indicates OUT data transfer. | 
| define Udd_setup_type | Return the type of the SETUP request udd_g_ctrlreq. | 
| define Udd_setup_recipient | Return the recipient of the SETUP request udd_g_ctrlreq. | 
| enum udd_ep_status_t | Endpoint transfer status Returned in parameters of callback register via udd_ep_run routine. | 
| public bool udd_include_vbus_monitoring(void) | Authorizes the VBUS event. | 
| public void udd_enable(void) | Enables the USB Device mode. | 
| public void udd_disable(void) | Disables the USB Device mode. | 
| public void udd_attach(void) | Attach device to the bus when possible. | 
| public void udd_detach(void) | Detaches the device from the bus. | 
| public bool udd_is_high_speed(void) | Test whether the USB Device Controller is running at high speed or not. | 
| public void udd_set_address(uint8_t address) | Changes the USB address of device. | 
| public uint8_t udd_getaddress(void) | Returns the USB address of device. | 
| public uint16_t udd_get_frame_number(void) | Returns the current start of frame number. | 
| public uint16_t udd_get_micro_frame_number(void) | Returns the current micro start of frame number. | 
| public void udd_send_remotewakeup(void) | The USB driver sends a resume signal called Upstream Resume. | 
| public void udd_set_setup_payload(uint8_t * payload,uint16_t payload_size) | Load setup payload. | 
| struct udd_ctrl_request_t | Global variable to give and record information of the setup request management. | 
Members
define Udd_setup_is_in
Return true if the setup request udd_g_ctrlreq indicates IN data transfer.
define Udd_setup_is_out
Return true if the setup request udd_g_ctrlreq indicates OUT data transfer.
define Udd_setup_type
Return the type of the SETUP request udd_g_ctrlreq.
See also: usb_reqtype.
define Udd_setup_recipient
Return the recipient of the SETUP request udd_g_ctrlreq.
See also: usb_recipient
enum udd_ep_status_t
| Values | Descriptions | 
|---|---|
| UDD_EP_TRANSFER_OK | |
| UDD_EP_TRANSFER_ABORT | 
Endpoint transfer status Returned in parameters of callback register via udd_ep_run routine.
public bool udd_include_vbus_monitoring(void)
Authorizes the VBUS event.
Returns
true, if the VBUS monitoring is possible.
public void udd_enable(void)
Enables the USB Device mode.
public void udd_disable(void)
Disables the USB Device mode.
public void udd_attach(void)
Attach device to the bus when possible.
If a VBus control is included in driver, then it will attach device when an acceptable Vbus level from the host is detected.
public void udd_detach(void)
Detaches the device from the bus.
The driver must remove pull-up on USB line D- or D+.
public bool udd_is_high_speed(void)
Test whether the USB Device Controller is running at high speed or not.
Returns
true if the Device is running at high speed mode, otherwise false.
public void udd_set_address(uint8_t address)
Changes the USB address of device.
Parameters
- addressNew USB address
public uint8_t udd_getaddress(void)
Returns the USB address of device.
Returns
USB address
public uint16_t udd_get_frame_number(void)
Returns the current start of frame number.
Returns
current start of frame number.
public uint16_t udd_get_micro_frame_number(void)
Returns the current micro start of frame number.
Returns
current micro start of frame number required in high speed mode.
public void udd_send_remotewakeup(void)
The USB driver sends a resume signal called Upstream Resume.
public void udd_set_setup_payload(uint8_t * payload,uint16_t payload_size)
Load setup payload.
Parameters
- 
payloadPointer on payload
- 
payload_sizeSize of payload
struct udd_ctrl_request_t
Global variable to give and record information of the setup request management.
This global variable allows to decode and response a setup request. It can be updated by udc_process_setup() from UDC or *setup() from UDIs.
Summary
| Members | Descriptions | 
|---|---|
| public usb_setup_req_t req | Data received in USB SETUP packet Note: The swap of "req.wValues" from uin16_t to le16_t is done by UDD. | 
| public uint8_t * payload | Point to buffer to send or fill with data following SETUP packet This buffer must be word align for DATA IN phase (use prefix COMPILER_WORD_ALIGNED for buffer) | 
| public uint16_t payload_size | Size of buffer to send or fill, and content the number of byte transfered. | 
| public void(* callback | Callback called after reception of ZLP from setup request. | 
| public bool(* over_under_run | Callback called when the buffer given (.payload) is full or empty. This one return false to abort data transfer, or true with a new buffer in .payload. | 
Members
public usb_setup_req_t req
Data received in USB SETUP packet Note: The swap of "req.wValues" from uin16_t to le16_t is done by UDD.
public uint8_t * payload
Point to buffer to send or fill with data following SETUP packet This buffer must be word align for DATA IN phase (use prefix COMPILER_WORD_ALIGNED for buffer)
public uint16_t payload_size
Size of buffer to send or fill, and content the number of byte transfered.
public void(* callback
Callback called after reception of ZLP from setup request.
public bool(* over_under_run
Callback called when the buffer given (.payload) is full or empty. This one return false to abort data transfer, or true with a new buffer in .payload.
