Defines

# USB endpoint drivers
[USB low level 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_get_selected_endpoint() (UENUM )
| get the currently selected endpoint number
#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_nak_in_sent() (UEINTX&(1<<NAKINI))
| tests if a NAK has been sent on IN endpoint
#define | Is_usb_nak_out_sent() (UEINTX&(1<<NAKOUTI))
| tests if a NAK has been sent on OUT 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() ((U8)(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)
| tests the general endpoint interrupt flags
#define | Is_usb_endpoint_event() (Usb_interrupt_flags() != 0x00)
| tests the general endpoint interrupt flags

## 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 340 of file usb_drv.h.

Referenced by mouse_task(), usb_clear_feature(), usb_device_task(), usb_halt_endpoint(), usb_init_device(), usb_read_packet(), usb_send_packet(), usb_set_feature(), usb_set_interface(), and usb_user_interface_reset().

#define Usb_get_selected_endpoint | ( | ) | (UENUM )

get the currently selected endpoint number

Definition at line 343 of file usb_drv.h.

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

resets the selected endpoint

Definition at line 346 of file usb_drv.h.

Referenced by usb_clear_feature(), usb_device_task(), and usb_user_interface_reset().

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

enables the current endpoint

Definition at line 349 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 351 of file usb_drv.h.

Referenced by usb_halt_endpoint(), usb_process_request(), and usb_set_feature().

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

resets the data toggle sequence

Definition at line 353 of file usb_drv.h.

Referenced by usb_clear_feature(), and usb_user_interface_reset().

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

disables the current endpoint

Definition at line 355 of file usb_drv.h.

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

disables the STALL handshake

Definition at line 357 of file usb_drv.h.

Referenced by usb_clear_feature(), and usb_user_interface_reset().

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

selects endpoint interface on CPU

Definition at line 359 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 361 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 363 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 366 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 368 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 371 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 373 of file usb_drv.h.

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

allocates the current configuration in DPRAM memory

Definition at line 375 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 377 of file usb_drv.h.

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

acks endpoint overflow interrupt

Definition at line 380 of file usb_drv.h.

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

acks endpoint underflow memory

Definition at line 382 of file usb_drv.h.

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

acks Zero Length Packet received

Definition at line 384 of file usb_drv.h.

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

returns data toggle

Definition at line 386 of file usb_drv.h.

#define Usb_nb_busy_bank | ( | ) | (UESTA0X & MSK_NBUSYBK)

returns the number of busy banks

Definition at line 388 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 390 of file usb_drv.h.

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

tests if current endpoint is configured

Definition at line 392 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 394 of file usb_drv.h.

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

tests if an underflow occurs

Definition at line 396 of file usb_drv.h.

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

tests if a ZLP has been detected

Definition at line 398 of file usb_drv.h.

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

returns the control direction

Definition at line 401 of file usb_drv.h.

#define Usb_current_bank | ( | ) | ( UESTA1X & MSK_CURRBK)

returns the number of the current bank

Definition at line 403 of file usb_drv.h.

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

clears FIFOCON bit

Definition at line 406 of file usb_drv.h.

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

acks NAK IN received

Definition at line 408 of file usb_drv.h.

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

acks NAK OUT received

Definition at line 410 of file usb_drv.h.

Referenced by usb_get_descriptor().

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

acks receive SETUP

Definition at line 412 of file usb_drv.h.

Referenced by hid_get_hid_descriptor(), hid_get_report_descriptor(), usb_clear_feature(), usb_get_configuration(), usb_get_descriptor(), usb_get_interface(), usb_get_status(), usb_hid_get_idle(), usb_hid_set_idle(), usb_hid_set_report_ouput(), 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 414 of file usb_drv.h.

Referenced by hid_get_hid_descriptor(), hid_get_report_descriptor(), usb_get_configuration(), usb_get_interface(), usb_get_status(), usb_hid_get_idle(), and usb_hid_set_report_ouput().

#define Usb_ack_stalled | ( | ) | (MSK_STALLEDI= 0)

acks STALL sent

Definition at line 416 of file usb_drv.h.

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

acks IN ready

Definition at line 418 of file usb_drv.h.

Referenced by mouse_task(), and usb_get_configuration().

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

Kills last bank.

Definition at line 420 of file usb_drv.h.

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

tests if endpoint read allowed

Definition at line 422 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 424 of file usb_drv.h.

Referenced by mouse_task(), and usb_send_packet().

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

tests if read allowed on control endpoint

Definition at line 426 of file usb_drv.h.

Referenced by hid_get_hid_descriptor(), hid_get_report_descriptor(), and usb_get_descriptor().

#define Is_usb_nak_in_sent | ( | ) | (UEINTX&(1<<NAKINI))

tests if a NAK has been sent on IN endpoint

Definition at line 428 of file usb_drv.h.

#define Is_usb_nak_out_sent | ( | ) | (UEINTX&(1<<NAKOUTI))

tests if a NAK has been sent on OUT endpoint

Definition at line 430 of file usb_drv.h.

Referenced by usb_get_descriptor().

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

tests if SETUP received

Definition at line 432 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 434 of file usb_drv.h.

Referenced by hid_get_hid_descriptor(), hid_get_report_descriptor(), usb_get_configuration(), usb_get_interface(), usb_get_status(), usb_hid_get_idle(), and usb_hid_set_report_ouput().

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

tests if IN ready

Definition at line 436 of file usb_drv.h.

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

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

sends IN

Definition at line 438 of file usb_drv.h.

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

sends IN on control endpoint

Definition at line 440 of file usb_drv.h.

Referenced by hid_get_hid_descriptor(), hid_get_report_descriptor(), usb_clear_feature(), usb_get_descriptor(), usb_get_interface(), usb_get_status(), usb_hid_get_idle(), usb_hid_set_idle(), usb_hid_set_report_ouput(), 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 442 of file usb_drv.h.

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

acks OUT on control endpoint

Definition at line 444 of file usb_drv.h.

Referenced by usb_get_descriptor(), and usb_process_request().

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

enables flow error interrupt

Definition at line 447 of file usb_drv.h.

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

enables NAK IN interrupt

Definition at line 449 of file usb_drv.h.

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

enables NAK OUT interrupt

Definition at line 451 of file usb_drv.h.

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

enables receive SETUP interrupt

Definition at line 453 of file usb_drv.h.

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

enables receive OUT interrupt

Definition at line 455 of file usb_drv.h.

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

enables STALL sent interrupt

Definition at line 457 of file usb_drv.h.

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

enables IN ready interrupt

Definition at line 459 of file usb_drv.h.

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

disables flow error interrupt

Definition at line 461 of file usb_drv.h.

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

disables NAK IN interrupt

Definition at line 463 of file usb_drv.h.

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

disables NAK OUT interrupt

Definition at line 465 of file usb_drv.h.

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

disables receive SETUP interrupt

Definition at line 467 of file usb_drv.h.

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

disables receive OUT interrupt

Definition at line 469 of file usb_drv.h.

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

disables STALL sent interrupt

Definition at line 471 of file usb_drv.h.

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

disables IN ready interrupt

Definition at line 473 of file usb_drv.h.

#define Usb_read_byte | ( | ) | (UEDATX)

returns FIFO byte for current endpoint

Definition at line 476 of file usb_drv.h.

Referenced by hid_get_hid_descriptor(), hid_get_report_descriptor(), usb_clear_feature(), usb_get_descriptor(), usb_get_interface(), usb_get_status(), usb_hid_get_idle(), usb_hid_set_idle(), usb_process_request(), usb_read_packet(), usb_set_address(), usb_set_configuration(), usb_set_feature(), usb_set_interface(), and usb_user_read_request().

#define Usb_write_byte | ( |  | byte ) | (UEDATX = (U8)byte)

writes byte in FIFO for current endpoint

Definition at line 478 of file usb_drv.h.

Referenced by hid_get_hid_descriptor(), hid_get_report_descriptor(), mouse_task(), usb_get_configuration(), usb_get_descriptor(), usb_get_interface(), usb_get_status(), usb_hid_get_idle(), and usb_send_packet().

#define Usb_byte_counter | ( | ) | ((U8)(UEBCLX))

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

Definition at line 481 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 483 of file usb_drv.h.

#define Usb_interrupt_flags | ( | ) | (UEINT)

tests the general endpoint interrupt flags

Definition at line 486 of file usb_drv.h.

Referenced by usb_select_enpoint_interrupt().

#define Is_usb_endpoint_event | ( | ) | (Usb_interrupt_flags() != 0x00)

tests the general endpoint interrupt flags

Definition at line 488 of file usb_drv.h.