RZA Flexible Software Package Documentation  Release v1.1.0

 
Serial Communications Interface (SCIF) UART (r_scif_uart)

Functions

fsp_err_t R_SCIF_UART_Open (uart_ctrl_t *const p_api_ctrl, uart_cfg_t const *const p_cfg)
 
fsp_err_t R_SCIF_UART_Read (uart_ctrl_t *const p_api_ctrl, uint8_t *const p_dest, uint32_t const bytes)
 
fsp_err_t R_SCIF_UART_Write (uart_ctrl_t *const p_api_ctrl, uint8_t const *const p_src, uint32_t const bytes)
 
fsp_err_t R_SCIF_UART_BaudSet (uart_ctrl_t *const p_api_ctrl, void const *const p_baud_setting)
 
fsp_err_t R_SCIF_UART_InfoGet (uart_ctrl_t *const p_api_ctrl, uart_info_t *const p_info)
 
fsp_err_t R_SCIF_UART_Close (uart_ctrl_t *const p_api_ctrl)
 
fsp_err_t R_SCIF_UART_Abort (uart_ctrl_t *const p_api_ctrl, uart_dir_t communication_to_abort)
 
fsp_err_t R_SCIF_UART_BaudCalculate (uart_ctrl_t *const p_api_ctrl, uint32_t baudrate, bool bitrate_modulation, uint32_t baud_rate_error_x_1000, scif_baud_setting_t *const p_baud_setting)
 
fsp_err_t R_SCIF_UART_ReadStop (uart_ctrl_t *const p_api_ctrl, uint32_t *remaining_bytes)
 
fsp_err_t R_SCIF_UART_CallbackSet (uart_ctrl_t *const p_api_ctrl, void(*p_callback)(uart_callback_args_t *), void const *const p_context, uart_callback_args_t *const p_callback_memory)
 

Detailed Description

Driver for the SCIF peripheral on RZ MPUs. This module implements the UART Interface.

Data Structures

struct  scif_uart_instance_ctrl_t
 
struct  scif_baud_setting_t
 
struct  scif_uart_extended_cfg_t
 

Enumerations

enum  scif_clk_src_t
 
enum  scif_uart_flow_control_t
 
enum  scif_uart_noise_cancellation_t
 
enum  scif_uart_receive_trigger_t
 
enum  scif_uart_rts_trigger_t
 

Data Structure Documentation

◆ scif_uart_instance_ctrl_t

struct scif_uart_instance_ctrl_t

UART instance control block.

◆ scif_baud_setting_t

struct scif_baud_setting_t

Register settings to achieve a desired baud rate and modulation duty.

Data Fields
struct scif_baud_setting_t __unnamed__
uint8_t brr Bit Rate Register setting.
uint8_t mddr Modulation Duty Register setting.

◆ scif_uart_extended_cfg_t

struct scif_uart_extended_cfg_t

UART on SCIF device Configuration

Data Fields
uint8_t bri_ipl Break interrupt priority.
IRQn_Type bri_irq Break interrupt IRQ number.
scif_clk_src_t clock The source clock for the baud-rate generator.
scif_uart_noise_cancellation_t noise_cancel Noise cancellation setting.
scif_baud_setting_t * p_baud_setting Register settings for a desired baud rate.
scif_uart_receive_trigger_t rx_fifo_trigger Receive FIFO trigger level.
scif_uart_rts_trigger_t rts_fifo_trigger RTS trigger level.
scif_uart_flow_control_t flow_control CTS/RTS function.

Enumeration Type Documentation

◆ scif_clk_src_t

Enumeration for SCIF clock source

Enumerator
SCIF_UART_CLOCK_INT 

Use internal clock for baud generation.

SCIF_UART_CLOCK_INT_WITH_BAUDRATE_OUTPUT 

Use internal clock for baud generation and output on SCK.

SCIF_UART_CLOCK_EXT8X 

Use external clock 8x baud rate.

SCIF_UART_CLOCK_EXT16X 

Use external clock 16x baud rate.

◆ scif_uart_flow_control_t

UART automatic flow control definition

Enumerator
SCIF_UART_FLOW_CONTROL_NONE 

Disables flow control.

SCIF_UART_FLOW_CONTROL_AUTO 

Enables automatic RTS/CTS flow control.

◆ scif_uart_noise_cancellation_t

Noise cancellation configuration.

Enumerator
SCIF_UART_NOISE_CANCELLATION_DISABLE 

Disable noise cancellation.

SCIF_UART_NOISE_CANCELLATION_ENABLE 

Enable noise cancellation.

◆ scif_uart_receive_trigger_t

Receive FIFO trigger configuration.

Enumerator
SCIF_UART_RECEIVE_TRIGGER_ONE 

Interrupt at least one byte is in FIFO.

SCIF_UART_RECEIVE_TRIGGER_QUARTER 

Interrupt at least quarter of FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_HALF 

Interrupt at least half of FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_MAX 

Interrupt at almost full in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_1 

Interrupt at least 1 byte is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_2 

Interrupt at least 2 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_3 

Interrupt at least 3 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_4 

Interrupt at least 4 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_5 

Interrupt at least 5 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_6 

Interrupt at least 6 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_7 

Interrupt at least 7 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_8 

Interrupt at least 8 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_9 

Interrupt at least 9 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_10 

Interrupt at least 10 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_11 

Interrupt at least 11 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_12 

Interrupt at least 12 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_13 

Interrupt at least 13 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_14 

Interrupt at least 14 bytes is in FIFO or 15ETU past from last receive.

SCIF_UART_RECEIVE_TRIGGER_15 

Interrupt at least 15 bytes is in FIFO or 15ETU past from last receive.

◆ scif_uart_rts_trigger_t

RTS trigger level.

Enumerator
SCIF_UART_RTS_TRIGGER_1 

RTS trigger level = 1.

SCIF_UART_RTS_TRIGGER_4 

RTS trigger level = 4.

SCIF_UART_RTS_TRIGGER_6 

RTS trigger level = 6.

SCIF_UART_RTS_TRIGGER_8 

RTS trigger level = 8.

SCIF_UART_RTS_TRIGGER_10 

RTS trigger level = 10.

SCIF_UART_RTS_TRIGGER_12 

RTS trigger level = 12.

SCIF_UART_RTS_TRIGGER_14 

RTS trigger level = 14.

SCIF_UART_RTS_TRIGGER_15 

RTS trigger level = 15.

Function Documentation

◆ R_SCIF_UART_Open()

fsp_err_t R_SCIF_UART_Open ( uart_ctrl_t *const  p_api_ctrl,
uart_cfg_t const *const  p_cfg 
)

Configures the UART driver based on the input configurations. If reception is enabled at compile time, reception is enabled at the end of this function. Implements uart_api_t::open

Return values
FSP_SUCCESSChannel opened successfully.
FSP_ERR_ASSERTIONPointer to UART control block or configuration structure is NULL.
FSP_ERR_IP_CHANNEL_NOT_PRESENTThe requested channel does not exist on this MPU.
FSP_ERR_ALREADY_OPENControl block has already been opened or channel is being used by another instance. Call close() then open() to reconfigure.
Returns
See Common Error Codes

◆ R_SCIF_UART_Read()

fsp_err_t R_SCIF_UART_Read ( uart_ctrl_t *const  p_api_ctrl,
uint8_t *const  p_dest,
uint32_t const  bytes 
)

Receives user specified number of bytes into destination buffer pointer. Implements uart_api_t::read

Return values
FSP_SUCCESSData reception successfully ends.
FSP_ERR_ASSERTIONPointer to UART control block is NULL. Number of transfers outside the max or min boundary when transfer instance used
FSP_ERR_NOT_OPENThe control block has not been opened
FSP_ERR_IN_USEA previous read operation is still in progress.
FSP_ERR_UNSUPPORTEDSCIF_UART_CFG_RX_ENABLE is set to 0
Returns
See Common Error Codes

◆ R_SCIF_UART_Write()

fsp_err_t R_SCIF_UART_Write ( uart_ctrl_t *const  p_api_ctrl,
uint8_t const *const  p_src,
uint32_t const  bytes 
)

Transmits user specified number of bytes from the source buffer pointer. Implements uart_api_t::write

Return values
FSP_SUCCESSData transmission finished successfully.
FSP_ERR_ASSERTIONPointer to UART control block is NULL. Number of transfers outside the max or min boundary when transfer instance used
FSP_ERR_NOT_OPENThe control block has not been opened
FSP_ERR_IN_USEA UART transmission is in progress
FSP_ERR_UNSUPPORTEDSCIF_UART_CFG_TX_ENABLE is set to 0
Returns
See Common Error Codes

◆ R_SCIF_UART_BaudSet()

fsp_err_t R_SCIF_UART_BaudSet ( uart_ctrl_t *const  p_api_ctrl,
void const *const  p_baud_setting 
)

Updates the baud rate using the clock selected in Open. p_baud_setting is a pointer to a scif_baud_setting_t structure. Implements uart_api_t::baudSet

Warning
This terminates any in-progress transmission.
Return values
FSP_SUCCESSBaud rate was successfully changed.
FSP_ERR_ASSERTIONPointer to UART control block is NULL or the UART is not configured to use the internal clock.
FSP_ERR_NOT_OPENThe control block has not been opened

◆ R_SCIF_UART_InfoGet()

fsp_err_t R_SCIF_UART_InfoGet ( uart_ctrl_t *const  p_api_ctrl,
uart_info_t *const  p_info 
)

Provides the driver information, including the maximum number of bytes that can be received or transmitted at a time. Implements uart_api_t::infoGet

Return values
FSP_SUCCESSInformation stored in provided p_info.
FSP_ERR_ASSERTIONPointer to UART control block is NULL.
FSP_ERR_NOT_OPENThe control block has not been opened

◆ R_SCIF_UART_Close()

fsp_err_t R_SCIF_UART_Close ( uart_ctrl_t *const  p_api_ctrl)

Aborts any in progress transfers. Disables interrupts, receiver, and transmitter. Closes lower level transfer drivers if used. Removes power. Implements uart_api_t::close

Return values
FSP_SUCCESSChannel successfully closed.
FSP_ERR_ASSERTIONPointer to UART control block is NULL.
FSP_ERR_NOT_OPENThe control block has not been opened

◆ R_SCIF_UART_Abort()

fsp_err_t R_SCIF_UART_Abort ( uart_ctrl_t *const  p_api_ctrl,
uart_dir_t  communication_to_abort 
)

Provides API to abort ongoing transfer. Transmission is aborted after the current character is transmitted. Reception is still enabled after abort(). Any characters received after abort() and before the transfer is reset in the next call to read(), will arrive via the callback function with event UART_EVENT_RX_CHAR. Implements uart_api_t::communicationAbort

Return values
FSP_SUCCESSUART transaction aborted successfully.
FSP_ERR_ASSERTIONPointer to UART control block is NULL.
FSP_ERR_NOT_OPENThe control block has not been opened.
FSP_ERR_UNSUPPORTEDThe requested Abort direction is unsupported.
Returns
See Common Error Codes or functions called by this function for other possible return codes.

◆ R_SCIF_UART_BaudCalculate()

fsp_err_t R_SCIF_UART_BaudCalculate ( uart_ctrl_t *const  p_api_ctrl,
uint32_t  baudrate,
bool  bitrate_modulation,
uint32_t  baud_rate_error_x_1000,
scif_baud_setting_t *const  p_baud_setting 
)

Calculates baud rate register settings. Evaluates and determines the best possible settings set to the baud rate related registers.

Parameters
[in]p_api_ctrlPointer to the UART control block.
[in]baudrateBaud rate [bps]. For example, 19200, 57600, 115200, etc.
[in]bitrate_modulationEnable bitrate modulation
[in]baud_rate_error_x_1000<baud_rate_percent_error> x 1000 required for module to function. Absolute max baud_rate_error is 15000 (15%).
[out]p_baud_settingBaud setting information stored here if successful
Return values
FSP_SUCCESSBaud rate is set successfully
FSP_ERR_ASSERTIONNull pointer
FSP_ERR_INVALID_ARGUMENTBaud rate is '0', source clock frequency could not be read, or error in calculated baud rate is larger than 10%.

◆ R_SCIF_UART_ReadStop()

fsp_err_t R_SCIF_UART_ReadStop ( uart_ctrl_t *const  p_api_ctrl,
uint32_t *  remaining_bytes 
)

Provides API to abort ongoing read. Reception is still enabled after abort(). Any characters received after abort() and before the transfer is reset in the next call to read(), will arrive via the callback function with event UART_EVENT_RX_CHAR. Implements uart_api_t::readStop

Return values
FSP_SUCCESSUART transaction aborted successfully.
FSP_ERR_ASSERTIONPointer to UART control block is NULL.
FSP_ERR_NOT_OPENThe control block has not been opened.
FSP_ERR_UNSUPPORTEDThe requested Abort direction is unsupported.
Returns
See Common Error Codes or functions called by this function for other possible return codes.

◆ R_SCIF_UART_CallbackSet()

fsp_err_t R_SCIF_UART_CallbackSet ( uart_ctrl_t *const  p_api_ctrl,
void(*)(uart_callback_args_t *)  p_callback,
void const *const  p_context,
uart_callback_args_t *const  p_callback_memory 
)

Updates the user callback and has option of providing memory for callback structure. Implements uart_api_t::callbackSet

Return values
FSP_SUCCESSCallback updated successfully.
FSP_ERR_ASSERTIONA required pointer is NULL.
FSP_ERR_NOT_OPENThe control block has not been opened.
FSP_ERR_NO_CALLBACK_MEMORYp_callback is non-secure and p_callback_memory is either secure or NULL.