Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
USB Device Interface (UDI) for Communication Class Device (CDC)

Common APIs used by high level application to use this USB class.

These routines are used to transfer and control data to/from USB CDC endpoint.

See Quick start guide for USB device Communication Class Device module (UDI CDC).

Modules

 
 Quick Start Guide(s)
 In this section you can find a list of all Quick Start guides related to the USB Device Interface (UDI) for Communication Class Device (CDC).
 
 Interface with USB Device Core (UDC)
 Structures and functions required by UDC.
 
 Implementation of UDI CDC
 Class internal implementation.
 
 USB interface descriptors
 The following structures provide predefined USB interface descriptors.
 

Interface for application with single CDC interface support

void udi_cdc_ctrl_signal_dcd (bool b_set)
 Notify a state change of DCD signal. More...
 
void udi_cdc_ctrl_signal_dsr (bool b_set)
 Notify a state change of DSR signal. More...
 
void udi_cdc_signal_framing_error (void)
 Notify a framing error. More...
 
void udi_cdc_signal_parity_error (void)
 Notify a parity error. More...
 
void udi_cdc_signal_overrun (void)
 Notify a overrun. More...
 
iram_size_t udi_cdc_get_nb_received_data (void)
 Gets the number of byte received. More...
 
bool udi_cdc_is_rx_ready (void)
 This function checks if a character has been received on the CDC line. More...
 
int udi_cdc_getc (void)
 Waits and gets a value on CDC line. More...
 
iram_size_t udi_cdc_read_buf (void *buf, iram_size_t size)
 Reads a RAM buffer on CDC line. More...
 
iram_size_t udi_cdc_multi_read_no_polling (uint8_t port, void *buf, iram_size_t size)
 Non polling reads of a up to 'size' data from CDC line. More...
 
iram_size_t udi_cdc_read_no_polling (void *buf, iram_size_t size)
 Non polling reads of a up to 'size' data from CDC line. More...
 
iram_size_t udi_cdc_get_free_tx_buffer (void)
 Gets the number of free byte in TX buffer. More...
 
bool udi_cdc_is_tx_ready (void)
 This function checks if a new character sent is possible The type int is used to support scanf redirection from compiler LIB. More...
 
int udi_cdc_putc (int value)
 Puts a byte on CDC line The type int is used to support printf redirection from compiler LIB. More...
 
iram_size_t udi_cdc_write_buf (const void *buf, iram_size_t size)
 Writes a RAM buffer on CDC line. More...
 

Interface for application with multi CDC interfaces support

void udi_cdc_multi_ctrl_signal_dcd (uint8_t port, bool b_set)
 Notify a state change of DCD signal. More...
 
void udi_cdc_multi_ctrl_signal_dsr (uint8_t port, bool b_set)
 Notify a state change of DSR signal. More...
 
void udi_cdc_multi_signal_framing_error (uint8_t port)
 Notify a framing error. More...
 
void udi_cdc_multi_signal_parity_error (uint8_t port)
 Notify a parity error. More...
 
void udi_cdc_multi_signal_overrun (uint8_t port)
 Notify a overrun. More...
 
iram_size_t udi_cdc_multi_get_nb_received_data (uint8_t port)
 Gets the number of byte received. More...
 
bool udi_cdc_multi_is_rx_ready (uint8_t port)
 This function checks if a character has been received on the CDC line. More...
 
int udi_cdc_multi_getc (uint8_t port)
 Waits and gets a value on CDC line. More...
 
iram_size_t udi_cdc_multi_read_buf (uint8_t port, void *buf, iram_size_t size)
 Reads a RAM buffer on CDC line. More...
 
iram_size_t udi_cdc_multi_get_free_tx_buffer (uint8_t port)
 Gets the number of free byte in TX buffer. More...
 
bool udi_cdc_multi_is_tx_ready (uint8_t port)
 This function checks if a new character sent is possible The type int is used to support scanf redirection from compiler LIB. More...
 
int udi_cdc_multi_putc (uint8_t port, int value)
 Puts a byte on CDC line The type int is used to support printf redirection from compiler LIB. More...
 
iram_size_t udi_cdc_multi_write_buf (uint8_t port, const void *buf, iram_size_t size)
 Writes a RAM buffer on CDC line. More...
 

void udi_cdc_ctrl_signal_dcd ( bool  b_set)

Notify a state change of DCD signal.

Parameters
b_setDCD is enabled if true, else disabled
void udi_cdc_ctrl_signal_dsr ( bool  b_set)

Notify a state change of DSR signal.

Parameters
b_setDSR is enabled if true, else disabled
iram_size_t udi_cdc_get_free_tx_buffer ( void  )

Gets the number of free byte in TX buffer.

Returns
the number of free byte in TX buffer
iram_size_t udi_cdc_get_nb_received_data ( void  )

Gets the number of byte received.

Returns
the number of data available
int udi_cdc_getc ( void  )

Waits and gets a value on CDC line.

Returns
value read on CDC line
bool udi_cdc_is_rx_ready ( void  )

This function checks if a character has been received on the CDC line.

Returns
1 if a byte is ready to be read.
bool udi_cdc_is_tx_ready ( void  )

This function checks if a new character sent is possible The type int is used to support scanf redirection from compiler LIB.

Returns
1 if a new character can be sent
void udi_cdc_multi_ctrl_signal_dcd ( uint8_t  port,
bool  b_set 
)

Notify a state change of DCD signal.

Parameters
portCommunication port number to manage
b_setDCD is enabled if true, else disabled
void udi_cdc_multi_ctrl_signal_dsr ( uint8_t  port,
bool  b_set 
)

Notify a state change of DSR signal.

Parameters
portCommunication port number to manage
b_setDSR is enabled if true, else disabled
iram_size_t udi_cdc_multi_get_free_tx_buffer ( uint8_t  port)

Gets the number of free byte in TX buffer.

Parameters
portCommunication port number to manage
Returns
the number of free byte in TX buffer
iram_size_t udi_cdc_multi_get_nb_received_data ( uint8_t  port)

Gets the number of byte received.

Parameters
portCommunication port number to manage
Returns
the number of data available
int udi_cdc_multi_getc ( uint8_t  port)

Waits and gets a value on CDC line.

Parameters
portCommunication port number to manage
Returns
value read on CDC line
bool udi_cdc_multi_is_rx_ready ( uint8_t  port)

This function checks if a character has been received on the CDC line.

Parameters
portCommunication port number to manage
Returns
1 if a byte is ready to be read.
bool udi_cdc_multi_is_tx_ready ( uint8_t  port)

This function checks if a new character sent is possible The type int is used to support scanf redirection from compiler LIB.

Parameters
portCommunication port number to manage
Returns
1 if a new character can be sent
int udi_cdc_multi_putc ( uint8_t  port,
int  value 
)

Puts a byte on CDC line The type int is used to support printf redirection from compiler LIB.

Parameters
portCommunication port number to manage
valueValue to put
Returns
1 if function was successfully done, otherwise 0.
iram_size_t udi_cdc_multi_read_buf ( uint8_t  port,
void *  buf,
iram_size_t  size 
)

Reads a RAM buffer on CDC line.

Parameters
portCommunication port number to manage
bufValues read
sizeNumber of values read
Returns
the number of data remaining
iram_size_t udi_cdc_multi_read_no_polling ( uint8_t  port,
void *  buf,
iram_size_t  size 
)

Non polling reads of a up to 'size' data from CDC line.

Parameters
portCommunication port number to manage
bufBuffer where to store read data
sizeMaximum number of data to read (size of buffer)
Returns
the number of data effectively read

References cpu_irq_restore(), cpu_irq_save(), port, udi_cdc_data_running, udi_cdc_rx_buf, udi_cdc_rx_buf_nb, udi_cdc_rx_buf_sel, udi_cdc_rx_pos, and udi_cdc_rx_start().

Referenced by udi_cdc_read_no_polling().

void udi_cdc_multi_signal_framing_error ( uint8_t  port)

Notify a framing error.

Parameters
portCommunication port number to manage
void udi_cdc_multi_signal_overrun ( uint8_t  port)

Notify a overrun.

Parameters
portCommunication port number to manage
void udi_cdc_multi_signal_parity_error ( uint8_t  port)

Notify a parity error.

Parameters
portCommunication port number to manage
iram_size_t udi_cdc_multi_write_buf ( uint8_t  port,
const void *  buf,
iram_size_t  size 
)

Writes a RAM buffer on CDC line.

Parameters
portCommunication port number to manage
bufValues to write
sizeNumber of value to write
Returns
the number of data remaining
int udi_cdc_putc ( int  value)

Puts a byte on CDC line The type int is used to support printf redirection from compiler LIB.

Parameters
valueValue to put
Returns
1 if function was successfully done, otherwise 0.
iram_size_t udi_cdc_read_buf ( void *  buf,
iram_size_t  size 
)

Reads a RAM buffer on CDC line.

Parameters
bufValues read
sizeNumber of value read
Returns
the number of data remaining
iram_size_t udi_cdc_read_no_polling ( void *  buf,
iram_size_t  size 
)

Non polling reads of a up to 'size' data from CDC line.

Parameters
bufBuffer where to store read data
sizeMaximum number of data to read (size of buffer)
Returns
the number of data effectively read

References udi_cdc_multi_read_no_polling().

void udi_cdc_signal_framing_error ( void  )

Notify a framing error.

void udi_cdc_signal_overrun ( void  )

Notify a overrun.

void udi_cdc_signal_parity_error ( void  )

Notify a parity error.

iram_size_t udi_cdc_write_buf ( const void *  buf,
iram_size_t  size 
)

Writes a RAM buffer on CDC line.

Parameters
bufValues to write
sizeNumber of value to write
Returns
the number of data remaining