USB endpoint drivers
[USB low level drivers module]

Collaboration diagram for USB endpoint drivers:

These macros manage the common features of the endpoints. More...

Defines

#define Usb_select_endpoint(ep)   (UENUM = (U8)ep )
 selects the endpoint number to interface with the CPU
#define Usb_reset_endpoint(ep)   (UERST = 1 << (U8)ep, UERST = 0)
 resets the selected endpoint
#define Usb_enable_endpoint()   (UECONX |= (1<<EPEN))
 enables the current endpoint
#define Usb_enable_stall_handshake()   (UECONX |= (1<<STALLRQ))
 enables the STALL handshake for the next transaction
#define Usb_reset_data_toggle()   (UECONX |= (1<<RSTDT))
 resets the data toggle sequence
#define Usb_disable_endpoint()   (UECONX &= ~(1<<EPEN))
 disables the current endpoint
#define Usb_disable_stall_handshake()   (UECONX |= (1<<STALLRQC))
 disables the STALL handshake
#define Usb_select_epnum_for_cpu()   (UECONX &= ~(1<<EPNUMS))
 selects endpoint interface on CPU
#define Is_usb_endpoint_enabled()   ((UECONX & (1<<EPEN)) ? TRUE : FALSE)
 tests if the current endpoint is enabled
#define Is_usb_endpoint_stall_requested()   ((UECONX & (1<<STALLRQ)) ? TRUE : FALSE)
 tests if STALL handshake request is running
#define Usb_configure_endpoint_type(type)   (UECFG0X = (UECFG0X & ~(MSK_EPTYPE)) | ((U8)type << 6))
 configures the current endpoint
#define Usb_configure_endpoint_direction(dir)   (UECFG0X = (UECFG0X & ~(1<<EPDIR)) | ((U8)dir))
 configures the current endpoint direction
#define Usb_configure_endpoint_size(size)   (UECFG1X = (UECFG1X & ~MSK_EPSIZE) | ((U8)size << 4))
 configures the current endpoint size
#define Usb_configure_endpoint_bank(bank)   (UECFG1X = (UECFG1X & ~MSK_EPBK) | ((U8)bank << 2))
 configures the current endpoint number of banks
#define Usb_allocate_memory()   (UECFG1X |= (1<<ALLOC))
 allocates the current configuration in DPRAM memory
#define Usb_unallocate_memory()   (UECFG1X &= ~(1<<ALLOC))
 un-allocates the current configuration in DPRAM memory
#define Usb_ack_overflow_interrupt()   (UESTA0X &= ~(1<<OVERFI))
 acks endpoint overflow interrupt
#define Usb_ack_underflow_interrupt()   (UESTA0X &= ~(1<<UNDERFI))
 acks endpoint underflow memory
#define Usb_ack_zlp()   (UESTA0X &= ~(1<<ZLPSEEN))
 acks Zero Length Packet received
#define Usb_data_toggle()   ((UESTA0X&MSK_DTSEQ) >> 2)
 returns data toggle
#define Usb_nb_busy_bank()   (UESTA0X & MSK_NBUSYBK)
 returns the number of busy banks
#define Is_usb_one_bank_busy()   ((UESTA0X & MSK_NBUSYBK) == 0 ? FALSE : TRUE)
 tests if at least one bank is busy
#define Is_endpoint_configured()   ((UESTA0X & (1<<CFGOK)) ? TRUE : FALSE)
 tests if current endpoint is configured
#define Is_usb_overflow()   ((UESTA0X & (1<<OVERFI)) ? TRUE : FALSE)
 tests if an overflows occurs
#define Is_usb_underflow()   ((UESTA0X & (1<<UNDERFI)) ? TRUE : FALSE)
 tests if an underflow occurs
#define Is_usb_zlp()   ((UESTA0X & (1<<ZLPSEEN)) ? TRUE : FALSE)
 tests if a ZLP has been detected
#define Usb_control_direction()   ((UESTA1X & (1<<CTRLDIR)) >> 2)
 returns the control direction
#define Usb_current_bank()   ( UESTA1X & MSK_CURRBK)
 returns the number of the current bank
#define Usb_ack_fifocon()   (UEINTX &= ~(1<<FIFOCON))
 clears FIFOCON bit
#define Usb_ack_nak_in()   (UEINTX &= ~(1<<NAKINI))
 acks NAK IN received
#define Usb_ack_nak_out()   (UEINTX &= ~(1<<NAKOUTI))
 acks NAK OUT received
#define Usb_ack_receive_setup()   (UEINTX &= ~(1<<RXSTPI))
 acks receive SETUP
#define Usb_ack_receive_out()   (UEINTX &= ~(1<<RXOUTI), Usb_ack_fifocon())
 acks reveive OUT
#define Usb_ack_stalled()   (MSK_STALLEDI= 0)
 acks STALL sent
#define Usb_ack_in_ready()   (UEINTX &= ~(1<<TXINI), Usb_ack_fifocon())
 acks IN ready
#define Usb_kill_last_in_bank()   (UENTTX |= (1<<RXOUTI))
 Kills last bank.
#define Is_usb_read_enabled()   (UEINTX&(1<<RWAL))
 tests if endpoint read allowed
#define Is_usb_write_enabled()   (UEINTX&(1<<RWAL))
 tests if endpoint write allowed
#define Is_usb_read_control_enabled()   (UEINTX&(1<<TXINI))
 tests if read allowed on control endpoint
#define Is_usb_receive_setup()   (UEINTX&(1<<RXSTPI))
 tests if SETUP received
#define Is_usb_receive_out()   (UEINTX&(1<<RXOUTI))
 tests if OUT received
#define Is_usb_in_ready()   (UEINTX&(1<<TXINI))
 tests if IN ready
#define Usb_send_in()   (UEINTX &= ~(1<<FIFOCON))
 sends IN
#define Usb_send_control_in()   (UEINTX &= ~(1<<TXINI))
 sends IN on control endpoint
#define Usb_free_out_bank()   (UEINTX &= ~(1<<FIFOCON))
 frees OUT bank
#define Usb_ack_control_out()   (UEINTX &= ~(1<<RXOUTI))
 acks OUT on control endpoint
#define Usb_enable_flow_error_interrupt()   (UEIENX |= (1<<FLERRE))
 enables flow error interrupt
#define Usb_enable_nak_in_interrupt()   (UEIENX |= (1<<NAKINE))
 enables NAK IN interrupt
#define Usb_enable_nak_out_interrupt()   (UEIENX |= (1<<NAKOUTE))
 enables NAK OUT interrupt
#define Usb_enable_receive_setup_interrupt()   (UEIENX |= (1<<RXSTPE))
 enables receive SETUP interrupt
#define Usb_enable_receive_out_interrupt()   (UEIENX |= (1<<RXOUTE))
 enables receive OUT interrupt
#define Usb_enable_stalled_interrupt()   (UEIENX |= (1<<STALLEDE))
 enables STALL sent interrupt
#define Usb_enable_in_ready_interrupt()   (UEIENX |= (1<<TXIN))
 enables IN ready interrupt
#define Usb_disable_flow_error_interrupt()   (UEIENX &= ~(1<<FLERRE))
 disables flow error interrupt
#define Usb_disable_nak_in_interrupt()   (UEIENX &= ~(1<<NAKINE))
 disables NAK IN interrupt
#define Usb_disable_nak_out_interrupt()   (UEIENX &= ~(1<<NAKOUTE))
 disables NAK OUT interrupt
#define Usb_disable_receive_setup_interrupt()   (UEIENX &= ~(1<<RXSTPE))
 disables receive SETUP interrupt
#define Usb_disable_receive_out_interrupt()   (UEIENX &= ~(1<<RXOUTE))
 disables receive OUT interrupt
#define Usb_disable_stalled_interrupt()   (UEIENX &= ~(1<<STALLEDE))
 disables STALL sent interrupt
#define Usb_disable_in_ready_interrupt()   (UEIENX &= ~(1<<TXIN))
 disables IN ready interrupt
#define Usb_read_byte()   (UEDATX)
 returns FIFO byte for current endpoint
#define Usb_write_byte(byte)   (UEDATX = (U8)byte)
 writes byte in FIFO for current endpoint
#define Usb_byte_counter()   ((((U16)UEBCHX) << 8) | (UEBCLX))
 returns number of bytes in FIFO current endpoint (16 bits)
#define Usb_byte_counter_8()   ((U8)UEBCLX)
 returns number of bytes in FIFO current endpoint (8 bits)
#define Usb_interrupt_flags()   (UEINT != 0x00)
 tests the general endpoint interrupt flags
#define Is_usb_endpoint_event()   (Usb_interrupt_flags())
 tests the general endpoint interrupt flags
#define Usb_select_ep_for_cpu(ep)   (Usb_select_epnum_for_cpu(), Usb_select_endpoint(ep))

Detailed Description

These macros manage the common features of the endpoints.


Define Documentation

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

selects the endpoint number to interface with the CPU

Definition at line 426 of file usb_drv.h.

Referenced by hid_task(), usb_clear_feature(), usb_device_task(), usb_halt_endpoint(), usb_init_device(), usb_read_packet(), usb_send_packet(), and usb_set_feature().

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

resets the selected endpoint

Definition at line 429 of file usb_drv.h.

Referenced by usb_clear_feature(), and usb_device_task().

 
#define Usb_enable_endpoint  )     (UECONX |= (1<<EPEN))
 

enables the current endpoint

Definition at line 432 of file usb_drv.h.

Referenced by usb_config_ep().

 
#define Usb_enable_stall_handshake  )     (UECONX |= (1<<STALLRQ))
 

enables the STALL handshake for the next transaction

Definition at line 434 of file usb_drv.h.

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

 
#define Usb_reset_data_toggle  )     (UECONX |= (1<<RSTDT))
 

resets the data toggle sequence

Definition at line 436 of file usb_drv.h.

Referenced by usb_clear_feature().

 
#define Usb_disable_endpoint  )     (UECONX &= ~(1<<EPEN))
 

disables the current endpoint

Definition at line 438 of file usb_drv.h.

 
#define Usb_disable_stall_handshake  )     (UECONX |= (1<<STALLRQC))
 

disables the STALL handshake

Definition at line 440 of file usb_drv.h.

Referenced by usb_clear_feature().

 
#define Usb_select_epnum_for_cpu  )     (UECONX &= ~(1<<EPNUMS))
 

selects endpoint interface on CPU

Definition at line 442 of file usb_drv.h.

 
#define Is_usb_endpoint_enabled  )     ((UECONX & (1<<EPEN)) ? TRUE : FALSE)
 

tests if the current endpoint is enabled

Definition at line 444 of file usb_drv.h.

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

 
#define Is_usb_endpoint_stall_requested  )     ((UECONX & (1<<STALLRQ)) ? TRUE : FALSE)
 

tests if STALL handshake request is running

Definition at line 446 of file usb_drv.h.

#define Usb_configure_endpoint_type type   )     (UECFG0X = (UECFG0X & ~(MSK_EPTYPE)) | ((U8)type << 6))
 

configures the current endpoint

Definition at line 449 of file usb_drv.h.

#define Usb_configure_endpoint_direction dir   )     (UECFG0X = (UECFG0X & ~(1<<EPDIR)) | ((U8)dir))
 

configures the current endpoint direction

Definition at line 451 of file usb_drv.h.

#define Usb_configure_endpoint_size size   )     (UECFG1X = (UECFG1X & ~MSK_EPSIZE) | ((U8)size << 4))
 

configures the current endpoint size

Definition at line 454 of file usb_drv.h.

#define Usb_configure_endpoint_bank bank   )     (UECFG1X = (UECFG1X & ~MSK_EPBK) | ((U8)bank << 2))
 

configures the current endpoint number of banks

Definition at line 456 of file usb_drv.h.

 
#define Usb_allocate_memory  )     (UECFG1X |= (1<<ALLOC))
 

allocates the current configuration in DPRAM memory

Definition at line 458 of file usb_drv.h.

Referenced by usb_config_ep().

 
#define Usb_unallocate_memory  )     (UECFG1X &= ~(1<<ALLOC))
 

un-allocates the current configuration in DPRAM memory

Definition at line 460 of file usb_drv.h.

 
#define Usb_ack_overflow_interrupt  )     (UESTA0X &= ~(1<<OVERFI))
 

acks endpoint overflow interrupt

Definition at line 463 of file usb_drv.h.

 
#define Usb_ack_underflow_interrupt  )     (UESTA0X &= ~(1<<UNDERFI))
 

acks endpoint underflow memory

Definition at line 465 of file usb_drv.h.

 
#define Usb_ack_zlp  )     (UESTA0X &= ~(1<<ZLPSEEN))
 

acks Zero Length Packet received

Definition at line 467 of file usb_drv.h.

 
#define Usb_data_toggle  )     ((UESTA0X&MSK_DTSEQ) >> 2)
 

returns data toggle

Definition at line 469 of file usb_drv.h.

 
#define Usb_nb_busy_bank  )     (UESTA0X & MSK_NBUSYBK)
 

returns the number of busy banks

Definition at line 471 of file usb_drv.h.

 
#define Is_usb_one_bank_busy  )     ((UESTA0X & MSK_NBUSYBK) == 0 ? FALSE : TRUE)
 

tests if at least one bank is busy

Definition at line 473 of file usb_drv.h.

 
#define Is_endpoint_configured  )     ((UESTA0X & (1<<CFGOK)) ? TRUE : FALSE)
 

tests if current endpoint is configured

Definition at line 475 of file usb_drv.h.

Referenced by usb_config_ep().

 
#define Is_usb_overflow  )     ((UESTA0X & (1<<OVERFI)) ? TRUE : FALSE)
 

tests if an overflows occurs

Definition at line 477 of file usb_drv.h.

 
#define Is_usb_underflow  )     ((UESTA0X & (1<<UNDERFI)) ? TRUE : FALSE)
 

tests if an underflow occurs

Definition at line 479 of file usb_drv.h.

 
#define Is_usb_zlp  )     ((UESTA0X & (1<<ZLPSEEN)) ? TRUE : FALSE)
 

tests if a ZLP has been detected

Definition at line 481 of file usb_drv.h.

 
#define Usb_control_direction  )     ((UESTA1X & (1<<CTRLDIR)) >> 2)
 

returns the control direction

Definition at line 484 of file usb_drv.h.

 
#define Usb_current_bank  )     ( UESTA1X & MSK_CURRBK)
 

returns the number of the current bank

Definition at line 486 of file usb_drv.h.

 
#define Usb_ack_fifocon  )     (UEINTX &= ~(1<<FIFOCON))
 

clears FIFOCON bit

Definition at line 489 of file usb_drv.h.

Referenced by hid_task().

 
#define Usb_ack_nak_in  )     (UEINTX &= ~(1<<NAKINI))
 

acks NAK IN received

Definition at line 491 of file usb_drv.h.

 
#define Usb_ack_nak_out  )     (UEINTX &= ~(1<<NAKOUTI))
 

acks NAK OUT received

Definition at line 493 of file usb_drv.h.

 
#define Usb_ack_receive_setup  )     (UEINTX &= ~(1<<RXSTPI))
 

acks receive SETUP

Definition at line 495 of file usb_drv.h.

Referenced by hid_get_report(), hid_set_report(), usb_clear_feature(), usb_get_configuration(), usb_get_descriptor(), usb_get_interface(), usb_get_status(), usb_hid_get_interface(), usb_hid_set_idle(), usb_process_request(), usb_set_address(), usb_set_configuration(), usb_set_feature(), and usb_set_interface().

 
#define Usb_ack_receive_out  )     (UEINTX &= ~(1<<RXOUTI), Usb_ack_fifocon())
 

acks reveive OUT

Definition at line 497 of file usb_drv.h.

Referenced by hid_get_report(), hid_set_report(), hid_task(), usb_get_configuration(), usb_get_descriptor(), and usb_get_status().

 
#define Usb_ack_stalled  )     (MSK_STALLEDI= 0)
 

acks STALL sent

Definition at line 499 of file usb_drv.h.

 
#define Usb_ack_in_ready  )     (UEINTX &= ~(1<<TXINI), Usb_ack_fifocon())
 

acks IN ready

Definition at line 501 of file usb_drv.h.

Referenced by usb_get_configuration().

 
#define Usb_kill_last_in_bank  )     (UENTTX |= (1<<RXOUTI))
 

Kills last bank.

Definition at line 503 of file usb_drv.h.

 
#define Is_usb_read_enabled  )     (UEINTX&(1<<RWAL))
 

tests if endpoint read allowed

Definition at line 505 of file usb_drv.h.

Referenced by usb_read_packet().

 
#define Is_usb_write_enabled  )     (UEINTX&(1<<RWAL))
 

tests if endpoint write allowed

Definition at line 507 of file usb_drv.h.

Referenced by usb_send_packet().

 
#define Is_usb_read_control_enabled  )     (UEINTX&(1<<TXINI))
 

tests if read allowed on control endpoint

Definition at line 509 of file usb_drv.h.

Referenced by hid_get_report(), and usb_get_descriptor().

 
#define Is_usb_receive_setup  )     (UEINTX&(1<<RXSTPI))
 

tests if SETUP received

Definition at line 511 of file usb_drv.h.

Referenced by usb_device_task().

 
#define Is_usb_receive_out  )     (UEINTX&(1<<RXOUTI))
 

tests if OUT received

Definition at line 513 of file usb_drv.h.

Referenced by hid_get_report(), hid_set_report(), hid_task(), usb_get_configuration(), usb_get_descriptor(), and usb_get_status().

 
#define Is_usb_in_ready  )     (UEINTX&(1<<TXINI))
 

tests if IN ready

Definition at line 515 of file usb_drv.h.

Referenced by hid_task(), usb_hid_get_interface(), usb_hid_set_idle(), usb_set_address(), and usb_set_interface().

 
#define Usb_send_in  )     (UEINTX &= ~(1<<FIFOCON))
 

sends IN

Definition at line 517 of file usb_drv.h.

 
#define Usb_send_control_in  )     (UEINTX &= ~(1<<TXINI))
 

sends IN on control endpoint

Definition at line 519 of file usb_drv.h.

Referenced by hid_get_report(), hid_set_report(), usb_clear_feature(), usb_get_descriptor(), usb_get_status(), usb_hid_get_interface(), usb_hid_set_idle(), usb_set_address(), usb_set_configuration(), usb_set_feature(), and usb_set_interface().

 
#define Usb_free_out_bank  )     (UEINTX &= ~(1<<FIFOCON))
 

frees OUT bank

Definition at line 521 of file usb_drv.h.

 
#define Usb_ack_control_out  )     (UEINTX &= ~(1<<RXOUTI))
 

acks OUT on control endpoint

Definition at line 523 of file usb_drv.h.

 
#define Usb_enable_flow_error_interrupt  )     (UEIENX |= (1<<FLERRE))
 

enables flow error interrupt

Definition at line 526 of file usb_drv.h.

 
#define Usb_enable_nak_in_interrupt  )     (UEIENX |= (1<<NAKINE))
 

enables NAK IN interrupt

Definition at line 528 of file usb_drv.h.

 
#define Usb_enable_nak_out_interrupt  )     (UEIENX |= (1<<NAKOUTE))
 

enables NAK OUT interrupt

Definition at line 530 of file usb_drv.h.

 
#define Usb_enable_receive_setup_interrupt  )     (UEIENX |= (1<<RXSTPE))
 

enables receive SETUP interrupt

Definition at line 532 of file usb_drv.h.

 
#define Usb_enable_receive_out_interrupt  )     (UEIENX |= (1<<RXOUTE))
 

enables receive OUT interrupt

Definition at line 534 of file usb_drv.h.

 
#define Usb_enable_stalled_interrupt  )     (UEIENX |= (1<<STALLEDE))
 

enables STALL sent interrupt

Definition at line 536 of file usb_drv.h.

 
#define Usb_enable_in_ready_interrupt  )     (UEIENX |= (1<<TXIN))
 

enables IN ready interrupt

Definition at line 538 of file usb_drv.h.

 
#define Usb_disable_flow_error_interrupt  )     (UEIENX &= ~(1<<FLERRE))
 

disables flow error interrupt

Definition at line 540 of file usb_drv.h.

 
#define Usb_disable_nak_in_interrupt  )     (UEIENX &= ~(1<<NAKINE))
 

disables NAK IN interrupt

Definition at line 542 of file usb_drv.h.

 
#define Usb_disable_nak_out_interrupt  )     (UEIENX &= ~(1<<NAKOUTE))
 

disables NAK OUT interrupt

Definition at line 544 of file usb_drv.h.

 
#define Usb_disable_receive_setup_interrupt  )     (UEIENX &= ~(1<<RXSTPE))
 

disables receive SETUP interrupt

Definition at line 546 of file usb_drv.h.

 
#define Usb_disable_receive_out_interrupt  )     (UEIENX &= ~(1<<RXOUTE))
 

disables receive OUT interrupt

Definition at line 548 of file usb_drv.h.

 
#define Usb_disable_stalled_interrupt  )     (UEIENX &= ~(1<<STALLEDE))
 

disables STALL sent interrupt

Definition at line 550 of file usb_drv.h.

 
#define Usb_disable_in_ready_interrupt  )     (UEIENX &= ~(1<<TXIN))
 

disables IN ready interrupt

Definition at line 552 of file usb_drv.h.

 
#define Usb_read_byte  )     (UEDATX)
 

returns FIFO byte for current endpoint

Definition at line 555 of file usb_drv.h.

Referenced by hid_get_report(), hid_task(), usb_clear_feature(), usb_get_descriptor(), usb_get_status(), usb_hid_get_interface(), usb_hid_set_idle(), 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   )     (UEDATX = (U8)byte)
 

writes byte in FIFO for current endpoint

Definition at line 557 of file usb_drv.h.

Referenced by hid_get_report(), hid_task(), usb_get_configuration(), usb_get_descriptor(), usb_get_status(), and usb_send_packet().

 
#define Usb_byte_counter  )     ((((U16)UEBCHX) << 8) | (UEBCLX))
 

returns number of bytes in FIFO current endpoint (16 bits)

Definition at line 560 of file usb_drv.h.

 
#define Usb_byte_counter_8  )     ((U8)UEBCLX)
 

returns number of bytes in FIFO current endpoint (8 bits)

Definition at line 562 of file usb_drv.h.

 
#define Usb_interrupt_flags  )     (UEINT != 0x00)
 

tests the general endpoint interrupt flags

Definition at line 565 of file usb_drv.h.

Referenced by usb_select_enpoint_interrupt().

 
#define Is_usb_endpoint_event  )     (Usb_interrupt_flags())
 

tests the general endpoint interrupt flags

Definition at line 567 of file usb_drv.h.

#define Usb_select_ep_for_cpu ep   )     (Usb_select_epnum_for_cpu(), Usb_select_endpoint(ep))
 

Definition at line 570 of file usb_drv.h.


Generated on Fri Mar 17 16:02:12 2006 for Atmel by  doxygen 1.4.6-NO