Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

usb_drv.h File Reference

Copyright (c) 2004 This file contains the USB low level driver definition. More...

#include "conf\conf_usb.h"

Go to the source code of this file.

Defines

#define EP_CONTROL   0
#define EP_1   1
#define EP_2   2
#define EP_3   3
#define EP_4   4
#define EP_5   5
#define EP_6   6
#define EP_7   7
#define MSK_EP_DIR   0x7F
#define TYPE_CONTROL   0
 Parameters for endpoint configuration These define are the values used to enable and configure an endpoint.

#define TYPE_ISOCHRONOUS   1
#define TYPE_BULK   2
#define TYPE_INTERRUPT   3
#define DIRECTION_OUT   0
#define DIRECTION_IN   1
#define SIZE_8   0
#define SIZE_16   1
#define SIZE_32   2
#define SIZE_64   3
#define SIZE_128   4
#define SIZE_256   5
#define SIZE_512   6
#define SIZE_1024   7
#define ONE_BANK   0
#define TWO_BANKS   1
#define NYET_ENABLED   0
#define NYET_DISABLED   1
#define Usb_build_ep_config0(type, dir, nyet)   ((type<<6) | (nyet<<1) | (dir))
#define Usb_build_ep_config1(size, bank)   ((size<<4) | (bank<<2) )
#define usb_configure_endpoint(num, type, dir, size, bank, nyet)
#define Usb_enable()   (USBCON |= MSK_USBE)
 General USB management These macros manage the USB controller.

#define Usb_disable()   (USBCON &= ~MSK_USBE)
#define Usb_select_device()
#define Usb_select_host()
#define Usb_freeze_clock()   (USBCON |= MSK_SUSPCLK)
#define Usb_unfreeze_clock()   (USBCON &= ~MSK_SUSPCLK)
#define Usb_enable_id_interrupt()
#define Usb_disable_id_interrupt()
#define Usb_enable_vbus_interrupt()
#define Usb_disable_vbus_interrupt()
#define Is_usb_enabled()   (USBCON & MSK_USBE == MSK_USBE)
#define Is_usb_host_enabled()   (FALSE)
#define Is_usb_clock_freezed()   (USBCON & MSK_SUSPCLK == MSK_SUSPCLK)
#define Is_usb_vbus_high()   (TRUE)
#define Is_usb_high_speed()   (FALSE)
#define Is_usb_id_device()   (TRUE)
#define Usb_ack_id_transition()
#define Usb_ack_vbus_transition()
#define Is_usb_id_transition()   (FALSE)
#define Is_usb_vbus_transition()   (FALSE)
#define Usb_enter_dpram_mode()
#define Usb_exit_dpram_mode()
#define Usb_set_dpram_address(addr)
#define Usb_enable_vbus()
#define Usb_disable_vbus()
#define Usb_device_initiate_hnp()
#define Usb_host_accept_hnp()
#define Usb_host_reject_hnp()
#define Usb_device_initiate_srp()
#define Usb_select_vbus_srp_method()
#define Usb_select_data_srp_method()
#define Usb_enable_vbus_hw_control()
#define Usb_disable_vbus_hw_control()
#define Is_usb_vbus_enabled()   (TRUE)
#define Is_usb_hnp()   (FALSE)
#define Is_usb_device_srp()   (FALSE)
#define Usb_enable_suspend_time_out_interrupt()
#define Usb_enable_hnp_error_interrupt()
#define Usb_enable_role_exchange_interrupt()
#define Usb_enable_bconnection_error_interrupt()
#define Usb_enable_vbus_error_interrupt()
#define Usb_enable_srp_interrupt()
#define Usb_disable_suspend_time_out_interrupt()
#define Usb_disable_hnp_error_interrupt()
#define Usb_disable_role_exchange_interrupt()
#define Usb_disable_bconnection_error_interrupt()
#define Usb_disable_vbus_error_interrupt()
#define Usb_disable_srp_interrupt()
#define Usb_ack_suspend_time_out_interrupt()
#define Usb_ack_hnp_error_interrupt()
#define Usb_ack_role_exchange_interrupt()
#define Usb_ack_bconnection_error_interrupt()
#define Usb_ack_vbus_error_interrupt()
#define Usb_ack_srp_interrupt()
#define Is_usb_suspend_time_out_interrupt()   (FALSE)
#define Is_usb_hnp_error_interrupt()   (FALSE)
#define Is_usb_role_exchange_interrupt()   (FALSE)
#define Is_usb_bconnection_error_interrupt()   (FALSE)
#define Is_usb_vbus_error_interrupt()   (FALSE)
#define Is_usb_srp_interrupt()   (FALSE)
#define Usb_initiate_remote_wake_up()   (USBCON |= MSK_SDRMWKUP)
 USB Device management These macros manage the USB Device controller.

#define Usb_detach()   (USBCON |= MSK_DETACH)
#define Usb_attach()   (USBCON &= ~MSK_DETACH)
#define Is_usb_pending_remote_wake_up()   (USBCON & MSK_UPRSM == MSK_UPRSM)
#define Is_usb_detached()   (USBCON & MSK_DETACH == MSK_DETACH)
#define Usb_ack_remote_wake_up_start()   (USBCON &= ~MSK_SDRMWUP)
#define Usb_ack_resume()   (USBINT &= ~MSK_WUPCPU)
#define Usb_ack_wake_up()   (USBINT &= ~MSK_WUPCPU)
#define Usb_ack_reset()   (USBINT &= ~MSK_EORINT)
#define Usb_ack_sof()   (USBINT &= ~MSK_SOFINT)
#define Usb_ack_micro_sof()
#define Usb_ack_suspend()   (USBINT &= ~MSK_SPINT)
#define Is_usb_remote_wake_up_start()   (USBCON & MSK_SDRMWUP)
#define Is_usb_resume()   (USBINT & MSK_WUPCPU)
#define Is_usb_wake_up()   (USBINT & MSK_WUPCPU)
#define Is_usb_reset()   (USBINT & MSK_EORINT)
#define Is_usb_sof()   (USBINT & MSK_SOFINT)
#define Is_usb_micro_sof()   (FALSE)
#define Is_usb_suspend()   (USBINT & MSK_SPINT == MSK_SPINT)
#define Usb_enable_remote_wake_up_interrupt()
#define Usb_enable_resume_interrupt()   (USBIEN |= MSK_EWUPCPU)
#define Usb_enable_wake_up_interrupt()   (USBIEN |= MSK_EWUPCPU)
#define Usb_enable_reset_interrupt()   (USBIEN |= MSK_EEORINT)
#define Usb_enable_sof_interrupt()   (USBIEN |= MSK_ESOFINT)
#define Usb_enable_micro_sof_interrupt()
#define Usb_enable_suspend_interrupt()   (USBIEN |= MSK_ESPINT)
#define Usb_disable_remote_wake_up_interrupt()
#define Usb_disable_resume_interrupt()   (USBIEN &= ~MSK_EWUPCPU)
#define Usb_disable_wake_up_interrupt()   (USBIEN &= ~MSK_EWUPCPU)
#define Usb_disable_reset_interrupt()   (USBIEN &= ~MSK_EEORINT)
#define Usb_disable_sof_interrupt()   (USBIEN &= ~MSK_ESOFINT)
#define Usb_disable_micro_sof_interrupt()
#define Usb_disable_suspend_interrupt()   (USBIEN &= ~MSK_ESPINT)
#define Usb_enable_address()   (USBADDR |= MSK_FEN)
#define Usb_disable_address()   (USBADDR &= ~MSK_FEN)
#define Usb_configure_address(addr)   (Usb_disable_address(), USBADDR = (U8)addr)
#define Usb_frame_number()   ((U16)((((U16)UFNUMH & 0x07) << 8) | ((U16)UDNUML)))
#define Usb_micro_frame_number()   (0)
#define Is_usb_frame_number_crc_error()   (UFNUMH & MSK_CRCERR == MSK_CRCERR)
#define Usb_enter_test_packet_mode()
#define Usb_enter_test_k_mode()
#define Usb_enter_test_j_mode()
#define Usb_force_normal_speed()
#define Usb_force_full_speed()
#define Usb_force_high_speed()
#define Usb_force_full_speed_utmi()
#define Usb_exit_test_packet_mode()
#define Usb_exit_test_k_mode()
#define Usb_exit_test_j_mode()
#define Usb_set_loopback_mode()
#define Usb_select_endpoint(ep)   (UEPNUM = (U8)ep)
 General endpoint management These macros manage the common features of the endpoints.

#define Usb_select_endpoint_dfc(ep)   (UEPNUM = (U8)ep)
#define Usb_reset_endpoint(ep)   (UEPRST = 1 << (U8)ep, UEPRST = 0)
#define Usb_enable_endpoint()   (UEPCONX |= MSK_EPEN)
#define Usb_enable_stall_handshake()   (UEPSTAX |= MSK_STALLRQ)
#define Usb_reset_data_toggle()
#define Usb_select_epnum_for_dfc()
#define Usb_enable_dfc()
#define Usb_disable_endpoint()   (UEPCONX &= ~MSK_EPEN)
#define Usb_disable_stall_handshake()   (UEPSTAX &= ~MSK_STALLRQ)
#define Usb_select_epnum_for_cpu()
#define Usb_disable_dfc()
#define Is_usb_endpoint_enabled()   (UEPCONX & MSK_EPEN)
#define Is_usb_endpoint_stall_requested()   (UEPSTAX & MSK_STALLRQ)
#define Usb_configure_endpoint_type(type)   (UEPCONX = (UEPCONX & ~MSK_EPTYPE) | ((U8)type))
#define Usb_enable_iso_autoswitch()
#define Usb_enable_autoswitch()
#define Usb_enable_nyet()
#define Usb_disable_iso_autoswitch()
#define Usb_disable_autoswitch()
#define Usb_disable_nyet()
#define Usb_configure_endpoint_direction(dir)   (UEPCONX = (UEPCONX & ~MSK_EPDIR) | ((U8)dir << 2))
#define Usb_configure_endpoint_size(size)
#define Usb_configure_endpoint_bank(bank)
#define Usb_allocate_memory()
#define Usb_unallocate_memory()
#define Usb_ack_overflow_interrupt()
#define Usb_ack_underflow_interrupt()
#define Usb_ack_zlp()
#define Usb_data_toggle()
#define Usb_nb_busy_bank()   (0xFF)
#define Is_usb_one_bank_busy()   (FALSE)
#define Is_endpoint_configured()   (UEPCONX & MSK_EPEN == MSK_EPEN)
#define Is_usb_overflow()   (FALSE)
#define Is_usb_underflow()   (FALSE)
#define Is_usb_zlp()   (FALSE)
#define Usb_control_direction()   (UEPCONX & MSK_EPDIR)
#define Usb_current_bank()   (0xFF)
#define Usb_ack_fifocon()
#define Usb_ack_nak_in()
#define Usb_ack_nak_out()
#define Usb_ack_receive_setup()   (UEPSTAX &= ~MSK_RXSETUP)
#define Usb_ack_receive_out()   (UEPSTAX &= ~MSK_RXOUT)
#define Usb_ack_stalled()   (UEPSTAX &= ~MSK_STALLED)
#define Usb_ack_in_ready()   (UEPSTAX &= ~MSK_TXCMPL)
#define Usb_kill_last_in_bank()
#define Is_usb_read_enabled()   (TRUE)
#define Is_usb_write_enabled()   (TRUE)
#define Is_usb_read_control_enabled()   (UEPSTAX & MSK_TXCMPL)
#define Is_usb_receive_setup()   (UEPSTAX & MSK_RXSETUP)
#define Is_usb_receive_out()   (UEPSTAX & MSK_RXOUTB0B1)
#define Usb_ack_receive_out_ms()   {if(rx_bank){UEPSTAX&=~MSK_RXOUTB1;}else{UEPSTAX&=(~MSK_RXOUTB0);}rx_bank=~rx_bank;}
#define Is_usb_receive_out_ms()   Is_usb_receive_out()
#define Usb_ack_receive_out_hid()   {if(rx_bank){UEPSTAX&=~MSK_RXOUTB1;}else{UEPSTAX&=(~MSK_RXOUTB0);}rx_bank=~rx_bank;}
#define Is_usb_receive_out_hid()   Is_usb_receive_out()
#define Is_usb_in_ready()   (UEPSTAX & MSK_TXCMPL)
#define Usb_send_in()   UEPSTAX |= MSK_TXRDY; while(!Is_usb_in_ready());Usb_ack_in_ready()
#define Usb_send_control_in()   (UEPSTAX |= MSK_TXRDY)
#define Usb_free_out_bank()   (UEPSTAX |= MSK_RXOUT)
#define Usb_ack_control_out()   (UEPSTAX |= MSK_RXOUT)
#define Usb_set_DIR()   (UEPSTAX |= MSK_DIR)
#define Usb_enable_flow_error_interrupt()
#define Usb_enable_nak_in_interrupt()
#define Usb_enable_nak_out_interrupt()
#define Usb_enable_receive_setup_interrupt()
#define Usb_enable_receive_out_interrupt()
#define Usb_enable_stalled_interrupt()
#define Usb_enable_in_ready_interrupt()
#define Usb_disable_flow_error_interrupt()
#define Usb_disable_nak_in_interrupt()
#define Usb_disable_nak_out_interrupt()
#define Usb_disable_receive_setup_interrupt()
#define Usb_disable_receive_out_interrupt()
#define Usb_disable_stalled_interrupt()
#define Usb_disable_in_ready_interrupt()
#define Usb_read_byte()   (UEPDATX)
#define Usb_write_byte(byte)   (UEPDATX = (U8)byte)
#define Usb_byte_counter()   ((((U16)UBYCTHX) << 8) | (UBYCTLX))
#define Usb_byte_counter_8()   ((U8)UBYCTLX)
#define Usb_interrupt_flags()   (UEPINT != 0x00)
#define Is_usb_endpoint_event()   (Usb_interrupt_flags())
#define Usb_select_ep_for_cpu(ep)
#define Usb_select_ep_for_dfc(ep)
#define Usb_set_cfg0(cfg0)   (cfg0 = cfg0)
#define Usb_set_cfg1(cfg1)   (cfg1 = cfg1)
#define wSWAP(x)
 wSWAP This macro swaps the U8 order in words.

#define PLL_3MHz   0xF0
 dwSWAP This macro swaps the U8 order in double words.

#define PLL_4MHz   0xC0
#define PLL_6MHz   0x70
#define PLL_8MHz   0x50
#define PLL_12MHz   0x30
#define PLL_16MHz   0x20
#define PLL_18MHz   0x72
#define PLL_20MHz   0xB4
#define PLL_24MHz   0x10
#define PLL_32MHz   0x21
#define PLL_40MHz   0xB9
#define Pll_stop()   (PLLCON &= ~MSK_PLLEN)
#define Pll_set_div(n)   (PLLDIV = n)
#define Pll_enable()   (PLLCON |= MSK_PLLEN)

Typedefs

typedef enum endpoint_parameter t_endpoint_parameter

Enumerations

enum  endpoint_parameter {
  ep_num, ep_type, ep_direction, ep_size,
  ep_bank, nyet_status
}

Functions

U8 usb_config_ep (U8, U8)
 usb_configure_endpoint.

U8 usb_select_enpoint_interrupt (void)
 usb_select_endpoint_interrupt.

U16 usb_get_nb_byte_epw (void)
U8 usb_send_packet (U8, U8 *, U8)
 usb_send_packet.

U8 usb_read_packet (U8, U8 *, U8)
 usb_read_packet.

void usb_halt_endpoint (U8)
void usb_reset_endpoint (U8)
U8 usb_init_device (void)
 usb_init_device.

void usb_generate_clock (void)
 Usb_configure_clock.


Variables

bdata bit rx_bank


Detailed Description

Copyright (c) 2004 This file contains the USB low level driver definition.

Use of this program is subject to Atmel's End User License Agreement. Please read file license.txt for copyright notice.

Version:
1.19.2.1 (c5131-usb-generic-1_2_0)

Todo:
Bug:

Definition in file usb_drv.h.


Define Documentation

#define EP_CONTROL   0
 

Definition at line 29 of file usb_drv.h.

Referenced by usb_clear_feature(), usb_init_device(), usb_process_request(), usb_set_feature(), and usb_task().

#define EP_1   1
 

Definition at line 30 of file usb_drv.h.

#define EP_2   2
 

Definition at line 31 of file usb_drv.h.

#define EP_3   3
 

Definition at line 32 of file usb_drv.h.

#define EP_4   4
 

Definition at line 33 of file usb_drv.h.

#define EP_5   5
 

Definition at line 34 of file usb_drv.h.

#define EP_6   6
 

Definition at line 35 of file usb_drv.h.

#define EP_7   7
 

Definition at line 36 of file usb_drv.h.

#define MSK_EP_DIR   0x7F
 

Definition at line 38 of file usb_drv.h.

#define TYPE_CONTROL   0
 

Parameters for endpoint configuration These define are the values used to enable and configure an endpoint.

Definition at line 42 of file usb_drv.h.

Referenced by usb_init_device().

#define TYPE_ISOCHRONOUS   1
 

Definition at line 43 of file usb_drv.h.

#define TYPE_BULK   2
 

Definition at line 44 of file usb_drv.h.

#define TYPE_INTERRUPT   3
 

Definition at line 45 of file usb_drv.h.

Referenced by usb_user_endpoint_init().

#define DIRECTION_OUT   0
 

Definition at line 47 of file usb_drv.h.

Referenced by usb_init_device(), and usb_user_endpoint_init().

#define DIRECTION_IN   1
 

Definition at line 48 of file usb_drv.h.

Referenced by usb_user_endpoint_init().

#define SIZE_8   0
 

Definition at line 50 of file usb_drv.h.

#define SIZE_16   1
 

Definition at line 51 of file usb_drv.h.

#define SIZE_32   2
 

Definition at line 52 of file usb_drv.h.

#define SIZE_64   3
 

Definition at line 53 of file usb_drv.h.

Referenced by usb_init_device(), and usb_user_endpoint_init().

#define SIZE_128   4
 

Definition at line 54 of file usb_drv.h.

#define SIZE_256   5
 

Definition at line 55 of file usb_drv.h.

#define SIZE_512   6
 

Definition at line 56 of file usb_drv.h.

Referenced by usb_user_endpoint_init().

#define SIZE_1024   7
 

Definition at line 57 of file usb_drv.h.

#define ONE_BANK   0
 

Definition at line 59 of file usb_drv.h.

Referenced by usb_init_device().

#define TWO_BANKS   1
 

Definition at line 60 of file usb_drv.h.

Referenced by usb_user_endpoint_init().

#define NYET_ENABLED   0
 

Definition at line 62 of file usb_drv.h.

Referenced by usb_user_endpoint_init().

#define NYET_DISABLED   1
 

Definition at line 63 of file usb_drv.h.

Referenced by usb_init_device().

#define Usb_build_ep_config0 type,
dir,
nyet   )     ((type<<6) | (nyet<<1) | (dir))
 

Definition at line 65 of file usb_drv.h.

#define Usb_build_ep_config1 size,
bank   )     ((size<<4) | (bank<<2) )
 

Definition at line 66 of file usb_drv.h.

#define usb_configure_endpoint num,
type,
dir,
size,
bank,
nyet   ) 
 

Value:

( Usb_select_endpoint(num), \ usb_config_ep(Usb_build_ep_config0(type, dir, nyet),\ Usb_build_ep_config1(size, bank) ))

Definition at line 67 of file usb_drv.h.

Referenced by usb_init_device(), and usb_user_endpoint_init().

 
#define Usb_enable  )     (USBCON |= MSK_USBE)
 

General USB management These macros manage the USB controller.

Definition at line 76 of file usb_drv.h.

Referenced by usb_task_init().

 
#define Usb_disable  )     (USBCON &= ~MSK_USBE)
 

Definition at line 77 of file usb_drv.h.

Referenced by user_application_task().

 
#define Usb_select_device  ) 
 

Definition at line 78 of file usb_drv.h.

 
#define Usb_select_host  ) 
 

Definition at line 79 of file usb_drv.h.

 
#define Usb_freeze_clock  )     (USBCON |= MSK_SUSPCLK)
 

Definition at line 80 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Usb_unfreeze_clock  )     (USBCON &= ~MSK_SUSPCLK)
 

Definition at line 81 of file usb_drv.h.

Referenced by usb_interrupt(), and usb_start_device().

 
#define Usb_enable_id_interrupt  ) 
 

Definition at line 82 of file usb_drv.h.

 
#define Usb_disable_id_interrupt  ) 
 

Definition at line 83 of file usb_drv.h.

 
#define Usb_enable_vbus_interrupt  ) 
 

Definition at line 84 of file usb_drv.h.

 
#define Usb_disable_vbus_interrupt  ) 
 

Definition at line 85 of file usb_drv.h.

 
#define Is_usb_enabled  )     (USBCON & MSK_USBE == MSK_USBE)
 

Definition at line 86 of file usb_drv.h.

 
#define Is_usb_host_enabled  )     (FALSE)
 

Definition at line 87 of file usb_drv.h.

 
#define Is_usb_clock_freezed  )     (USBCON & MSK_SUSPCLK == MSK_SUSPCLK)
 

Definition at line 88 of file usb_drv.h.

 
#define Is_usb_vbus_high  )     (TRUE)
 

Definition at line 90 of file usb_drv.h.

 
#define Is_usb_high_speed  )     (FALSE)
 

Definition at line 91 of file usb_drv.h.

Referenced by usb_user_endpoint_init().

 
#define Is_usb_id_device  )     (TRUE)
 

Definition at line 92 of file usb_drv.h.

 
#define Usb_ack_id_transition  ) 
 

Definition at line 94 of file usb_drv.h.

 
#define Usb_ack_vbus_transition  ) 
 

Definition at line 95 of file usb_drv.h.

 
#define Is_usb_id_transition  )     (FALSE)
 

Definition at line 96 of file usb_drv.h.

 
#define Is_usb_vbus_transition  )     (FALSE)
 

Definition at line 97 of file usb_drv.h.

 
#define Usb_enter_dpram_mode  ) 
 

Definition at line 99 of file usb_drv.h.

 
#define Usb_exit_dpram_mode  ) 
 

Definition at line 100 of file usb_drv.h.

#define Usb_set_dpram_address addr   ) 
 

Definition at line 101 of file usb_drv.h.

 
#define Usb_enable_vbus  ) 
 

Definition at line 103 of file usb_drv.h.

 
#define Usb_disable_vbus  ) 
 

Definition at line 104 of file usb_drv.h.

 
#define Usb_device_initiate_hnp  ) 
 

Definition at line 105 of file usb_drv.h.

 
#define Usb_host_accept_hnp  ) 
 

Definition at line 106 of file usb_drv.h.

 
#define Usb_host_reject_hnp  ) 
 

Definition at line 107 of file usb_drv.h.

 
#define Usb_device_initiate_srp  ) 
 

Definition at line 108 of file usb_drv.h.

 
#define Usb_select_vbus_srp_method  ) 
 

Definition at line 109 of file usb_drv.h.

 
#define Usb_select_data_srp_method  ) 
 

Definition at line 110 of file usb_drv.h.

 
#define Usb_enable_vbus_hw_control  ) 
 

Definition at line 111 of file usb_drv.h.

 
#define Usb_disable_vbus_hw_control  ) 
 

Definition at line 112 of file usb_drv.h.

 
#define Is_usb_vbus_enabled  )     (TRUE)
 

Definition at line 113 of file usb_drv.h.

 
#define Is_usb_hnp  )     (FALSE)
 

Definition at line 114 of file usb_drv.h.

 
#define Is_usb_device_srp  )     (FALSE)
 

Definition at line 115 of file usb_drv.h.

 
#define Usb_enable_suspend_time_out_interrupt  ) 
 

Definition at line 117 of file usb_drv.h.

 
#define Usb_enable_hnp_error_interrupt  ) 
 

Definition at line 118 of file usb_drv.h.

 
#define Usb_enable_role_exchange_interrupt  ) 
 

Definition at line 119 of file usb_drv.h.

 
#define Usb_enable_bconnection_error_interrupt  ) 
 

Definition at line 120 of file usb_drv.h.

 
#define Usb_enable_vbus_error_interrupt  ) 
 

Definition at line 121 of file usb_drv.h.

 
#define Usb_enable_srp_interrupt  ) 
 

Definition at line 122 of file usb_drv.h.

 
#define Usb_disable_suspend_time_out_interrupt  ) 
 

Definition at line 123 of file usb_drv.h.

 
#define Usb_disable_hnp_error_interrupt  ) 
 

Definition at line 124 of file usb_drv.h.

 
#define Usb_disable_role_exchange_interrupt  ) 
 

Definition at line 125 of file usb_drv.h.

 
#define Usb_disable_bconnection_error_interrupt  ) 
 

Definition at line 126 of file usb_drv.h.

 
#define Usb_disable_vbus_error_interrupt  ) 
 

Definition at line 127 of file usb_drv.h.

 
#define Usb_disable_srp_interrupt  ) 
 

Definition at line 128 of file usb_drv.h.

 
#define Usb_ack_suspend_time_out_interrupt  ) 
 

Definition at line 130 of file usb_drv.h.

 
#define Usb_ack_hnp_error_interrupt  ) 
 

Definition at line 131 of file usb_drv.h.

 
#define Usb_ack_role_exchange_interrupt  ) 
 

Definition at line 132 of file usb_drv.h.

 
#define Usb_ack_bconnection_error_interrupt  ) 
 

Definition at line 133 of file usb_drv.h.

 
#define Usb_ack_vbus_error_interrupt  ) 
 

Definition at line 134 of file usb_drv.h.

 
#define Usb_ack_srp_interrupt  ) 
 

Definition at line 135 of file usb_drv.h.

 
#define Is_usb_suspend_time_out_interrupt  )     (FALSE)
 

Definition at line 136 of file usb_drv.h.

 
#define Is_usb_hnp_error_interrupt  )     (FALSE)
 

Definition at line 137 of file usb_drv.h.

 
#define Is_usb_role_exchange_interrupt  )     (FALSE)
 

Definition at line 138 of file usb_drv.h.

 
#define Is_usb_bconnection_error_interrupt  )     (FALSE)
 

Definition at line 139 of file usb_drv.h.

 
#define Is_usb_vbus_error_interrupt  )     (FALSE)
 

Definition at line 140 of file usb_drv.h.

 
#define Is_usb_srp_interrupt  )     (FALSE)
 

Definition at line 141 of file usb_drv.h.

 
#define Usb_initiate_remote_wake_up  )     (USBCON |= MSK_SDRMWKUP)
 

USB Device management These macros manage the USB Device controller.

Definition at line 148 of file usb_drv.h.

 
#define Usb_detach  )     (USBCON |= MSK_DETACH)
 

Definition at line 149 of file usb_drv.h.

Referenced by usb_start_device(), and user_application_task().

 
#define Usb_attach  )     (USBCON &= ~MSK_DETACH)
 

Definition at line 150 of file usb_drv.h.

Referenced by usb_start_device().

 
#define Is_usb_pending_remote_wake_up  )     (USBCON & MSK_UPRSM == MSK_UPRSM)
 

Definition at line 151 of file usb_drv.h.

 
#define Is_usb_detached  )     (USBCON & MSK_DETACH == MSK_DETACH)
 

Definition at line 152 of file usb_drv.h.

 
#define Usb_ack_remote_wake_up_start  )     (USBCON &= ~MSK_SDRMWUP)
 

Definition at line 154 of file usb_drv.h.

 
#define Usb_ack_resume  )     (USBINT &= ~MSK_WUPCPU)
 

Definition at line 155 of file usb_drv.h.

 
#define Usb_ack_wake_up  )     (USBINT &= ~MSK_WUPCPU)
 

Definition at line 156 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Usb_ack_reset  )     (USBINT &= ~MSK_EORINT)
 

Definition at line 157 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Usb_ack_sof  )     (USBINT &= ~MSK_SOFINT)
 

Definition at line 158 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Usb_ack_micro_sof  ) 
 

Definition at line 159 of file usb_drv.h.

 
#define Usb_ack_suspend  )     (USBINT &= ~MSK_SPINT)
 

Definition at line 160 of file usb_drv.h.

Referenced by usb_interrupt(), and usb_start_device().

 
#define Is_usb_remote_wake_up_start  )     (USBCON & MSK_SDRMWUP)
 

Definition at line 161 of file usb_drv.h.

 
#define Is_usb_resume  )     (USBINT & MSK_WUPCPU)
 

Definition at line 162 of file usb_drv.h.

 
#define Is_usb_wake_up  )     (USBINT & MSK_WUPCPU)
 

Definition at line 163 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Is_usb_reset  )     (USBINT & MSK_EORINT)
 

Definition at line 164 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Is_usb_sof  )     (USBINT & MSK_SOFINT)
 

Definition at line 165 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Is_usb_micro_sof  )     (FALSE)
 

Definition at line 166 of file usb_drv.h.

 
#define Is_usb_suspend  )     (USBINT & MSK_SPINT == MSK_SPINT)
 

Definition at line 167 of file usb_drv.h.

Referenced by usb_interrupt().

 
#define Usb_enable_remote_wake_up_interrupt  ) 
 

Definition at line 169 of file usb_drv.h.

 
#define Usb_enable_resume_interrupt  )     (USBIEN |= MSK_EWUPCPU)
 

Definition at line 170 of file usb_drv.h.

Referenced by usb_start_device().

 
#define Usb_enable_wake_up_interrupt  )     (USBIEN |= MSK_EWUPCPU)
 

Definition at line 171 of file usb_drv.h.

Referenced by usb_interrupt(), and usb_start_device().

 
#define Usb_enable_reset_interrupt  )     (USBIEN |= MSK_EEORINT)
 

Definition at line 172 of file usb_drv.h.

Referenced by usb_start_device().

 
#define Usb_enable_sof_interrupt  )     (USBIEN |= MSK_ESOFINT)
 

Definition at line 173 of file usb_drv.h.

Referenced by usb_interrupt(), and usb_start_device().

 
#define Usb_enable_micro_sof_interrupt  ) 
 

Definition at line 174 of file usb_drv.h.

 
#define Usb_enable_suspend_interrupt  )     (USBIEN |= MSK_ESPINT)
 

Definition at line 175 of file usb_drv.h.

Referenced by usb_interrupt(), and usb_start_device().

 
#define Usb_disable_remote_wake_up_interrupt  ) 
 

Definition at line 176 of file usb_drv.h.

 
#define Usb_disable_resume_interrupt  )     (USBIEN &= ~MSK_EWUPCPU)
 

Definition at line 177 of file usb_drv.h.

 
#define Usb_disable_wake_up_interrupt  )     (USBIEN &= ~MSK_EWUPCPU)
 

Definition at line 178 of file usb_drv.h.

 
#define Usb_disable_reset_interrupt  )     (USBIEN &= ~MSK_EEORINT)
 

Definition at line 179 of file usb_drv.h.

 
#define Usb_disable_sof_interrupt  )     (USBIEN &= ~MSK_ESOFINT)
 

Definition at line 180 of file usb_drv.h.

 
#define Usb_disable_micro_sof_interrupt  ) 
 

Definition at line 181 of file usb_drv.h.

 
#define Usb_disable_suspend_interrupt  )     (USBIEN &= ~MSK_ESPINT)
 

Definition at line 182 of file usb_drv.h.

 
#define Usb_enable_address  )     (USBADDR |= MSK_FEN)
 

Definition at line 184 of file usb_drv.h.

Referenced by usb_set_address().

 
#define Usb_disable_address  )     (USBADDR &= ~MSK_FEN)
 

Definition at line 185 of file usb_drv.h.

#define Usb_configure_address addr   )     (Usb_disable_address(), USBADDR = (U8)addr)
 

Definition at line 186 of file usb_drv.h.

Referenced by usb_set_address().

 
#define Usb_frame_number  )     ((U16)((((U16)UFNUMH & 0x07) << 8) | ((U16)UDNUML)))
 

Definition at line 188 of file usb_drv.h.

 
#define Usb_micro_frame_number  )     (0)
 

Definition at line 189 of file usb_drv.h.

 
#define Is_usb_frame_number_crc_error  )     (UFNUMH & MSK_CRCERR == MSK_CRCERR)
 

Definition at line 190 of file usb_drv.h.

 
#define Usb_enter_test_packet_mode  ) 
 

Definition at line 192 of file usb_drv.h.

 
#define Usb_enter_test_k_mode  ) 
 

Definition at line 193 of file usb_drv.h.

 
#define Usb_enter_test_j_mode  ) 
 

Definition at line 194 of file usb_drv.h.

 
#define Usb_force_normal_speed  ) 
 

Definition at line 195 of file usb_drv.h.

 
#define Usb_force_full_speed  ) 
 

Definition at line 196 of file usb_drv.h.

 
#define Usb_force_high_speed  ) 
 

Definition at line 197 of file usb_drv.h.

 
#define Usb_force_full_speed_utmi  ) 
 

Definition at line 198 of file usb_drv.h.

 
#define Usb_exit_test_packet_mode  ) 
 

Definition at line 199 of file usb_drv.h.

 
#define Usb_exit_test_k_mode  ) 
 

Definition at line 200 of file usb_drv.h.

 
#define Usb_exit_test_j_mode  ) 
 

Definition at line 201 of file usb_drv.h.

 
#define Usb_set_loopback_mode  ) 
 

Definition at line 203 of file usb_drv.h.

#define Usb_select_endpoint ep   )     (UEPNUM = (U8)ep)
 

General endpoint management These macros manage the common features of the endpoints.

Definition at line 209 of file usb_drv.h.

Referenced by usb_clear_feature(), usb_process_request(), usb_read_packet(), usb_send_packet(), usb_set_feature(), usb_task(), and usb_write_continuous().

#define Usb_select_endpoint_dfc ep   )     (UEPNUM = (U8)ep)
 

Definition at line 210 of file usb_drv.h.

#define Usb_reset_endpoint ep   )     (UEPRST = 1 << (U8)ep, UEPRST = 0)
 

Definition at line 212 of file usb_drv.h.

Referenced by usb_clear_feature().

 
#define Usb_enable_endpoint  )     (UEPCONX |= MSK_EPEN)
 

Definition at line 214 of file usb_drv.h.

Referenced by usb_config_ep().

 
#define Usb_enable_stall_handshake  )     (UEPSTAX |= MSK_STALLRQ)
 

Definition at line 215 of file usb_drv.h.

Referenced by usb_clear_feature(), usb_get_descriptor(), usb_get_status(), usb_process_request(), usb_set_configuration(), and usb_set_feature().

 
#define Usb_reset_data_toggle  ) 
 

Definition at line 216 of file usb_drv.h.

Referenced by usb_clear_feature().

 
#define Usb_select_epnum_for_dfc  ) 
 

Definition at line 217 of file usb_drv.h.

 
#define Usb_enable_dfc  ) 
 

Definition at line 218 of file usb_drv.h.

 
#define Usb_disable_endpoint  )     (UEPCONX &= ~MSK_EPEN)
 

Definition at line 219 of file usb_drv.h.

 
#define Usb_disable_stall_handshake  )     (UEPSTAX &= ~MSK_STALLRQ)
 

Definition at line 220 of file usb_drv.h.

Referenced by usb_clear_feature().

 
#define Usb_select_epnum_for_cpu  ) 
 

Definition at line 221 of file usb_drv.h.

 
#define Usb_disable_dfc  ) 
 

Definition at line 222 of file usb_drv.h.

 
#define Is_usb_endpoint_enabled  )     (UEPCONX & MSK_EPEN)
 

Definition at line 223 of file usb_drv.h.

Referenced by usb_clear_feature(), and usb_set_feature().

 
#define Is_usb_endpoint_stall_requested  )     (UEPSTAX & MSK_STALLRQ)
 

Definition at line 224 of file usb_drv.h.

#define Usb_configure_endpoint_type type   )     (UEPCONX = (UEPCONX & ~MSK_EPTYPE) | ((U8)type))
 

Definition at line 226 of file usb_drv.h.

 
#define Usb_enable_iso_autoswitch  ) 
 

Definition at line 227 of file usb_drv.h.

 
#define Usb_enable_autoswitch  ) 
 

Definition at line 228 of file usb_drv.h.

 
#define Usb_enable_nyet  ) 
 

Definition at line 229 of file usb_drv.h.

 
#define Usb_disable_iso_autoswitch  ) 
 

Definition at line 230 of file usb_drv.h.

 
#define Usb_disable_autoswitch  ) 
 

Definition at line 231 of file usb_drv.h.

 
#define Usb_disable_nyet  ) 
 

Definition at line 232 of file usb_drv.h.

#define Usb_configure_endpoint_direction dir   )     (UEPCONX = (UEPCONX & ~MSK_EPDIR) | ((U8)dir << 2))
 

Definition at line 233 of file usb_drv.h.

#define Usb_configure_endpoint_size size   ) 
 

Definition at line 235 of file usb_drv.h.

#define Usb_configure_endpoint_bank bank   ) 
 

Definition at line 236 of file usb_drv.h.

 
#define Usb_allocate_memory  ) 
 

Definition at line 237 of file usb_drv.h.

Referenced by usb_config_ep().

 
#define Usb_unallocate_memory  ) 
 

Definition at line 238 of file usb_drv.h.

 
#define Usb_ack_overflow_interrupt  ) 
 

Definition at line 240 of file usb_drv.h.

 
#define Usb_ack_underflow_interrupt  ) 
 

Definition at line 241 of file usb_drv.h.

 
#define Usb_ack_zlp  ) 
 

Definition at line 242 of file usb_drv.h.

 
#define Usb_data_toggle  ) 
 

Definition at line 243 of file usb_drv.h.

 
#define Usb_nb_busy_bank  )     (0xFF)
 

Definition at line 244 of file usb_drv.h.

 
#define Is_usb_one_bank_busy  )     (FALSE)
 

Definition at line 245 of file usb_drv.h.

 
#define Is_endpoint_configured  )     (UEPCONX & MSK_EPEN == MSK_EPEN)
 

Definition at line 246 of file usb_drv.h.

 
#define Is_usb_overflow  )     (FALSE)
 

Definition at line 247 of file usb_drv.h.

 
#define Is_usb_underflow  )     (FALSE)
 

Definition at line 248 of file usb_drv.h.

 
#define Is_usb_zlp  )     (FALSE)
 

Definition at line 249 of file usb_drv.h.

 
#define Usb_control_direction  )     (UEPCONX & MSK_EPDIR)
 

Definition at line 251 of file usb_drv.h.

 
#define Usb_current_bank  )     (0xFF)
 

Definition at line 252 of file usb_drv.h.

 
#define Usb_ack_fifocon  ) 
 

Definition at line 254 of file usb_drv.h.

 
#define Usb_ack_nak_in  ) 
 

Definition at line 255 of file usb_drv.h.

 
#define Usb_ack_nak_out  ) 
 

Definition at line 256 of file usb_drv.h.

 
#define Usb_ack_receive_setup  )     (UEPSTAX &= ~MSK_RXSETUP)
 

Definition at line 257 of file usb_drv.h.

Referenced by usb_clear_feature(), usb_get_configuration(), usb_get_descriptor(), usb_get_status(), usb_process_request(), usb_set_address(), usb_set_configuration(), usb_set_feature(), and usb_user_read_request().

 
#define Usb_ack_receive_out  )     (UEPSTAX &= ~MSK_RXOUT)
 

Definition at line 258 of file usb_drv.h.

Referenced by usb_get_configuration(), usb_get_descriptor(), usb_get_status(), and usb_user_read_request().

 
#define Usb_ack_stalled  )     (UEPSTAX &= ~MSK_STALLED)
 

Definition at line 259 of file usb_drv.h.

 
#define Usb_ack_in_ready  )     (UEPSTAX &= ~MSK_TXCMPL)
 

Definition at line 260 of file usb_drv.h.

Referenced by usb_get_configuration(), usb_get_descriptor(), usb_get_status(), usb_set_address(), usb_set_configuration(), usb_task(), and usb_user_read_request().

 
#define Usb_kill_last_in_bank  ) 
 

Definition at line 261 of file usb_drv.h.

 
#define Is_usb_read_enabled  )     (TRUE)
 

Definition at line 262 of file usb_drv.h.

Referenced by usb_read_packet().

 
#define Is_usb_write_enabled  )     (TRUE)
 

Definition at line 263 of file usb_drv.h.

Referenced by usb_send_packet().

 
#define Is_usb_read_control_enabled  )     (UEPSTAX & MSK_TXCMPL)
 

Definition at line 264 of file usb_drv.h.

Referenced by usb_get_descriptor().

 
#define Is_usb_receive_setup  )     (UEPSTAX & MSK_RXSETUP)
 

Definition at line 265 of file usb_drv.h.

Referenced by usb_task().

 
#define Is_usb_receive_out  )     (UEPSTAX & MSK_RXOUTB0B1)
 

Definition at line 266 of file usb_drv.h.

Referenced by usb_get_configuration(), usb_get_descriptor(), usb_get_status(), and usb_user_read_request().

 
#define Usb_ack_receive_out_ms  )     {if(rx_bank){UEPSTAX&=~MSK_RXOUTB1;}else{UEPSTAX&=(~MSK_RXOUTB0);}rx_bank=~rx_bank;}
 

Definition at line 271 of file usb_drv.h.

 
#define Is_usb_receive_out_ms  )     Is_usb_receive_out()
 

Definition at line 272 of file usb_drv.h.

 
#define Usb_ack_receive_out_hid  )     {if(rx_bank){UEPSTAX&=~MSK_RXOUTB1;}else{UEPSTAX&=(~MSK_RXOUTB0);}rx_bank=~rx_bank;}
 

Definition at line 278 of file usb_drv.h.

Referenced by usb_read_continuous().

 
#define Is_usb_receive_out_hid  )     Is_usb_receive_out()
 

Definition at line 279 of file usb_drv.h.

 
#define Is_usb_in_ready  )     (UEPSTAX & MSK_TXCMPL)
 

Definition at line 281 of file usb_drv.h.

Referenced by usb_get_configuration(), usb_get_status(), usb_set_address(), usb_set_configuration(), usb_task(), and usb_user_read_request().

 
#define Usb_send_in  )     UEPSTAX |= MSK_TXRDY; while(!Is_usb_in_ready());Usb_ack_in_ready()
 

Definition at line 282 of file usb_drv.h.

 
#define Usb_send_control_in  )     (UEPSTAX |= MSK_TXRDY)
 

Definition at line 283 of file usb_drv.h.

Referenced by usb_clear_feature(), usb_get_configuration(), usb_get_descriptor(), usb_get_status(), usb_send_packet(), usb_set_address(), usb_set_configuration(), usb_set_feature(), usb_user_read_request(), and usb_write_continuous().

 
#define Usb_free_out_bank  )     (UEPSTAX |= MSK_RXOUT)
 

Definition at line 284 of file usb_drv.h.

 
#define Usb_ack_control_out  )     (UEPSTAX |= MSK_RXOUT)
 

Definition at line 285 of file usb_drv.h.

 
#define Usb_set_DIR  )     (UEPSTAX |= MSK_DIR)
 

Definition at line 287 of file usb_drv.h.

Referenced by usb_get_configuration(), usb_get_descriptor(), usb_get_status(), and usb_user_read_request().

 
#define Usb_enable_flow_error_interrupt  ) 
 

Definition at line 290 of file usb_drv.h.

 
#define Usb_enable_nak_in_interrupt  ) 
 

Definition at line 291 of file usb_drv.h.

 
#define Usb_enable_nak_out_interrupt  ) 
 

Definition at line 292 of file usb_drv.h.

 
#define Usb_enable_receive_setup_interrupt  ) 
 

Definition at line 293 of file usb_drv.h.

 
#define Usb_enable_receive_out_interrupt  ) 
 

Definition at line 294 of file usb_drv.h.

 
#define Usb_enable_stalled_interrupt  ) 
 

Definition at line 295 of file usb_drv.h.

 
#define Usb_enable_in_ready_interrupt  ) 
 

Definition at line 296 of file usb_drv.h.

 
#define Usb_disable_flow_error_interrupt  ) 
 

Definition at line 297 of file usb_drv.h.

 
#define Usb_disable_nak_in_interrupt  ) 
 

Definition at line 298 of file usb_drv.h.

 
#define Usb_disable_nak_out_interrupt  ) 
 

Definition at line 299 of file usb_drv.h.

 
#define Usb_disable_receive_setup_interrupt  ) 
 

Definition at line 300 of file usb_drv.h.

 
#define Usb_disable_receive_out_interrupt  ) 
 

Definition at line 301 of file usb_drv.h.

 
#define Usb_disable_stalled_interrupt  ) 
 

Definition at line 302 of file usb_drv.h.

 
#define Usb_disable_in_ready_interrupt  ) 
 

Definition at line 303 of file usb_drv.h.

 
#define Usb_read_byte  )     (UEPDATX)
 

Definition at line 305 of file usb_drv.h.

Referenced by usb_clear_feature(), usb_get_descriptor(), usb_get_status(), usb_process_request(), usb_read_packet(), usb_set_address(), usb_set_configuration(), usb_set_feature(), and usb_user_read_request().

#define Usb_write_byte byte   )     (UEPDATX = (U8)byte)
 

Definition at line 306 of file usb_drv.h.

Referenced by usb_get_configuration(), usb_get_descriptor(), usb_get_status(), usb_send_packet(), usb_user_read_request(), and usb_write_continuous().

 
#define Usb_byte_counter  )     ((((U16)UBYCTHX) << 8) | (UBYCTLX))
 

Definition at line 308 of file usb_drv.h.

 
#define Usb_byte_counter_8  )     ((U8)UBYCTLX)
 

Definition at line 309 of file usb_drv.h.

Referenced by usb_read_continuous().

 
#define Usb_interrupt_flags  )     (UEPINT != 0x00)
 

Definition at line 311 of file usb_drv.h.

Referenced by usb_select_enpoint_interrupt().

 
#define Is_usb_endpoint_event  )     (Usb_interrupt_flags())
 

Definition at line 312 of file usb_drv.h.

#define Usb_select_ep_for_cpu ep   ) 
 

Definition at line 316 of file usb_drv.h.

#define Usb_select_ep_for_dfc ep   ) 
 

Definition at line 317 of file usb_drv.h.

#define Usb_set_cfg0 cfg0   )     (cfg0 = cfg0)
 

Definition at line 319 of file usb_drv.h.

Referenced by usb_config_ep().

#define Usb_set_cfg1 cfg1   )     (cfg1 = cfg1)
 

Definition at line 320 of file usb_drv.h.

Referenced by usb_config_ep().

#define wSWAP  ) 
 

Value:

( (((x)>>8)&0x00FF) \ | (((x)<<8)&0xFF00) \ )
wSWAP This macro swaps the U8 order in words.

Parameters:
x (U16) the 16 bit word to swap
Returns:
(U16) the 16 bit word x with the 2 bytes swaped

Definition at line 330 of file usb_drv.h.

#define PLL_3MHz   0xF0
 

dwSWAP This macro swaps the U8 order in double words.

Parameters:
x (U32) the 32 bit double word to swap
Returns:
(U32) the 32 bit double word x with the 4 bytes swaped

Definition at line 351 of file usb_drv.h.

#define PLL_4MHz   0xC0
 

Definition at line 352 of file usb_drv.h.

#define PLL_6MHz   0x70
 

Definition at line 353 of file usb_drv.h.

#define PLL_8MHz   0x50
 

Definition at line 354 of file usb_drv.h.

#define PLL_12MHz   0x30
 

Definition at line 355 of file usb_drv.h.

#define PLL_16MHz   0x20
 

Definition at line 356 of file usb_drv.h.

#define PLL_18MHz   0x72
 

Definition at line 357 of file usb_drv.h.

#define PLL_20MHz   0xB4
 

Definition at line 358 of file usb_drv.h.

#define PLL_24MHz   0x10
 

Definition at line 359 of file usb_drv.h.

#define PLL_32MHz   0x21
 

Definition at line 360 of file usb_drv.h.

#define PLL_40MHz   0xB9
 

Definition at line 361 of file usb_drv.h.

 
#define Pll_stop  )     (PLLCON &= ~MSK_PLLEN)
 

Definition at line 363 of file usb_drv.h.

Referenced by usb_generate_clock(), usb_task(), and user_application_task().

#define Pll_set_div  )     (PLLDIV = n)
 

Definition at line 364 of file usb_drv.h.

Referenced by usb_generate_clock().

 
#define Pll_enable  )     (PLLCON |= MSK_PLLEN)
 

Definition at line 365 of file usb_drv.h.

Referenced by usb_generate_clock(), and usb_interrupt().


Typedef Documentation

typedef enum endpoint_parameter t_endpoint_parameter
 


Enumeration Type Documentation

enum endpoint_parameter
 

Enumeration values:
ep_num 
ep_type 
ep_direction 
ep_size 
ep_bank 
nyet_status 

Definition at line 21 of file usb_drv.h.


Function Documentation

U8 usb_config_ep U8  config0,
U8  config1
 

usb_configure_endpoint.

This function configures an endpoint with the selected type.

Warning:
Code:xx bytes (function code length)
Parameters:
uc_data_receive Number of the endpoint to configure.
i_length Type to configure.
Returns:
Is_endpoint_configured.
The possible types are: CONTROL BULK_IN BULK_OUT INTERRUPT_IN INTERRUPT_OUT ISOCHRONOUS_IN ISOCHRONOUS_OUT

EXAMPLE: usb_configure_endpoint(EP_CONTROL,TYPE_CONTROL, DIRECTION_OUT, SIZE_64, ONE_BANK, NYET_DISABLED);

NOTE: The endpoint 0 shall always be configured in CONTROL type.

Definition at line 52 of file usb_drv.c.

References MSK_EPEN, TRUE, U8, Usb_allocate_memory, Usb_enable_endpoint, Usb_set_cfg0, and Usb_set_cfg1.

00053 { 00054 Usb_enable_endpoint(); 00055 Usb_set_cfg0(config0); // UECFG0X = config0; 00056 Usb_set_cfg1(config1);// UECFG1X = (UECFG1X & MSK_ALLOC) | config1; 00057 UEPCONX = MSK_EPEN | (config0>>6) | ((config0 & 0x01)<<2); 00058 Usb_allocate_memory(); 00059 return (TRUE); 00060 }

U8 usb_select_enpoint_interrupt void   ) 
 

usb_select_endpoint_interrupt.

This function select the endpoint where an event occurs and returns the number of this endpoint. If no event occurs on the endpoints, this function returns 0.

Warning:
Code:xx bytes (function code length)
Parameters:
none 
Returns:
endpoint number.

Definition at line 74 of file usb_drv.c.

References ep_num, U8, and Usb_interrupt_flags.

00075 { 00076 U8 interrupt_flags; 00077 U8 ep_num; 00078 00079 ep_num = 0; 00080 interrupt_flags = Usb_interrupt_flags(); 00081 00082 while(ep_num < 9) 00083 { 00084 if (interrupt_flags & 1) 00085 { 00086 return (ep_num); 00087 } 00088 else 00089 { 00090 ep_num++; 00091 interrupt_flags = interrupt_flags >> 1; 00092 } 00093 } 00094 return 0; 00095 }

U16 usb_get_nb_byte_epw void   ) 
 

U8 usb_send_packet U8  ep_num,
U8 tbuf,
U8  data_length
 

usb_send_packet.

This function moves the data pointed by tbuf to the selected endpoint fifo and sends it through the USB.

Warning:
Code:xx bytes (function code length)
Parameters:
ep_num number of the addressed endpoint
*tbuf address of the first data to send
data_length number of bytes to send
Returns:
address of the next U8 to send.
Example: usb_send_packet(3,&first_data,0x20); // send packet on the endpoint #3 while(!(Usb_tx_complete)); // wait packet ACK'ed by the Host Usb_clear_tx_complete(); // acknowledge the transmit

Note: tbuf is incremented of 'data_length'.

Definition at line 118 of file usb_drv.c.

References ep_num, Is_usb_write_enabled, U8, Usb_select_endpoint, Usb_send_control_in, and Usb_write_byte.

00119 { 00120 U8 remaining_length; 00121 00122 remaining_length = data_length; 00123 Usb_select_endpoint(ep_num); 00124 while(Is_usb_write_enabled() && (0 != remaining_length)) 00125 { 00126 Usb_write_byte(*tbuf); 00127 remaining_length--; 00128 tbuf++; 00129 } 00130 Usb_send_control_in(); 00131 return remaining_length; 00132 }

U8 usb_read_packet U8  ep_num,
U8 rbuf,
U8  data_length
 

usb_read_packet.

This function moves the data stored in the selected endpoint fifo to the address specified by *rbuf.

Warning:
Code:xx bytes (function code length)
Parameters:
ep_num number of the addressed endpoint
*rbuf aaddress of the first data to write with the USB data
data_length number of bytes to read
Returns:
address of the next U8 to send.
Example: while(!(Usb_rx_complete)); // wait new packet received usb_read_packet(4,&first_data,usb_get_nb_byte); // read packet from ep 4 Usb_clear_rx(); // acknowledge the transmit

Note: rbuf is incremented of 'data_length'.

Definition at line 155 of file usb_drv.c.

References ep_num, Is_usb_read_enabled, U8, Usb_read_byte, and Usb_select_endpoint.

Referenced by usb_read_continuous().

00156 { 00157 U8 remaining_length; 00158 00159 remaining_length = data_length; 00160 Usb_select_endpoint(ep_num); 00161 00162 while(Is_usb_read_enabled() && (0 != remaining_length)) 00163 { 00164 *rbuf = Usb_read_byte(); 00165 remaining_length--; 00166 rbuf++; 00167 } 00168 return remaining_length; 00169 }

void usb_halt_endpoint U8   ) 
 

void usb_reset_endpoint U8   ) 
 

U8 usb_init_device void   ) 
 

usb_init_device.

This function initializes the USB device controller and configures the Default Control Endpoint.

Warning:
Code:xx bytes (function code length)
Parameters:
none 
Returns:
none

Definition at line 200 of file usb_drv.c.

References DIRECTION_OUT, EP_CONTROL, NYET_DISABLED, ONE_BANK, SIZE_64, TRUE, TYPE_CONTROL, U8, and usb_configure_endpoint.

Referenced by usb_start_device().

00201 { 00202 usb_configure_endpoint(EP_CONTROL, \ 00203 TYPE_CONTROL, \ 00204 DIRECTION_OUT, \ 00205 SIZE_64, \ 00206 ONE_BANK, \ 00207 NYET_DISABLED); 00208 return TRUE; 00209 }

void usb_generate_clock void   ) 
 

Usb_configure_clock.

This function configure the PLL to generate the 48MHz clock required by the USB controller, considering the FOSC defined in the "config.h" file.

Warning:
Code:xx bytes (function code length)
Parameters:
none The possible value for FOSC are : 3000 ( 3MHz) 6000 ( 6MHz) 8000 ( 8MHz) 12000 (12MHz) 16000 (16MHz) 18000 (18MHz) 20000 (20MHz) 24000 (24MHz) 32000 (32MHz) 40000 (40MHz) 48000 (48MHz) 0000 (frequency auto-dectection)
Returns:
none

Definition at line 235 of file usb_drv.c.

References MSK_SOFINT, MSK_T0X2, MSK_X2, PLL_12MHz, PLL_16MHz, PLL_18MHz, PLL_20MHz, PLL_24MHz, PLL_32MHz, PLL_3MHz, PLL_40MHz, PLL_4MHz, PLL_6MHz, PLL_8MHz, Pll_enable, Pll_set_div, Pll_stop, and Uchar.

Referenced by usb_start_device().

00236 { 00237 #if FOSC == 3000 00238 Pll_set_div(PLL_3MHz); 00239 Pll_enable(); 00240 #endif 00241 00242 #if FOSC == 4000 00243 Pll_set_div(PLL_4MHz); 00244 Pll_enable(); 00245 #endif 00246 00247 #if FOSC == 6000 00248 Pll_set_div(PLL_6MHz); 00249 Pll_enable(); 00250 #endif 00251 00252 #if FOSC == 8000 00253 Pll_set_div(PLL_8MHz); 00254 Pll_enable(); 00255 #endif 00256 00257 #if FOSC == 12000 00258 Pll_set_div(PLL_12MHz); 00259 Pll_enable(); 00260 #endif 00261 00262 #if FOSC == 16000 00263 Pll_set_div(PLL_16MHz); 00264 Pll_enable(); 00265 #endif 00266 00267 #if FOSC == 18000 00268 Pll_set_div(PLL_18MHz); 00269 Pll_enable(); 00270 #endif 00271 00272 #if FOSC == 20000 00273 Pll_set_div(PLL_20MHz); 00274 Pll_enable(); 00275 #endif 00276 00277 #if FOSC == 24000 00278 Pll_set_div(PLL_24MHz); 00279 Pll_enable(); 00280 #endif 00281 00282 #if FOSC == 32000 00283 Pll_set_div(PLL_32MHz); 00284 Pll_enable(); 00285 #endif 00286 00287 #if FOSC == 40000 00288 Pll_set_div(PLL_40MHz); 00289 Pll_enable(); 00290 #endif 00291 00292 #if FOSC == 48000 00293 Usb_set_EXT48(); 00294 #endif 00295 00296 #if FOSC == 0000 /* frequency Auto-detection */ 00297 00298 Uchar i; 00299 Uchar reload; 00300 00301 PLLCON = 0x00; 00302 00303 if (CKCON0 & MSK_X2) 00304 { 00305 CKCON0 |= MSK_T0X2; 00306 reload = 6; 00307 } 00308 else 00309 { 00310 CKCON0 &= ~MSK_T0X2; 00311 reload = 9; 00312 } 00313 00314 TMOD = 0x01; /* put Timer 0 in mode 1 */ 00315 USBINT = 0x00; 00316 i=reload; 00317 00318 while (!(USBINT & MSK_SOFINT)) /* Do until Start Of Frame detection */ 00319 { 00320 if (i==9) 00321 { 00322 Pll_stop(); /* external 48 MHz supposed */ 00323 Usb_set_EXT48(); 00324 } 00325 else 00326 { 00327 Usb_clear_EXT48(); /* PLL output supposed */ 00328 Pll_set_div(pll_value[i]); /* configure PLL */ 00329 Pll_enable(); 00330 } 00331 TH0 = TH0_value[i]; /* Run Timer 0 */ 00332 TL0 = TL0_value[i]; 00333 TCON |= 0x10; 00334 while(((TCON & 0x20) != 0x20)); /* Wait Timer 0 Overflow */ 00335 TCON &= ~(0x30); 00336 if (i==0) 00337 { 00338 i=reload; 00339 } 00340 else 00341 { 00342 i--; 00343 } 00344 } 00345 00346 TH0 = 0; /* Reset Timer 0 Registers */ 00347 TL0 = 0; 00348 TCON = 0; 00349 TMOD = 0; 00350 #endif 00351 }


Variable Documentation

bdata bit rx_bank
 

Definition at line 24 of file usb_drv.h.

Referenced by usb_enum_var_init().


Generated on Mon Apr 10 17:23:31 2006 for Atmel by doxygen 1.3.7