/** * \brief Allocation of the control endpoint * * \param address USB address of endpoint * \param ep_size control endpoint size */ static void main_usb_enable_ctrl_ep(uint8_t address, uint8_t ep_size) { // Configure USB address udd_disable_address(); udd_configure_address(address); udd_enable_address(); // Alloc and configure control endpoint udd_disable_endpoint(0); udd_unallocate_memory(0); #if SAM3XA udd_configure_endpoint(0, USB_EP_TYPE_CONTROL, 0, ep_size, UOTGHS_DEVEPTCFG_EPBK_1_BANK); #else udd_configure_endpoint(0, USB_EP_TYPE_CONTROL, 0, ep_size, AVR32_USBB_UECFG0_EPBK_SINGLE); #endif udd_allocate_memory(0); udd_enable_endpoint(0); }
void udd_set_address(uint8_t address) { udd_disable_address_state(); udd_disable_address(); if (address) { udd_configure_address(address); udd_enable_address(); udd_enable_address_state(); } }