USB Driver header file for XMEGA products including USB interface.
Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.
#include <nvm.h>
Macros | |
USB Device read/modify/write management | |
#define | LACR16(addr, msk) |
#define | LASR16(addr, msk) |
#define | XCHR16(addr, msk) |
#define | LATR16(addr, msk) |
USB Device endpoints table management | |
#define | udd_endpoint_set_control(ep_ctrl, val) (ep_ctrl->CTRL=val) |
#define | udd_endpoint_get_control(ep_ctrl) (ep_ctrl->CTRL) |
#define | udd_endpoint_disable(ep_ctrl) udd_endpoint_set_control(ep_ctrl,0) |
#define | udd_endpoint_is_enable(ep_ctrl) (USB_EP_TYPE_DISABLE_gc!=udd_endpoint_get_type(ep_ctrl)) |
#define | udd_endpoint_enable_stall(ep_ctrl) (ep_ctrl->CTRL |= USB_EP_STALL_bm) |
#define | udd_endpoint_disable_stall(ep_ctrl) (ep_ctrl->CTRL &= ~USB_EP_STALL_bm) |
#define | udd_endpoint_is_stall(ep_ctrl) (ep_ctrl->CTRL &USB_EP_STALL_bm ? true : false) |
#define | udd_endpoint_set_multipacket(ep_ctrl) (ep_ctrl->CTRL |= USB_EP_MULTIPKT_bm) |
#define | udd_endpoint_TC_int_disable(ep_ctrl) (ep_ctrl->CTRL |= USB_EP_INTDSBL_bm) |
#define | udd_endpoint_set_pingpong(ep_ctrl) (ep_ctrl->CTRL |= USB_EP_PINGPONG_bm) |
#define | udd_endpoint_get_size_field(ep_ctrl) (ep_ctrl->CTRL & USB_EP_BUFSIZE_gm) |
#define | udd_endpoint_get_type(ep_ctrl) (ep_ctrl->CTRL & USB_EP_TYPE_gm) |
#define | udd_endpoint_get_status(ep_ctrl) (ep_ctrl->STATUS) |
#define | udd_endpoint_clear_status(ep_ctrl) (ep_ctrl->STATUS=USB_EP_BUSNACK0_bm|USB_EP_BUSNACK1_bm) |
#define | udd_endpoint_setup_received(ep_ctrl) (ep_ctrl->STATUS&USB_EP_SETUP_bm ? true : false) |
#define | udd_endpoint_ack_setup_received(ep_ctrl) LACR16(&ep_ctrl->STATUS, USB_EP_SETUP_bm) |
#define | udd_endpoint_transfer_complete(ep_ctrl) (ep_ctrl->STATUS&USB_EP_TRNCOMPL0_bm ? true : false) |
#define | udd_endpoint_ack_transfer_complete(ep_ctrl) LACR16(&(ep_ctrl->STATUS), USB_EP_TRNCOMPL0_bm) |
#define | udd_endpoint_transfer_complete_bank0(ep_ctrl) (ep_ctrl->STATUS&USB_EP_TRNCOMPL0_bm ? true : false) |
#define | udd_endpoint_ack_transfer_complete_bankO(ep_ctrl) LACR16(&ep_ctrl->STATUS, USB_EP_TRNCOMPL0_bm) |
#define | udd_endpoint_transfer_complete_bank1(ep_ctrl) (ep_ctrl->STATUS&USB_EP_SETUP_bm ? true : false) |
#define | udd_endpoint_ack_transfer_complete_bank1(ep_ctrl) LACR16(&ep_ctrl->STATUS, USB_EP_SETUP_bm) |
#define | udd_endpoint_get_bank(ep_ctrl) (ep_ctrl->STATUS & USB_EP_BANK_bm ? true : false) |
#define | udd_endpoint_set_bank(ep_ctrl) LASR16(&ep_ctrl->STATUS, USB_EP_BANK_bm) |
#define | udd_endpoint_clear_bank(ep_ctrl) LACR16(&ep_ctrl->STATUS, USB_EP_BANK_bm) |
#define | udd_endpoint_set_dtgl(ep_ctrl) LASR16(&ep_ctrl->STATUS,USB_EP_TOGGLE_bm) |
#define | udd_endpoint_clear_dtgl(ep_ctrl) LACR16(&ep_ctrl->STATUS, USB_EP_TOGGLE_bm ) |
#define | udd_endpoint_get_dtgl(ep_ctrl) ((ep_ctrl->STATUS)&USB_EP_TOGGLE_bm ? true : false) |
#define | udd_endpoint_toggle_dtgl(ep_ctrl) LATR16(&ep_ctrl->STATUS, USB_EP_TOGGLE_bm) |
#define | udd_endpoint_set_NACK0(ep_ctrl) LASR16(&ep_ctrl->STATUS,USB_EP_BUSNACK0_bm) |
#define | udd_endpoint_set_NACK1(ep_ctrl) LASR16(&ep_ctrl->STATUS,USB_EP_BUSNACK1_bm) |
#define | udd_endpoint_clear_NACK0(ep_ctrl) LACR16(&ep_ctrl->STATUS, USB_EP_BUSNACK0_bm) |
#define | udd_endpoint_clear_NACK1(ep_ctrl) LACR16(&ep_ctrl->STATUS, USB_EP_BUSNACK1_bm) |
#define | udd_endpoint_get_NACK1(ep_ctrl) ((ep_ctrl->STATUS&USB_EP_BUSNACK1_bm) ? true : false) |
#define | udd_endpoint_get_NACK0(ep_ctrl) ((ep_ctrl->STATUS&USB_EP_BUSNACK0_bm) ? true : false) |
#define | udd_endpoint_overflow(ep_ctrl) (ep_ctrl->STATUS&USB_EP_OVF_bm ? true : false) |
#define | udd_endpoint_underflow(ep_ctrl) (ep_ctrl->STATUS&USB_EP_UNF_bm ? true : false) |
#define | UDD_ENDPOINT_MAX_TRANS (0x3FF) |
#define | udd_endpoint_out_nb_receiv(ep_ctrl) (ep_ctrl->CNT) |
#define | udd_endpoint_out_reset_nb_received(ep_ctrl) (ep_ctrl->CNT = 0) |
#define | udd_endpoint_in_set_bytecnt(ep_ctrl, n) (ep_ctrl->CNT = n) |
#define | udd_endpoint_set_azlp(ep_ctrl) (ep_ctrl->CNT |= 0x8000) |
#define | udd_endpoint_clear_azlp(ep_ctrl) (ep_ctrl->CNT &= ~0x8000) |
#define | udd_endpoint_set_buf(ep_ctrl, buf) (ep_ctrl->DATAPTR = (uint16_t) buf) |
#define | udd_endpoint_in_nb_sent(ep_ctrl) (ep_ctrl->AUXDATA) |
#define | udd_endpoint_in_reset_nb_sent(ep_ctrl) (ep_ctrl->AUXDATA = 0) |
#define | udd_endpoint_out_set_nbbyte(ep_ctrl, nb) (ep_ctrl->AUXDATA = nb) |
#define | udd_endpoint_out_get_nbbyte_requested(ep_ctrl) (ep_ctrl->AUXDATA) |
#define | udd_endpoint_set_aux(ep_ctrl, buf) (ep_ctrl->AUXDATA = (uint16_t) buf) |
USB Device endpoint control setup field management | |
#define | udd_control_setup() (udd_sram.ep_ctrl[0].STATUS&USB_EP_SETUP_bm ? true : false) |
#define | udd_control_ack_setup() LACR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_SETUP_bm) |
USB Device endpoint control OUT field management | |
#define | udd_control_out_is_enable_stall() (udd_sram.ep_ctrl[0].CTRL&USB_EP_STALL_bm ? true : false) |
#define | udd_control_out_enable_stall() LASR16(&udd_sram.ep_ctrl[0].CTRL,USB_EP_STALL_bm) |
#define | udd_control_out_disable_stall() LACR16(&udd_sram.ep_ctrl[0].CTRL,USB_EP_STALL_bm) |
#define | udd_control_out_is_stalled() (udd_sram.ep_ctrl[0].STATUS&USB_EP_STALLF_bm ? true : false) |
#define | udd_control_out_ack_stall() LACR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_STALLF_bm) |
#define | udd_control_out_set_NACK0() LASR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_BUSNACK0_bm) |
#define | udd_control_out_clear_NACK0() LACR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_BUSNACK0_bm) |
#define | udd_control_out_overflow() (udd_sram.ep_ctrl[0].STATUS&USB_EP_OVF_bm ? true : false) |
#define | udd_control_ack_out_overflow() LACR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_OVF_bm) |
#define | udd_control_out_tc() (udd_sram.ep_ctrl[0].STATUS&USB_EP_TRNCOMPL0_bm ? true : false) |
#define | udd_control_out_ack_tc() LACR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_TRNCOMPL0_bm) |
#define | udd_control_out_set_tc() LASR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_TRNCOMPL0_bm) |
#define | udd_control_out_dt_get() (udd_sram.ep_ctrl[0].STATUS&USB_EP_TOGGLE_bm ? true : false) |
#define | udd_control_out_dt_set() LASR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_TOGGLE_bm ) |
#define | udd_control_out_dt_clear() LACR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_TOGGLE_bm ) |
#define | udd_control_out_dt_toggle() LATR16(&udd_sram.ep_ctrl[0].STATUS,USB_EP_TOGGLE_bm) |
#define | udd_control_out_set_buf(buf) (udd_sram.ep_ctrl[0].DATAPTR = (uint16_t) buf) |
#define | udd_control_out_get_bytecnt() (udd_sram.ep_ctrl[0].CNT) |
USB Device endpoint control IN field management | |
#define | udd_control_in_is_enable_stall() (udd_sram.ep_ctrl[1].CTRL&USB_EP_STALL_bm ? true : false) |
#define | udd_control_in_enable_stall() LASR16(&udd_sram.ep_ctrl[1].CTRL,USB_EP_STALL_bm) |
#define | udd_control_in_disable_stall() LACR16(&udd_sram.ep_ctrl[1].CTRL,USB_EP_STALL_bm) |
#define | udd_control_in_is_stalled() (udd_sram.ep_ctrl[1].STATUS&USB_EP_STALLF_bm ? true : false) |
#define | udd_control_in_ack_stall() LACR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_STALLF_bm) |
#define | udd_control_in_set_NACK0() LASR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_BUSNACK0_bm) |
#define | udd_control_in_clear_NACK0() LACR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_BUSNACK0_bm) |
#define | udd_control_in_underflow() (udd_sram.ep_ctrl[1].STATUS&USB_EP_UNF_bm ? true : false) |
#define | udd_control_ack_in_underflow() LACR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_UNF_bm) |
#define | udd_control_in_tc() (udd_sram.ep_ctrl[1].STATUS&USB_EP_TRNCOMPL0_bm ? true : false) |
#define | udd_control_in_ack_tc() LACR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_TRNCOMPL0_bm) |
#define | udd_control_in_set_tc() LASR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_TRNCOMPL0_bm) |
#define | udd_control_in_dt_get() (udd_sram.ep_ctrl[1].STATUS&USB_EP_TOGGLE_bm ? true : false) |
#define | udd_control_in_dt_set() LASR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_TOGGLE_bm ) |
#define | udd_control_in_dt_clear() LACR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_TOGGLE_bm ) |
#define | udd_control_in_dt_toggle() LATR16(&udd_sram.ep_ctrl[1].STATUS,USB_EP_TOGGLE_bm) |
#define | udd_control_in_set_buf(buf) (udd_sram.ep_ctrl[1].DATAPTR = (uint16_t) buf) |
#define | udd_control_in_set_bytecnt(n) (udd_sram.ep_ctrl[1].CNT = n) |
USB Device main management | |
#define | udd_enable_interface() (USB_CTRLA |= USB_ENABLE_bm) |
#define | udd_disable_interface() (USB_CTRLA &= ~USB_ENABLE_bm) |
#define | udd_attach_device() (USB_CTRLB |= USB_ATTACH_bm) |
#define | udd_detach_device() (USB_CTRLB &= ~USB_ATTACH_bm) |
#define | udd_gnak_disable() (USB_CTRLB &= ~USB_GNACK_bm) |
#define | udd_gnak_enable() (USB_CTRLB |= USB_GNACK_bm) |
#define | udd_gnak_is_enable() (USB_CTRLB & USB_GNACK_bm) |
#define | udd_set_nb_max_ep(n) (USB_CTRLA |= n) |
#define | udd_enable_store_frame_number() (USB_CTRLA |= USB_STFRNUM_bm) |
#define | udd_disable_store_frame_number() (USB_CTRLA &= ~USB_STFRNUM_bm) |
#define | udd_set_full_speed() (USB_CTRLA |= USB_SPEED_bm) |
#define | udd_set_low_speed() (USB_CTRLA &= ~USB_SPEED_bm) |
#define | udd_set_ep_table_addr(n) (USB.EPPTR = (uint16_t)n) |
#define | udd_get_ep_table_addr() (USB.EPPTR) |
#define | udd_get_fifo_rp() (USB_FIFORP) |
#define | udd_reset_fifo() (USB_FIFORP=0xFF) |
#define | udd_enable_interrupt(level) (USB_INTCTRLA |= level&(USB_INTLVL1_bm|USB_INTLVL0_bm)) |
#define | udd_set_device_address(n) (USB_ADDR=n) |
#define | udd_get_device_address() (USB_ADDR) |
#define | udd_enable_fifo() (USB_CTRLA |= USB_FIFOEN_bm) |
#define | udd_disable_fifo() (USB_CTRLA &= ~USB_FIFOEN_bm) |
#define | udd_send_remote_wake_up() (USB_CTRLB &= ~USB_RWAKEUP_bm, USB_CTRLB |= USB_RWAKEUP_bm) |
#define | udd_set_global_nack() (USB_CTRLB |= USB_GNACK_bm) |
#define | udd_is_crc_event() (USB_INTFLAGSASET & USB_CRCIF_bm ? true : false) |
#define | udd_ack_crc_event() (USB_INTFLAGSACLR = USB_CRCIF_bm) |
#define | udd_set_crc_event() (USB_INTFLAGSASET = USB_CRCIF_bm) |
#define | udd_enable_crc_interrupt() (USB_INTCTRLA |= USB_CRCIE_bm) |
#define | udd_disable_crc_interrupt() (USB_INTCTRLA &= ~USB_CRCIE_bm) |
#define | udd_is_start_of_frame_event() (USB_INTFLAGSASET & USB_SOFIF_bm ? true : false) |
#define | udd_ack_start_of_frame_event() (USB_INTFLAGSACLR = USB_SOFIF_bm) |
#define | udd_set_start_of_frame_event() (USB_INTFLAGSASET = USB_SOFIF_bm) |
#define | udd_enable_start_of_frame_interrupt() (USB_INTCTRLA |= USB_SOFIE_bm) |
#define | udd_disable_start_of_frame_interrupt() (USB_INTCTRLA &= ~USB_SOFIE_bm) |
#define | udd_is_enable_start_of_frame_interrupt() (0!=(USB_INTCTRLA|USB_SOFIE_bm)) |
#define | udd_is_reset_event() (USB_INTFLAGSASET & USB_RSTIF_bm ? true : false) |
#define | udd_ack_reset_event() (USB_INTFLAGSACLR = USB_RSTIF_bm) |
#define | udd_set_reset_event() (USB_INTFLAGSASET = USB_RSTIF_bm) |
#define | udd_is_suspend_event() (USB_INTFLAGSASET & USB_SUSPENDIF_bm ? true : false) |
#define | udd_ack_suspend_event() (USB_INTFLAGSACLR = USB_SUSPENDIF_bm) |
#define | udd_set_suspend_event() (USB_INTFLAGSASET = USB_SUSPENDIF_bm) |
#define | udd_is_resume_event() (USB_INTFLAGSASET & USB_RESUMEIF_bm ? true : false) |
#define | udd_ack_resume_event() (USB_INTFLAGSACLR = USB_RESUMEIF_bm) |
#define | udd_set_resume_event() (USB_INTFLAGSASET = USB_RESUMEIF_bm) |
#define | udd_enable_busevt_interrupt() (USB_INTCTRLA |= USB_BUSEVIE_bm) |
#define | udd_disable_busevt_interrupt() (USB_INTCTRLA &= ~USB_BUSEVIE_bm) |
#define | udd_is_setup_event() (USB_INTFLAGSBCLR & USB_SETUPIF_bm ? true : false) |
#define | udd_ack_setup_event() (USB_INTFLAGSBCLR = USB_SETUPIF_bm) |
#define | udd_set_setup_event() (USB_INTFLAGSBSET = USB_SETUPIF_bm) |
#define | udd_enable_setup_interrupt() (USB_INTCTRLB |= USB_SETUPIE_bm) |
#define | udd_disable_setup_interrupt() (USB_INTCTRLB &= ~USB_SETUPIE_bm) |
#define | udd_is_tc_event() (USB_INTFLAGSBCLR & USB_TRNIF_bm ? true : false) |
#define | udd_ack_tc_event() (USB_INTFLAGSBCLR = USB_TRNIF_bm) |
#define | udd_set_tc_event() (USB_INTFLAGSBSET = USB_TRNIF_bm) |
#define | udd_enable_tc_interrupt() (USB_INTCTRLB |= USB_TRNIE_bm) |
#define | udd_disable_tc_interrupt() (USB_INTCTRLB &= ~USB_TRNIE_bm) |
#define | udd_is_overflow_event() (USB_INTFLAGSASET & USB_OVFIF_bm ? true : false) |
#define | udd_ack_overflow_event() (USB_INTFLAGSACLR = USB_OVFIF_bm) |
#define | udd_set_overflow_event() (USB_INTFLAGSASET = USB_OVFIF_bm) |
#define | udd_enable_overflow_interrupt() (USB_INTCTRLA |= USB_BUSERRIE_bm) |
#define | udd_disable_overflow_interrupt() (USB_INTCTRLA &= ~USB_BUSERRIE_bm) |
#define | udd_is_enable_overflow_interrupt() (USB_INTCTRLA&USB_BUSERRIE_bm ? true : false) |
#define | udd_is_underflow_event() (USB_INTFLAGSASET & USB_UNFIF_bm ? true : false) |
#define | udd_ack_underflow_event() (USB_INTFLAGSACLR = USB_UNFIF_bm) |
#define | udd_set_underflow_event() (USB_INTFLAGSASET = USB_UNFIF_bm) |
#define | udd_enable_underflow_interrupt() (USB_INTCTRLA |= USB_BUSERRIE_bm) |
#define | udd_disable_underflow_interrupt() (USB_INTCTRLA &= ~USB_BUSERRIE_bm) |
#define | udd_is_enable_underflow_interrupt() (USB_INTCTRLA&USB_BUSERRIE_bm ? true : false) |
#define | udd_is_stall_event() (USB_INTFLAGSASET & USB_STALLIF_bm ? true : false) |
#define | udd_ack_stall_event() (USB_INTFLAGSACLR = USB_STALLIF_bm) |
#define | udd_set_stall_event() (USB_INTFLAGSASET = USB_STALLIF_bm) |
#define | udd_enable_stall_interrupt() (USB_INTCTRLA |= USB_STALLIE_bm) |
#define | udd_disable_stall_interrupt() (USB_INTCTRLA &= ~USB_STALLIE_bm) |
#define | udd_is_enable_stall_interrupt() (USB_INTCTRLA&USB_STALLIE_bm ? true : false) |
static void | usb_pad_init (void) |
Initializes the USB DP/DM buffers. More... | |