Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
USBB Device Driver

USBB low-level driver for USB device mode.

Warning
Bit-masks are used instead of bit-fields because PB registers require 32-bit write accesses while AVR32-GCC 4.0.2 builds 8-bit accesses even when volatile unsigned int bit-fields are specified.

USBB Device IP properties

These macros give access to IP properties

#define udd_get_endpoint_max_nbr()
 Get maximal number of endpoints. More...
 

USBB Device speeds management

#define udd_low_speed_enable()   USBB_SET_BITS(UDCON,LS)
 Enable/disable device low-speed mode. More...
 
#define udd_low_speed_disable()   USBB_CLR_BITS(UDCON,LS)
 
#define Is_udd_low_speed_enable()   USBB_TST_BITS(UDCON,LS)
 Test if device low-speed mode is forced. More...
 
#define udd_high_speed_enable()   do { } while (0)
 
#define udd_high_speed_disable()   do { } while (0)
 
#define Is_udd_full_speed_mode()   true
 

USBB device attach control

These macros manage the USBB Device attach.

#define udd_detach_device()   USBB_SET_BITS(UDCON,DETACH)
 detaches from USB bus More...
 
#define udd_attach_device()   USBB_CLR_BITS(UDCON,DETACH)
 attaches to USB bus More...
 
#define Is_udd_detached()   USBB_TST_BITS(UDCON,DETACH)
 test if the device is detached More...
 

USBB device bus events control

These macros manage the USBB Device bus events.

#define udd_initiate_remote_wake_up()   USBB_SET_BITS(UDCON,RMWKUP)
 Initiates a remote wake-up event. More...
 
#define Is_udd_pending_remote_wake_up()   USBB_TST_BITS(UDCON,RMWKUP)
 
#define udd_enable_remote_wake_up_interrupt()   USBB_REG_SET(UDINTE,UPRSME)
 Manage upstream resume event (=remote wakeup from device) The USB driver sends a resume signal called "Upstream Resume". More...
 
#define udd_disable_remote_wake_up_interrupt()   USBB_REG_CLR(UDINTE,UPRSME)
 
#define Is_udd_remote_wake_up_interrupt_enabled()   USBB_TST_BITS(UDINTE,UPRSME)
 
#define udd_ack_remote_wake_up_start()   USBB_REG_CLR(UDINT,UPRSM)
 
#define udd_raise_remote_wake_up_start()   USBB_REG_SET(UDINT,UPRSM)
 
#define Is_udd_remote_wake_up_start()   USBB_TST_BITS(UDINT,UPRSM)
 
#define udd_enable_resume_interrupt()   USBB_REG_SET(UDINTE,EORSME)
 Manage downstream resume event (=remote wakeup from host) The USB controller detects a valid "End of Resume" signal initiated by the host. More...
 
#define udd_disable_resume_interrupt()   USBB_REG_CLR(UDINTE,EORSME)
 
#define Is_udd_resume_interrupt_enabled()   USBB_TST_BITS(UDINTE,EORSME)
 
#define udd_ack_resume()   USBB_REG_CLR(UDINT,EORSM)
 
#define udd_raise_resume()   USBB_REG_SET(UDINT,EORSM)
 
#define Is_udd_resume()   USBB_TST_BITS(UDINT,EORSM)
 
#define udd_enable_wake_up_interrupt()   USBB_REG_SET(UDINTE,WAKEUPE)
 Manage wake-up event (=usb line activity) The USB controller is reactivated by a filtered non-idle signal from the lines. More...
 
#define udd_disable_wake_up_interrupt()   USBB_REG_CLR(UDINTE,WAKEUPE)
 
#define Is_udd_wake_up_interrupt_enabled()   USBB_TST_BITS(UDINTE,WAKEUPE)
 
#define udd_ack_wake_up()   USBB_REG_CLR(UDINT,WAKEUP)
 
#define udd_raise_wake_up()   USBB_REG_SET(UDINT,WAKEUP)
 
#define Is_udd_wake_up()   USBB_TST_BITS(UDINT,WAKEUP)
 
#define udd_enable_reset_interrupt()   USBB_REG_SET(UDINTE,EORSTE)
 Manage reset event Set when a USB "End of Reset" has been detected. More...
 
#define udd_disable_reset_interrupt()   USBB_REG_CLR(UDINTE,EORSTE)
 
#define Is_udd_reset_interrupt_enabled()   USBB_TST_BITS(UDINTE,EORSTE)
 
#define udd_ack_reset()   USBB_REG_CLR(UDINT,EORST)
 
#define udd_raise_reset()   USBB_REG_SET(UDINT,EORST)
 
#define Is_udd_reset()   USBB_TST_BITS(UDINT,EORST)
 
#define udd_enable_sof_interrupt()   USBB_REG_SET(UDINTE,SOFE)
 Manage start of frame event. More...
 
#define udd_disable_sof_interrupt()   USBB_REG_CLR(UDINTE,SOFE)
 
#define Is_udd_sof_interrupt_enabled()   USBB_TST_BITS(UDINTE,SOFE)
 
#define udd_ack_sof()   USBB_REG_CLR(UDINT,SOF)
 
#define udd_raise_sof()   USBB_REG_SET(UDINT,SOF)
 
#define Is_udd_sof()   USBB_TST_BITS(UDINT,SOF)
 
#define udd_frame_number()   (USBB_RD_BITFIELD(UDFNUM,FNUM))
 
#define Is_udd_frame_number_crc_error()   USBB_TST_BITS(UDFNUM,FNCERR)
 
#define udd_enable_msof_interrupt()   USBB_REG_SET(UDINTE,MSOFE)
 Manage Micro start of frame event (High Speed Only) More...
 
#define udd_disable_msof_interrupt()   USBB_REG_CLR(UDINTE,MSOFE)
 
#define Is_udd_msof_interrupt_enabled()   USBB_TST_BITS(UDINTE,MSOFE)
 
#define udd_ack_msof()   USBB_REG_CLR(UDINT,MSOF)
 
#define udd_raise_msof()   USBB_REG_SET(UDINT,MSOF)
 
#define Is_udd_msof()   USBB_TST_BITS(UDINT,MSOF)
 
#define udd_micro_frame_number()
 
#define udd_enable_suspend_interrupt()   USBB_REG_SET(UDINTE,SUSPE)
 Manage suspend event. More...
 
#define udd_disable_suspend_interrupt()   USBB_REG_CLR(UDINTE,SUSPE)
 
#define Is_udd_suspend_interrupt_enabled()   USBB_TST_BITS(UDINTE,SUSPE)
 
#define udd_ack_suspend()   USBB_REG_CLR(UDINT,SUSP)
 
#define udd_raise_suspend()   USBB_REG_SET(UDINT,SUSP)
 
#define Is_udd_suspend()   USBB_TST_BITS(UDINT,SUSP)
 

#define Is_udd_detached ( )    USBB_TST_BITS(UDCON,DETACH)

test if the device is detached

#define Is_udd_frame_number_crc_error ( )    USBB_TST_BITS(UDFNUM,FNCERR)
#define Is_udd_full_speed_mode ( )    true
#define Is_udd_low_speed_enable ( )    USBB_TST_BITS(UDCON,LS)

Test if device low-speed mode is forced.

Referenced by main_test8(), and main_usb_wait_sof().

#define Is_udd_msof ( )    USBB_TST_BITS(UDINT,MSOF)
#define Is_udd_msof_interrupt_enabled ( )    USBB_TST_BITS(UDINTE,MSOFE)
#define Is_udd_pending_remote_wake_up ( )    USBB_TST_BITS(UDCON,RMWKUP)
#define Is_udd_remote_wake_up_interrupt_enabled ( )    USBB_TST_BITS(UDINTE,UPRSME)
#define Is_udd_remote_wake_up_start ( )    USBB_TST_BITS(UDINT,UPRSM)
#define Is_udd_reset ( )    USBB_TST_BITS(UDINT,EORST)
#define Is_udd_reset_interrupt_enabled ( )    USBB_TST_BITS(UDINTE,EORSTE)
#define Is_udd_resume ( )    USBB_TST_BITS(UDINT,EORSM)

Referenced by main_usb_wait_resume().

#define Is_udd_resume_interrupt_enabled ( )    USBB_TST_BITS(UDINTE,EORSME)
#define Is_udd_sof ( )    USBB_TST_BITS(UDINT,SOF)
#define Is_udd_sof_interrupt_enabled ( )    USBB_TST_BITS(UDINTE,SOFE)
#define Is_udd_suspend ( )    USBB_TST_BITS(UDINT,SUSP)

Referenced by main_usb_wait_suspend().

#define Is_udd_suspend_interrupt_enabled ( )    USBB_TST_BITS(UDINTE,SUSPE)
#define Is_udd_wake_up ( )    USBB_TST_BITS(UDINT,WAKEUP)

Referenced by main_usb_wait_wakeup().

#define Is_udd_wake_up_interrupt_enabled ( )    USBB_TST_BITS(UDINTE,WAKEUPE)
#define udd_ack_msof ( )    USBB_REG_CLR(UDINT,MSOF)
#define udd_ack_remote_wake_up_start ( )    USBB_REG_CLR(UDINT,UPRSM)
#define udd_ack_reset ( )    USBB_REG_CLR(UDINT,EORST)
#define udd_ack_resume ( )    USBB_REG_CLR(UDINT,EORSM)

Referenced by main_usb_wait_resume().

#define udd_ack_sof ( )    USBB_REG_CLR(UDINT,SOF)
#define udd_ack_suspend ( )    USBB_REG_CLR(UDINT,SUSP)

Referenced by main_usb_wait_suspend().

#define udd_ack_wake_up ( )    USBB_REG_CLR(UDINT,WAKEUP)

Referenced by main_usb_wait_wakeup().

#define udd_detach_device ( )    USBB_SET_BITS(UDCON,DETACH)

detaches from USB bus

Referenced by main_detach().

#define udd_disable_msof_interrupt ( )    USBB_REG_CLR(UDINTE,MSOFE)
#define udd_disable_remote_wake_up_interrupt ( )    USBB_REG_CLR(UDINTE,UPRSME)
#define udd_disable_reset_interrupt ( )    USBB_REG_CLR(UDINTE,EORSTE)
#define udd_disable_resume_interrupt ( )    USBB_REG_CLR(UDINTE,EORSME)
#define udd_disable_sof_interrupt ( )    USBB_REG_CLR(UDINTE,SOFE)
#define udd_disable_suspend_interrupt ( )    USBB_REG_CLR(UDINTE,SUSPE)
#define udd_disable_wake_up_interrupt ( )    USBB_REG_CLR(UDINTE,WAKEUPE)
#define udd_enable_msof_interrupt ( )    USBB_REG_SET(UDINTE,MSOFE)

Manage Micro start of frame event (High Speed Only)

#define udd_enable_remote_wake_up_interrupt ( )    USBB_REG_SET(UDINTE,UPRSME)

Manage upstream resume event (=remote wakeup from device) The USB driver sends a resume signal called "Upstream Resume".

#define udd_enable_reset_interrupt ( )    USBB_REG_SET(UDINTE,EORSTE)

Manage reset event Set when a USB "End of Reset" has been detected.

#define udd_enable_resume_interrupt ( )    USBB_REG_SET(UDINTE,EORSME)

Manage downstream resume event (=remote wakeup from host) The USB controller detects a valid "End of Resume" signal initiated by the host.

#define udd_enable_sof_interrupt ( )    USBB_REG_SET(UDINTE,SOFE)

Manage start of frame event.

#define udd_enable_suspend_interrupt ( )    USBB_REG_SET(UDINTE,SUSPE)

Manage suspend event.

#define udd_enable_wake_up_interrupt ( )    USBB_REG_SET(UDINTE,WAKEUPE)

Manage wake-up event (=usb line activity) The USB controller is reactivated by a filtered non-idle signal from the lines.

#define udd_frame_number ( )    (USBB_RD_BITFIELD(UDFNUM,FNUM))
#define udd_get_endpoint_max_nbr ( )
Value:
(((USBB_RD_BITFIELD(UFEATURES_EPT_NBR,MAX) - 1) \
& ((1 << AVR32_USBB_UFEATURES_EPT_NBR_MAX_SIZE) - 1)) + 1)
#define USBB_RD_BITFIELD(reg, bit)
Definition: usbb_otg.h:53

Get maximal number of endpoints.

#define udd_high_speed_disable ( )    do { } while (0)

Referenced by main_otg_init().

#define udd_high_speed_enable ( )    do { } while (0)

Referenced by main_otg_init().

#define udd_initiate_remote_wake_up ( )    USBB_SET_BITS(UDCON,RMWKUP)

Initiates a remote wake-up event.

Referenced by main_test20().

#define udd_low_speed_disable ( )    USBB_CLR_BITS(UDCON,LS)

Referenced by main_otg_init().

#define udd_low_speed_enable ( )    USBB_SET_BITS(UDCON,LS)

Enable/disable device low-speed mode.

Referenced by main_otg_init().

#define udd_micro_frame_number ( )
Value:
(Rd_bitfield(AVR32_USBB.udfnum, \
(AVR32_USBB_UDFNUM_FNUM_MASK|AVR32_USBB_UDFNUM_MFNUM_MASK)))
#define Rd_bitfield(value, mask)
Reads the bit-field of a value specified by a given bit-mask.
Definition: compiler.h:507
#define udd_raise_msof ( )    USBB_REG_SET(UDINT,MSOF)
#define udd_raise_remote_wake_up_start ( )    USBB_REG_SET(UDINT,UPRSM)
#define udd_raise_reset ( )    USBB_REG_SET(UDINT,EORST)
#define udd_raise_resume ( )    USBB_REG_SET(UDINT,EORSM)
#define udd_raise_sof ( )    USBB_REG_SET(UDINT,SOF)
#define udd_raise_suspend ( )    USBB_REG_SET(UDINT,SUSP)
#define udd_raise_wake_up ( )    USBB_REG_SET(UDINT,WAKEUP)