M471M/R1/S BSP V3.01.000
The Board Support Package for M4521
Macros | Functions
Collaboration diagram for SCUART Exported Functions:

Macros

#define SCUART_WRITE(sc, u8Data)
 Write Data to Tx data register. More...
 
#define SCUART_GET_TX_EMPTY(sc)
 Get TX FIFO empty flag status from register. More...
 
#define SCUART_GET_TX_FULL(sc)
 Get TX FIFO full flag status from register. More...
 
#define SCUART_WAIT_TX_EMPTY(sc)
 Wait specified smartcard port transmission complete. More...
 
#define SCUART_IS_TX_FULL(sc)
 Check specified smartcard port transmit FIFO is full or not. More...
 
#define SCUART_IS_TX_EMPTY(sc)
 Check specified smartcard port transmission is over. More...
 
#define SCUART_READ(sc)
 Read Rx data register. More...
 
#define SCUART_GET_RX_EMPTY(sc)
 Get RX FIFO empty flag status from register. More...
 
#define SCUART_GET_RX_FULL(sc)
 Get RX FIFO full flag status from register. More...
 
#define SCUART_IS_RX_READY(sc)
 Check if receive data number in FIFO reach FIFO trigger level or not. More...
 
#define SCUART_IS_RX_FULL(sc)
 Check specified smartcard port receive FIFO is full or not. More...
 
#define SCUART_ENABLE_INT(sc, u32Mask)
 Enable specified interrupts. More...
 
#define SCUART_DISABLE_INT(sc, u32Mask)
 Disable specified interrupts. More...
 
#define SCUART_GET_INT_FLAG(sc, u32Type)
 Get specified interrupt flag/status. More...
 
#define SCUART_CLR_INT_FLAG(sc, u32Type)
 Clear specified interrupt flag/status. More...
 
#define SCUART_GET_ERR_FLAG(sc)
 Get receive error flag/status. More...
 
#define SCUART_CLR_ERR_FLAG(sc, u32Mask)
 Clear specified receive error flag/status. More...
 

Functions

void SCUART_Close (SC_T *sc)
 Disable smartcard uart interface. More...
 
uint32_t SCUART_Open (SC_T *sc, uint32_t u32baudrate)
 Enable smartcard uart interface. More...
 
uint32_t SCUART_Read (SC_T *sc, uint8_t *pu8RxBuf, uint32_t u32ReadBytes)
 Read data from smartcard UART interface. More...
 
uint32_t SCUART_SetLineConfig (SC_T *sc, uint32_t u32Baudrate, uint32_t u32DataWidth, uint32_t u32Parity, uint32_t u32StopBits)
 This function use to config smartcard UART mode line setting. More...
 
void SCUART_SetTimeoutCnt (SC_T *sc, uint32_t u32TOC)
 This function use to set receive timeout count. More...
 
void SCUART_Write (SC_T *sc, uint8_t *pu8TxBuf, uint32_t u32WriteBytes)
 Write data to smartcard UART interface. More...
 

Detailed Description

Macro Definition Documentation

◆ SCUART_CLR_ERR_FLAG

#define SCUART_CLR_ERR_FLAG (   sc,
  u32Mask 
)

Clear specified receive error flag/status.

Parameters
[in]scThe pointer of smartcard module.
[in]u32MaskReceive error flag/status to clear, combination following values:
Returns
None

The macro is used to clear receiver parity error flag, receiver frame error flag or receiver break error flag.

Definition at line 255 of file scuart.h.

◆ SCUART_CLR_INT_FLAG

#define SCUART_CLR_INT_FLAG (   sc,
  u32Type 
)

Clear specified interrupt flag/status.

Parameters
[in]scThe pointer of smartcard module.
[in]u32TypeInterrupt flag/status to clear, could be the combination of following values:
Returns
None

The macro is used to clear receiver buffer time-out interrupt flag, transfer error interrupt flag or transmit buffer empty interrupt flag.

Definition at line 228 of file scuart.h.

◆ SCUART_DISABLE_INT

#define SCUART_DISABLE_INT (   sc,
  u32Mask 
)

Disable specified interrupts.

Parameters
[in]scThe pointer of smartcard module.
[in]u32MaskInterrupt masks to disable, a combination of following bits.
Returns
None

The macro is used to disable receiver buffer time-out interrupt, transfer error interrupt, transmit buffer empty interrupt or receive data reach trigger level interrupt.

Definition at line 197 of file scuart.h.

◆ SCUART_ENABLE_INT

#define SCUART_ENABLE_INT (   sc,
  u32Mask 
)

Enable specified interrupts.

Parameters
[in]scThe pointer of smartcard module.
[in]u32MaskInterrupt masks to enable, a combination of following bits.
Returns
None

The macro is used to enable receiver buffer time-out interrupt, transfer error interrupt, transmit buffer empty interrupt or receive data reach trigger level interrupt.

Definition at line 182 of file scuart.h.

◆ SCUART_GET_ERR_FLAG

#define SCUART_GET_ERR_FLAG (   sc)

Get receive error flag/status.

Parameters
[in]scThe pointer of smartcard module.
Returns
Current receive error status, could one of following errors:
Return values
SC_STATUS_PEF_MskParity error.
SC_STATUS_FEF_MskFrame error.
SC_STATUS_BEF_MskBreak error.

The macro is used to get receiver parity error status, receiver frame error status or receiver break error status.

Definition at line 241 of file scuart.h.

◆ SCUART_GET_INT_FLAG

#define SCUART_GET_INT_FLAG (   sc,
  u32Type 
)

Get specified interrupt flag/status.

Parameters
[in]scThe pointer of smartcard module.
[in]u32TypeInterrupt flag/status to check, could be one of following value:
Returns
The status of specified interrupt.
Return values
0Specified interrupt does not happened.
1Specified interrupt happened.

The macro is used to get receiver buffer time-out interrupt status, transfer error interrupt status, transmit buffer empty interrupt status or receive data reach interrupt status.

Definition at line 214 of file scuart.h.

◆ SCUART_GET_RX_EMPTY

#define SCUART_GET_RX_EMPTY (   sc)

Get RX FIFO empty flag status from register.

Parameters
[in]scThe pointer of smartcard module.
Return values
0Receive FIFO is not empty.
SC_STATUS_RXEMPTY_MskReceive FIFO is empty.

When the last byte of Rx buffer has been read by CPU, hardware sets RXEMPTY(SC_STATUS[1]) high. It will be cleared when SC receives any new data.

Definition at line 133 of file scuart.h.

◆ SCUART_GET_RX_FULL

#define SCUART_GET_RX_FULL (   sc)

Get RX FIFO full flag status from register.

Parameters
[in]scThe pointer of smartcard module.
Return values
0Receive FIFO is not full.
SC_STATUS_TXFULL_MskReceive FIFO is full.

RXFULLF(SC_STATUS[2]) is set when RX pointer is equal to 4, otherwise it is cleared by hardware.

Definition at line 144 of file scuart.h.

◆ SCUART_GET_TX_EMPTY

#define SCUART_GET_TX_EMPTY (   sc)

Get TX FIFO empty flag status from register.

Parameters
[in]scThe pointer of smartcard module.
Returns
Transmit FIFO empty status.
Return values
0Transmit FIFO is not empty.
SC_STATUS_TXEMPTY_MskTransmit FIFO is empty.

When the last byte of TX buffer has been transferred to Transmitter Shift Register, hardware sets TXEMPTY bit (SC_STATUS[9]) high. It will be cleared when writing data into DAT (SC_DAT[7:0]).

Definition at line 69 of file scuart.h.

◆ SCUART_GET_TX_FULL

#define SCUART_GET_TX_FULL (   sc)

Get TX FIFO full flag status from register.

Parameters
[in]scThe pointer of smartcard module.
Return values
0Transmit FIFO is not full.
SC_STATUS_TXFULL_MskTransmit FIFO is full.

TXFULL(SC_STATUS[10]) is set when TX pointer is equal to 4, otherwise is cleared by hardware.

Definition at line 79 of file scuart.h.

◆ SCUART_IS_RX_FULL

#define SCUART_IS_RX_FULL (   sc)

Check specified smartcard port receive FIFO is full or not.

Parameters
[in]scThe pointer of smartcard module.
Return values
0Receive FIFO is not full.
1Receive FIFO is full.

RXFULLF(SC_STATUS[2]) is set when RX pointer is equal to 4, otherwise it is cleared by hardware.

Definition at line 165 of file scuart.h.

◆ SCUART_IS_RX_READY

#define SCUART_IS_RX_READY (   sc)

Check if receive data number in FIFO reach FIFO trigger level or not.

Parameters
[in]scThe pointer of smartcard module.
Return values
0The number of bytes in receive FIFO is less than trigger level.
1The number of bytes in receive FIFO equals or larger than trigger level.

RDAIF(SC_INTSTS[0]) is used for received data reaching trigger level RXTRGLV (SC_CTL[7:6]) interrupt status flag.

Note
If receive trigger level is not 1 byte, this macro return 0 does not necessary indicates there is no data in FIFO.

Definition at line 155 of file scuart.h.

◆ SCUART_IS_TX_EMPTY

#define SCUART_IS_TX_EMPTY (   sc)

Check specified smartcard port transmission is over.

Parameters
[in]scThe pointer of smartcard module.
Return values
0Transmit is not complete.
1Transmit complete.

TXACT (SC_STATUS[31]) is set by hardware when TX transfer is in active and the STOP bit of the last byte has been transmitted.

Definition at line 110 of file scuart.h.

◆ SCUART_IS_TX_FULL

#define SCUART_IS_TX_FULL (   sc)

Check specified smartcard port transmit FIFO is full or not.

Parameters
[in]scThe pointer of smartcard module.
Return values
0Transmit FIFO is not full.
1Transmit FIFO is full.

TXFULL(SC_STATUS[10]) indicates TX buffer full or not. This is set when TX pointer is equal to 4, otherwise is cleared by hardware.

Definition at line 100 of file scuart.h.

◆ SCUART_READ

#define SCUART_READ (   sc)

Read Rx data register.

Parameters
[in]scThe pointer of smartcard module.
Returns
The oldest data byte in RX FIFO.

By reading DAT register, the SC will return an 8-bit received data.

Definition at line 122 of file scuart.h.

◆ SCUART_WAIT_TX_EMPTY

#define SCUART_WAIT_TX_EMPTY (   sc)

Wait specified smartcard port transmission complete.

Parameters
[in]scThe pointer of smartcard module.
Returns
None

TXACT (SC_STATUS[31]) is cleared automatically when TX transfer is finished or the last byte transmission has completed.

Note
This macro blocks until transmit complete.

Definition at line 89 of file scuart.h.

◆ SCUART_WRITE

#define SCUART_WRITE (   sc,
  u8Data 
)

Write Data to Tx data register.

Parameters
[in]scThe pointer of smartcard module.
[in]u8DataData byte to transmit.
Returns
None

By writing data to DAT register, the SC will send out an 8-bit data.

Definition at line 57 of file scuart.h.

Function Documentation

◆ SCUART_Close()

void SCUART_Close ( SC_T sc)

Disable smartcard uart interface.

Parameters
scThe pointer of smartcard module.
Returns
None

The function is used to disable smartcard interface UART mode.

Definition at line 29 of file scuart.c.

◆ SCUART_Open()

HIDDEN_SYMBOLS uint32_t SCUART_Open ( SC_T sc,
uint32_t  u32baudrate 
)

Enable smartcard uart interface.

Parameters
[in]scThe pointer of smartcard module.
[in]u32baudrateTarget baudrate of smartcard module.
Returns
Actual baudrate of smartcard mode.

This function use to enable smartcard module UART mode and set baudrate.

Note
This function configures character width to 8 bits, 1 stop bit, and no parity. And can use SCUART_SetLineConfig function to update these settings.

Definition at line 86 of file scuart.c.

◆ SCUART_Read()

uint32_t SCUART_Read ( SC_T sc,
uint8_t *  pu8RxBuf,
uint32_t  u32ReadBytes 
)

Read data from smartcard UART interface.

Parameters
[in]scThe pointer of smartcard module.
[in]pu8RxBufThe buffer to store receive the data.
[in]u32ReadBytesTarget number of characters to receive.
Returns
Actual character number reads to buffer.

The function is used to read Rx data from RX FIFO.

Note
This function does not block and return immediately if there's no data available.

Definition at line 109 of file scuart.c.

◆ SCUART_SetLineConfig()

uint32_t SCUART_SetLineConfig ( SC_T sc,
uint32_t  u32Baudrate,
uint32_t  u32DataWidth,
uint32_t  u32Parity,
uint32_t  u32StopBits 
)

This function use to config smartcard UART mode line setting.

Parameters
[in]scThe pointer of smartcard module.
[in]u32BaudrateTarget baudrate of smartcard module. If this value is 0, UART baudrate will not change.
[in]u32DataWidthThe data length, could be:
[in]u32ParityThe parity setting, could be:
[in]u32StopBitsThe stop bit length, could be:
Returns
Actual baudrate of smartcard.

Smartcard UART mode is operated in LIN data frame.

Definition at line 144 of file scuart.c.

◆ SCUART_SetTimeoutCnt()

void SCUART_SetTimeoutCnt ( SC_T sc,
uint32_t  u32TOC 
)

This function use to set receive timeout count.

Parameters
[in]scThe pointer of smartcard module.
[in]u32TOCRx timeout counter, using baudrate as counter unit. Valid range are 0~0x1FF, set this value to 0 will disable timeout counter.
Returns
None

The time-out counter resets and starts counting whenever the RX buffer received a new data word. Once the counter decrease to 1 and no new data is received or CPU does not read any data from FIFO, a receiver time-out interrupt will be generated.

Definition at line 176 of file scuart.c.

◆ SCUART_Write()

void SCUART_Write ( SC_T sc,
uint8_t *  pu8TxBuf,
uint32_t  u32WriteBytes 
)

Write data to smartcard UART interface.

Parameters
[in]scThe pointer of smartcard module.
[in]pu8TxBufThe buffer containing data to send to transmit FIFO.
[in]u32WriteBytesNumber of data to send.
Returns
None

This function is to write data into transmit FIFO to send data out.

Note
This function blocks until all data write into FIFO.

Definition at line 191 of file scuart.c.