Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Universal Synchronous Asynchronous Receiver

Transmitter (USART).

See Quick start guide for the SAM USART module.

This is a low-level driver implementation for the SAM Universal Synchronous/Asynchronous Receiver/Transmitter.

Data Structures

struct  sam_usart_opt_t
 
struct  usart_iso7816_opt_t
 
struct  usart_spi_opt_t
 

Macros

#define SPI_CPHA   (1 << 0)
 Clock phase. More...
 
#define SPI_CPOL   (1 << 1)
 Clock polarity. More...
 
#define SPI_MODE_0   0
 SPI mode definition. More...
 
#define SPI_MODE_1   (SPI_CPHA)
 
#define SPI_MODE_2   (SPI_CPOL)
 
#define SPI_MODE_3   (SPI_CPOL | SPI_CPHA)
 
#define US_MR_USART_MODE_LIN_MASTER   0x0A
 micro definition for LIN mode of SAMV71 More...
 
#define US_MR_USART_MODE_LIN_SLAVE   0x0B
 

Functions

void usart_disable_interrupt (Usart *p_usart, uint32_t ul_sources)
 Disable USART interrupts. More...
 
void usart_disable_rx (Usart *p_usart)
 Disable USART receiver. More...
 
void usart_disable_tx (Usart *p_usart)
 Disable USART transmitter. More...
 
void usart_disable_writeprotect (Usart *p_usart)
 Disable write protect of USART registers. More...
 
void usart_drive_DTR_pin_high (Usart *p_usart)
 
void usart_drive_DTR_pin_low (Usart *p_usart)
 
void usart_drive_RTS_pin_high (Usart *p_usart)
 Drive the pin RTS to 1. More...
 
void usart_drive_RTS_pin_low (Usart *p_usart)
 Drive the pin RTS to 0. More...
 
void usart_enable_interrupt (Usart *p_usart, uint32_t ul_sources)
 Enable USART interrupts. More...
 
void usart_enable_rx (Usart *p_usart)
 Enable USART receiver. More...
 
void usart_enable_tx (Usart *p_usart)
 Enable USART transmitter. More...
 
void usart_enable_writeprotect (Usart *p_usart)
 Enable write protect of USART registers. More...
 
uint8_t usart_get_error_number (Usart *p_usart)
 
uint32_t usart_get_interrupt_mask (Usart *p_usart)
 Read USART interrupt mask. More...
 
Pdc * usart_get_pdc_base (Usart *p_usart)
 
uint32_t * usart_get_rx_access (Usart *p_usart)
 
uint32_t usart_get_status (Usart *p_usart)
 Get current status. More...
 
uint32_t * usart_get_tx_access (Usart *p_usart)
 
uint32_t usart_get_version (Usart *p_usart)
 
uint32_t usart_get_writeprotect_status (Usart *p_usart)
 Get write protect status. More...
 
uint32_t usart_getchar (Usart *p_usart, uint32_t *c)
 Read from USART Receive Holding Register. More...
 
uint32_t usart_init_hw_handshaking (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in hardware handshaking mode. More...
 
uint32_t usart_init_irda (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 
uint32_t usart_init_iso7816 (Usart *p_usart, const usart_iso7816_opt_t *p_usart_opt, uint32_t ul_mck)
 
uint32_t usart_init_lin_master (Usart *p_usart, uint32_t ul_baudrate, uint32_t ul_mck)
 
uint32_t usart_init_lin_slave (Usart *p_usart, uint32_t ul_baudrate, uint32_t ul_mck)
 
uint32_t usart_init_lon (Usart *p_usart, uint32_t ul_baudrate, uint32_t ul_mck)
 
uint32_t usart_init_modem (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 
uint32_t usart_init_rs232 (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in RS232 mode. More...
 
uint32_t usart_init_rs485 (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in RS485 mode. More...
 
uint32_t usart_init_spi_master (Usart *p_usart, const usart_spi_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in SPI mode and act as a master. More...
 
uint32_t usart_init_spi_slave (Usart *p_usart, const usart_spi_opt_t *p_usart_opt)
 Configure USART to work in SPI mode and act as a slave. More...
 
uint32_t usart_init_sync_master (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in SYNC mode and act as a master. More...
 
uint32_t usart_init_sync_slave (Usart *p_usart, const sam_usart_opt_t *p_usart_opt)
 Configure USART to work in SYNC mode and act as a slave. More...
 
uint32_t usart_is_rx_buf_end (Usart *p_usart)
 
uint32_t usart_is_rx_buf_full (Usart *p_usart)
 
uint32_t usart_is_rx_ready (Usart *p_usart)
 Check if the received data are ready. More...
 
uint32_t usart_is_tx_buf_empty (Usart *p_usart)
 
uint32_t usart_is_tx_buf_end (Usart *p_usart)
 
uint32_t usart_is_tx_empty (Usart *p_usart)
 Check if Transmit Holding Register is empty. More...
 
uint32_t usart_is_tx_ready (Usart *p_usart)
 Check if Transmit is Ready. More...
 
void usart_lin_abort_tx (Usart *p_usart)
 
void usart_lin_disable_checksum (Usart *p_usart)
 
void usart_lin_disable_frame_slot (Usart *p_usart)
 
void usart_lin_disable_parity (Usart *p_usart)
 
void usart_lin_disable_pdc_mode (Usart *p_usart)
 
void usart_lin_enable_checksum (Usart *p_usart)
 
void usart_lin_enable_frame_slot (Usart *p_usart)
 
void usart_lin_enable_parity (Usart *p_usart)
 
void usart_lin_enable_pdc_mode (Usart *p_usart)
 
uint8_t usart_lin_get_data_length (Usart *usart)
 
uint8_t usart_lin_identifier_reception_complete (Usart *usart)
 
uint8_t usart_lin_identifier_send_complete (Usart *usart)
 
uint8_t usart_lin_read_identifier (Usart *p_usart)
 
void usart_lin_send_wakeup_signal (Usart *p_usart)
 
void usart_lin_set_checksum_type (Usart *p_usart, uint8_t uc_type)
 
void usart_lin_set_data_len_mode (Usart *p_usart, uint8_t uc_mode)
 
void usart_lin_set_node_action (Usart *p_usart, uint8_t uc_action)
 
void usart_lin_set_response_data_len (Usart *p_usart, uint8_t uc_len)
 
void usart_lin_set_tx_identifier (Usart *p_usart, uint8_t uc_id)
 
void usart_lin_set_wakeup_signal_type (Usart *p_usart, uint8_t uc_type)
 
uint8_t usart_lin_tx_complete (Usart *usart)
 
void usart_lon_disable_coll_detection (Usart *p_usart)
 
void usart_lon_enable_coll_detection (Usart *p_usart)
 
uint32_t usart_lon_is_rx_end (Usart *p_usart)
 
uint32_t usart_lon_is_tx_end (Usart *p_usart)
 
void usart_lon_set_beta1_rx_len (Usart *p_usart, uint32_t ul_len)
 
void usart_lon_set_beta1_tx_len (Usart *p_usart, uint32_t ul_len)
 
void usart_lon_set_cdtail (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_comm_type (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_data_len (Usart *p_usart, uint8_t uc_len)
 
void usart_lon_set_dmam (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_l2hdr (Usart *p_usart, uint8_t uc_bli, uint8_t uc_altp, uint8_t uc_pb)
 
void usart_lon_set_pre_len (Usart *p_usart, uint32_t ul_len)
 
void usart_lon_set_priority (Usart *p_usart, uint8_t uc_psnb, uint8_t uc_nps)
 
void usart_lon_set_rx_idt (Usart *p_usart, uint32_t ul_time)
 
void usart_lon_set_tcol (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_tx_idt (Usart *p_usart, uint32_t ul_time)
 
void usart_man_disable_drift_compensation (Usart *p_usart)
 
void usart_man_enable_drift_compensation (Usart *p_usart)
 
void usart_man_set_rx_polarity (Usart *p_usart, uint8_t uc_polarity)
 
void usart_man_set_rx_pre_len (Usart *p_usart, uint8_t uc_len)
 
void usart_man_set_rx_pre_pattern (Usart *p_usart, uint8_t uc_pattern)
 
void usart_man_set_tx_polarity (Usart *p_usart, uint8_t uc_polarity)
 
void usart_man_set_tx_pre_len (Usart *p_usart, uint8_t uc_len)
 
void usart_man_set_tx_pre_pattern (Usart *p_usart, uint8_t uc_pattern)
 
uint32_t usart_putchar (Usart *p_usart, uint32_t c)
 Write to USART Transmit Holding Register. More...
 
uint32_t usart_read (Usart *p_usart, uint32_t *c)
 Read from USART Receive Holding Register. More...
 
void usart_reset (Usart *p_usart)
 Reset the USART and disable TX and RX. More...
 
void usart_reset_iterations (Usart *p_usart)
 
void usart_reset_nack (Usart *p_usart)
 
void usart_reset_rx (Usart *p_usart)
 Immediately stop and disable USART receiver. More...
 
void usart_reset_status (Usart *p_usart)
 Reset status bits (PARE, OVER, MANERR, UNRE and PXBRK in US_CSR). More...
 
void usart_reset_tx (Usart *p_usart)
 Immediately stop and disable USART transmitter. More...
 
void usart_restart_rx_timeout (Usart *p_usart)
 Restart the receive timeout. More...
 
uint32_t usart_send_address (Usart *p_usart, uint32_t ul_addr)
 In Multidrop mode only, the next character written to the US_THR is sent with the address bit set. More...
 
uint32_t usart_set_async_baudrate (Usart *p_usart, uint32_t baudrate, uint32_t ul_mck)
 Calculate a clock divider(CD) and a fractional part (FP) for the USART asynchronous modes to generate a baudrate as close as possible to the baudrate set point. More...
 
void usart_set_rx_timeout (Usart *p_usart, uint32_t timeout)
 Configure the receive timeout register. More...
 
void usart_set_sleepwalking (Usart *p_uart, uint8_t ul_low_value, bool cmpmode, bool cmppar, uint8_t ul_high_value)
 
void usart_set_tx_timeguard (Usart *p_usart, uint32_t timeguard)
 Configure the transmit timeguard register. More...
 
void usart_spi_force_chip_select (Usart *p_usart)
 Drive the slave select line NSS (RTS pin) to 0 in SPI master mode. More...
 
void usart_spi_release_chip_select (Usart *p_usart)
 Drive the slave select line NSS (RTS pin) to 1 in SPI master mode. More...
 
void usart_start_rx_timeout (Usart *p_usart)
 Start waiting for a character before clocking the timeout count. More...
 
void usart_start_tx_break (Usart *p_usart)
 Start transmission of a break. More...
 
void usart_stop_tx_break (Usart *p_usart)
 Stop transmission of a break. More...
 
uint32_t usart_write (Usart *p_usart, uint32_t c)
 Write to USART Transmit Holding Register. More...
 
void usart_write_line (Usart *p_usart, const char *string)
 Write one-line string through USART. More...
 

#define SPI_CPHA   (1 << 0)

Clock phase.

#define SPI_CPOL   (1 << 1)

Clock polarity.

#define SPI_MODE_0   0

SPI mode definition.

Referenced by usart_init_spi_master(), and usart_init_spi_slave().

#define SPI_MODE_1   (SPI_CPHA)
#define SPI_MODE_2   (SPI_CPOL)
#define SPI_MODE_3   (SPI_CPOL | SPI_CPHA)
#define US_MR_USART_MODE_LIN_MASTER   0x0A

micro definition for LIN mode of SAMV71

#define US_MR_USART_MODE_LIN_SLAVE   0x0B

void usart_disable_interrupt ( Usart *  p_usart,
uint32_t  ul_sources 
)

Disable USART interrupts.

Parameters
p_usartPointer to a USART peripheral.
ul_sourcesInterrupt sources bit map.

Referenced by iso7816_init().

void usart_disable_rx ( Usart *  p_usart)

Disable USART receiver.

Parameters
p_usartPointer to a USART instance.
void usart_disable_tx ( Usart *  p_usart)

Disable USART transmitter.

Parameters
p_usartPointer to a USART instance.
void usart_disable_writeprotect ( Usart *  p_usart)

Disable write protect of USART registers.

Parameters
p_usartPointer to a USART instance.

References US_WPMR_WPKEY_PASSWD.

Referenced by usart_reset().

void usart_drive_DTR_pin_high ( Usart *  p_usart)

Referenced by usart_reset().

void usart_drive_DTR_pin_low ( Usart *  p_usart)
void usart_drive_RTS_pin_high ( Usart *  p_usart)

Drive the pin RTS to 1.

Parameters
p_usartPointer to a USART instance.

Referenced by usart_reset().

void usart_drive_RTS_pin_low ( Usart *  p_usart)

Drive the pin RTS to 0.

Parameters
p_usartPointer to a USART instance.
void usart_enable_interrupt ( Usart *  p_usart,
uint32_t  ul_sources 
)

Enable USART interrupts.

Parameters
p_usartPointer to a USART peripheral.
ul_sourcesInterrupt sources bit map.
void usart_enable_rx ( Usart *  p_usart)

Enable USART receiver.

Parameters
p_usartPointer to a USART instance.

Referenced by iso7816_init(), and usart_serial_init().

void usart_enable_tx ( Usart *  p_usart)

Enable USART transmitter.

Parameters
p_usartPointer to a USART instance.

Referenced by iso7816_init(), and usart_serial_init().

void usart_enable_writeprotect ( Usart *  p_usart)

Enable write protect of USART registers.

Parameters
p_usartPointer to a USART instance.

References US_WPMR_WPKEY_PASSWD.

uint8_t usart_get_error_number ( Usart *  p_usart)
uint32_t usart_get_interrupt_mask ( Usart *  p_usart)

Read USART interrupt mask.

Parameters
p_usartPointer to a USART peripheral.
Returns
The interrupt mask value.
Pdc* usart_get_pdc_base ( Usart *  p_usart)
uint32_t* usart_get_rx_access ( Usart *  p_usart)
uint32_t usart_get_status ( Usart *  p_usart)

Get current status.

Parameters
p_usartPointer to a USART instance.
Returns
The current USART status.

Referenced by iso7816_get_char(), and iso7816_send_char().

uint32_t* usart_get_tx_access ( Usart *  p_usart)
uint32_t usart_get_version ( Usart *  p_usart)
uint32_t usart_get_writeprotect_status ( Usart *  p_usart)

Get write protect status.

Parameters
p_usartPointer to a USART instance.
Returns
0 if no write protect violation occurred, or 16-bit write protect violation source.
uint32_t usart_getchar ( Usart *  p_usart,
uint32_t *  c 
)

Read from USART Receive Holding Register.

Before reading user should check if rx is ready.

Parameters
p_usartPointer to a USART instance.
cPointer where the one-byte received data will be stored.
Return values
0Data has been received.
1on failure.
uint32_t usart_init_hw_handshaking ( Usart *  p_usart,
const sam_usart_opt_t p_usart_opt,
uint32_t  ul_mck 
)

Configure USART to work in hardware handshaking mode.

Note
By default, the transmitter and receiver aren't enabled.
Parameters
p_usartPointer to a USART instance.
p_usart_optPointer to sam_usart_opt_t instance.
ul_mckUSART module input clock frequency.
Return values
0on success.
1on failure.

References usart_init_rs232().

uint32_t usart_init_irda ( Usart *  p_usart,
const sam_usart_opt_t p_usart_opt,
uint32_t  ul_mck 
)
uint32_t usart_init_iso7816 ( Usart *  p_usart,
const usart_iso7816_opt_t p_usart_opt,
uint32_t  ul_mck 
)

Referenced by iso7816_init().

uint32_t usart_init_lin_master ( Usart *  p_usart,
uint32_t  ul_baudrate,
uint32_t  ul_mck 
)
uint32_t usart_init_lin_slave ( Usart *  p_usart,
uint32_t  ul_baudrate,
uint32_t  ul_mck 
)
uint32_t usart_init_lon ( Usart *  p_usart,
uint32_t  ul_baudrate,
uint32_t  ul_mck 
)
uint32_t usart_init_modem ( Usart *  p_usart,
const sam_usart_opt_t p_usart_opt,
uint32_t  ul_mck 
)
uint32_t usart_init_rs232 ( Usart *  p_usart,
const sam_usart_opt_t p_usart_opt,
uint32_t  ul_mck 
)

Configure USART to work in RS232 mode.

Note
By default, the transmitter and receiver aren't enabled.
Parameters
p_usartPointer to a USART instance.
p_usart_optPointer to sam_usart_opt_t instance.
ul_mckUSART module input clock frequency.
Return values
0on success.
1on failure.

References sam_usart_opt_t::baudrate, sam_usart_opt_t::channel_mode, sam_usart_opt_t::char_length, sam_usart_opt_t::parity_type, sam_usart_opt_t::stop_bits, usart_reset(), and usart_set_async_baudrate().

Referenced by usart_init_hw_handshaking(), usart_init_rs485(), and usart_serial_init().

uint32_t usart_init_rs485 ( Usart *  p_usart,
const sam_usart_opt_t p_usart_opt,
uint32_t  ul_mck 
)

Configure USART to work in RS485 mode.

Note
By default, the transmitter and receiver aren't enabled.
Parameters
p_usartPointer to a USART instance.
p_usart_optPointer to sam_usart_opt_t instance.
ul_mckUSART module input clock frequency.
Return values
0on success.
1on failure.

References usart_init_rs232().

uint32_t usart_init_spi_master ( Usart *  p_usart,
const usart_spi_opt_t p_usart_opt,
uint32_t  ul_mck 
)

Configure USART to work in SPI mode and act as a master.

Note
By default, the transmitter and receiver aren't enabled.
Parameters
p_usartPointer to a USART instance.
p_usart_optPointer to sam_usart_opt_t instance.
ul_mckUSART module input clock frequency.
Return values
0on success.
1on failure.

References usart_spi_opt_t::baudrate, usart_spi_opt_t::channel_mode, usart_spi_opt_t::char_length, usart_spi_opt_t::spi_mode, SPI_MODE_0, SPI_MODE_1, SPI_MODE_2, SPI_MODE_3, usart_reset(), and usart_set_spi_master_baudrate().

uint32_t usart_init_spi_slave ( Usart *  p_usart,
const usart_spi_opt_t p_usart_opt 
)

Configure USART to work in SPI mode and act as a slave.

Note
By default, the transmitter and receiver aren't enabled.
Parameters
p_usartPointer to a USART instance.
p_usart_optPointer to sam_usart_opt_t instance.
Return values
0on success.
1on failure.

References usart_spi_opt_t::channel_mode, usart_spi_opt_t::char_length, usart_spi_opt_t::spi_mode, SPI_MODE_0, SPI_MODE_1, SPI_MODE_2, SPI_MODE_3, usart_reset(), and usart_set_spi_slave_baudrate().

uint32_t usart_init_sync_master ( Usart *  p_usart,
const sam_usart_opt_t p_usart_opt,
uint32_t  ul_mck 
)

Configure USART to work in SYNC mode and act as a master.

Note
By default, the transmitter and receiver aren't enabled.
Parameters
p_usartPointer to a USART instance.
p_usart_optPointer to sam_usart_opt_t instance.
ul_mckUSART module input clock frequency.
Return values
0on success.
1on failure.

References sam_usart_opt_t::baudrate, sam_usart_opt_t::channel_mode, sam_usart_opt_t::char_length, sam_usart_opt_t::parity_type, sam_usart_opt_t::stop_bits, usart_reset(), and usart_set_sync_master_baudrate().

uint32_t usart_init_sync_slave ( Usart *  p_usart,
const sam_usart_opt_t p_usart_opt 
)

Configure USART to work in SYNC mode and act as a slave.

Note
By default, the transmitter and receiver aren't enabled.
Parameters
p_usartPointer to a USART instance.
p_usart_optPointer to sam_usart_opt_t instance.
Return values
0on success.
1on failure.

References sam_usart_opt_t::channel_mode, sam_usart_opt_t::char_length, sam_usart_opt_t::parity_type, sam_usart_opt_t::stop_bits, usart_reset(), and usart_set_sync_slave_baudrate().

uint32_t usart_is_rx_buf_end ( Usart *  p_usart)
uint32_t usart_is_rx_buf_full ( Usart *  p_usart)
uint32_t usart_is_rx_ready ( Usart *  p_usart)

Check if the received data are ready.

Check if Data have been received and loaded into USART_RHR.

Parameters
p_usartPointer to a USART instance.
Return values
1Some data has been received.
0No data has been received.

Referenced by usart_serial_is_rx_ready().

uint32_t usart_is_tx_buf_empty ( Usart *  p_usart)
uint32_t usart_is_tx_buf_end ( Usart *  p_usart)
uint32_t usart_is_tx_empty ( Usart *  p_usart)

Check if Transmit Holding Register is empty.

Check if the last data written in USART_THR have been loaded in TSR and the last data loaded in TSR have been transmitted.

Parameters
p_usartPointer to a USART instance.
Return values
1Transmitter is empty.
0Transmitter is not empty.
uint32_t usart_is_tx_ready ( Usart *  p_usart)

Check if Transmit is Ready.

Check if data have been loaded in USART_THR and are waiting to be loaded into the Transmit Shift Register (TSR).

Parameters
p_usartPointer to a USART instance.
Return values
1No data is in the Transmit Holding Register.
0There is data in the Transmit Holding Register.
void usart_lin_abort_tx ( Usart *  p_usart)
void usart_lin_disable_checksum ( Usart *  p_usart)
void usart_lin_disable_frame_slot ( Usart *  p_usart)
void usart_lin_disable_parity ( Usart *  p_usart)
void usart_lin_disable_pdc_mode ( Usart *  p_usart)
void usart_lin_enable_checksum ( Usart *  p_usart)
void usart_lin_enable_frame_slot ( Usart *  p_usart)
void usart_lin_enable_parity ( Usart *  p_usart)
void usart_lin_enable_pdc_mode ( Usart *  p_usart)
uint8_t usart_lin_get_data_length ( Usart *  usart)
uint8_t usart_lin_identifier_reception_complete ( Usart *  usart)
uint8_t usart_lin_identifier_send_complete ( Usart *  usart)
uint8_t usart_lin_read_identifier ( Usart *  p_usart)
void usart_lin_send_wakeup_signal ( Usart *  p_usart)
void usart_lin_set_checksum_type ( Usart *  p_usart,
uint8_t  uc_type 
)
void usart_lin_set_data_len_mode ( Usart *  p_usart,
uint8_t  uc_mode 
)
void usart_lin_set_node_action ( Usart *  p_usart,
uint8_t  uc_action 
)
void usart_lin_set_response_data_len ( Usart *  p_usart,
uint8_t  uc_len 
)
void usart_lin_set_tx_identifier ( Usart *  p_usart,
uint8_t  uc_id 
)
void usart_lin_set_wakeup_signal_type ( Usart *  p_usart,
uint8_t  uc_type 
)
uint8_t usart_lin_tx_complete ( Usart *  usart)
void usart_lon_disable_coll_detection ( Usart *  p_usart)
void usart_lon_enable_coll_detection ( Usart *  p_usart)
uint32_t usart_lon_is_rx_end ( Usart *  p_usart)
uint32_t usart_lon_is_tx_end ( Usart *  p_usart)
void usart_lon_set_beta1_rx_len ( Usart *  p_usart,
uint32_t  ul_len 
)
void usart_lon_set_beta1_tx_len ( Usart *  p_usart,
uint32_t  ul_len 
)
void usart_lon_set_cdtail ( Usart *  p_usart,
uint8_t  uc_type 
)
void usart_lon_set_comm_type ( Usart *  p_usart,
uint8_t  uc_type 
)
void usart_lon_set_data_len ( Usart *  p_usart,
uint8_t  uc_len 
)
void usart_lon_set_dmam ( Usart *  p_usart,
uint8_t  uc_type 
)
void usart_lon_set_l2hdr ( Usart *  p_usart,
uint8_t  uc_bli,
uint8_t  uc_altp,
uint8_t  uc_pb 
)
void usart_lon_set_pre_len ( Usart *  p_usart,
uint32_t  ul_len 
)
void usart_lon_set_priority ( Usart *  p_usart,
uint8_t  uc_psnb,
uint8_t  uc_nps 
)
void usart_lon_set_rx_idt ( Usart *  p_usart,
uint32_t  ul_time 
)
void usart_lon_set_tcol ( Usart *  p_usart,
uint8_t  uc_type 
)
void usart_lon_set_tx_idt ( Usart *  p_usart,
uint32_t  ul_time 
)
void usart_man_disable_drift_compensation ( Usart *  p_usart)
void usart_man_enable_drift_compensation ( Usart *  p_usart)
void usart_man_set_rx_polarity ( Usart *  p_usart,
uint8_t  uc_polarity 
)
void usart_man_set_rx_pre_len ( Usart *  p_usart,
uint8_t  uc_len 
)
void usart_man_set_rx_pre_pattern ( Usart *  p_usart,
uint8_t  uc_pattern 
)
void usart_man_set_tx_polarity ( Usart *  p_usart,
uint8_t  uc_polarity 
)
void usart_man_set_tx_pre_len ( Usart *  p_usart,
uint8_t  uc_len 
)
void usart_man_set_tx_pre_pattern ( Usart *  p_usart,
uint8_t  uc_pattern 
)
uint32_t usart_putchar ( Usart *  p_usart,
uint32_t  c 
)

Write to USART Transmit Holding Register.

Note
Before writing user should check if tx is ready (or empty).
Parameters
p_usartPointer to a USART instance.
cData to be sent.
Return values
0on success.
1on failure.

Referenced by usart_write_line().

uint32_t usart_read ( Usart *  p_usart,
uint32_t *  c 
)

Read from USART Receive Holding Register.

Note
Before reading user should check if rx is ready.
Parameters
p_usartPointer to a USART instance.
cPointer where the one-byte received data will be stored.
Return values
0on success.
1if no data is available or errors.

Referenced by iso7816_cold_reset(), iso7816_get_char(), iso7816_warm_reset(), and usart_serial_getchar().

void usart_reset ( Usart *  p_usart)
void usart_reset_iterations ( Usart *  p_usart)
void usart_reset_nack ( Usart *  p_usart)
void usart_reset_rx ( Usart *  p_usart)

Immediately stop and disable USART receiver.

Parameters
p_usartPointer to a USART instance.

Referenced by usart_reset().

void usart_reset_status ( Usart *  p_usart)

Reset status bits (PARE, OVER, MANERR, UNRE and PXBRK in US_CSR).

Parameters
p_usartPointer to a USART instance.

Referenced by iso7816_cold_reset(), iso7816_get_char(), iso7816_send_char(), iso7816_warm_reset(), and usart_reset().

void usart_reset_tx ( Usart *  p_usart)

Immediately stop and disable USART transmitter.

Parameters
p_usartPointer to a USART instance.

Referenced by usart_reset().

void usart_restart_rx_timeout ( Usart *  p_usart)

Restart the receive timeout.

Parameters
p_usartPointer to a USART instance.
uint32_t usart_send_address ( Usart *  p_usart,
uint32_t  ul_addr 
)

In Multidrop mode only, the next character written to the US_THR is sent with the address bit set.

Parameters
p_usartPointer to a USART instance.
ul_addrThe address to be sent out.
Return values
0on success.
1on failure.

References usart_write().

uint32_t usart_set_async_baudrate ( Usart *  p_usart,
uint32_t  baudrate,
uint32_t  ul_mck 
)

Calculate a clock divider(CD) and a fractional part (FP) for the USART asynchronous modes to generate a baudrate as close as possible to the baudrate set point.

Note
Baud rate calculation: Baudrate = ul_mck/(Over * (CD + FP/8)) (Over being 16 or 8). The maximal oversampling is selected if it allows to generate a baudrate close to the set point.
Parameters
p_usartPointer to a USART instance.
baudrateBaud rate set point.
ul_mckUSART module input clock frequency.
Return values
0Baud rate is successfully initialized.
1Baud rate set point is out of range for the given input clock frequency.

References HIGH_FRQ_SAMPLE_DIV, LOW_FRQ_SAMPLE_DIV, and MAX_CD_VALUE.

Referenced by usart_init_rs232().

void usart_set_rx_timeout ( Usart *  p_usart,
uint32_t  timeout 
)

Configure the receive timeout register.

Parameters
p_usartPointer to a USART instance.
timeoutThe value of receive timeout.
void usart_set_sleepwalking ( Usart *  p_uart,
uint8_t  ul_low_value,
bool  cmpmode,
bool  cmppar,
uint8_t  ul_high_value 
)
void usart_set_tx_timeguard ( Usart *  p_usart,
uint32_t  timeguard 
)

Configure the transmit timeguard register.

Parameters
p_usartPointer to a USART instance.
timeguardThe value of transmit timeguard.

Referenced by iso7816_init().

void usart_spi_force_chip_select ( Usart *  p_usart)

Drive the slave select line NSS (RTS pin) to 0 in SPI master mode.

Parameters
p_usartPointer to a USART instance.
void usart_spi_release_chip_select ( Usart *  p_usart)

Drive the slave select line NSS (RTS pin) to 1 in SPI master mode.

Parameters
p_usartPointer to a USART instance.
void usart_start_rx_timeout ( Usart *  p_usart)

Start waiting for a character before clocking the timeout count.

Reset the status bit TIMEOUT in US_CSR.

Parameters
p_usartPointer to a USART instance.
void usart_start_tx_break ( Usart *  p_usart)

Start transmission of a break.

Parameters
p_usartPointer to a USART instance.
void usart_stop_tx_break ( Usart *  p_usart)

Stop transmission of a break.

Parameters
p_usartPointer to a USART instance.
uint32_t usart_write ( Usart *  p_usart,
uint32_t  c 
)

Write to USART Transmit Holding Register.

Note
Before writing user should check if tx is ready (or empty).
Parameters
p_usartPointer to a USART instance.
cData to be sent.
Return values
0on success.
1on failure.

Referenced by iso7816_send_char(), usart_send_address(), and usart_serial_putchar().

void usart_write_line ( Usart *  p_usart,
const char *  string 
)

Write one-line string through USART.

Parameters
p_usartPointer to a USART instance.
stringPointer to one-line string to be sent.

References usart_putchar().