RTEMS  5.0.0
Macros | Functions
usart.h File Reference
#include "chip.h"
#include <stdint.h>

Go to the source code of this file.

Macros

#define USART_MODE_ASYNCHRONOUS   (US_MR_CHRL_8_BIT | US_MR_PAR_NO)
 
#define MAX_RX_TIMEOUT   131071
 
#define USART_MODE_IRDA   (US_MR_USART_MODE_IRDA | US_MR_CHRL_8_BIT | US_MR_PAR_NO | US_MR_FILTER)
 
#define AT91C_US_USMODE_SPIM   0xE
 
#define US_SPI_CPOL_0   (0x0<<16)
 
#define US_SPI_CPHA_0   (0x0<<8)
 
#define US_SPI_CPOL_1   (0x1<<16)
 
#define US_SPI_CPHA_1   (0x1<<8)
 
#define US_SPI_BPMODE_0   (US_SPI_CPOL_0|US_SPI_CPHA_1)
 
#define US_SPI_BPMODE_1   (US_SPI_CPOL_0|US_SPI_CPHA_0)
 
#define US_SPI_BPMODE_2   (US_SPI_CPOL_1|US_SPI_CPHA_1)
 
#define US_SPI_BPMODE_3   (US_SPI_CPOL_1|US_SPI_CPHA_0)
 

Functions

void USART_Configure (Usart *pUsart, uint32_t mode, uint32_t baudrate, uint32_t masterClock)
 Configures an USART peripheral with the specified parameters. More...
 
void USART_SetBaudrate (Usart *pUsart, uint8_t OverSamp, uint32_t baudrate, uint32_t masterClock)
 Configures an USART baudrate. More...
 
uint32_t USART_GetStatus (Usart *usart)
 Get present status. More...
 
void USART_ResetRx (Usart *pUsart)
 Resets or disables the Receiver of an USART peripheral. More...
 
void USART_ResetTx (Usart *pUsart)
 resets and disables the transmitter of an USART peripheral. More...
 
void USART_EnableTx (Usart *pUsart)
 Enables the transmitter of an USART peripheral. More...
 
void USART_EnableRx (Usart *pUsart)
 Enables the Receiver of an USART peripheral. More...
 
void USART_DisableRx (Usart *pUsart)
 Disables the Receiver of an USART peripheral. More...
 
void USART_DisableTx (Usart *pUsart)
 Disables the transmitter of an USART peripheral. More...
 
void USART_EnableIt (Usart *usart, uint32_t mode)
 Enable interrupt. More...
 
void USART_DisableIt (Usart *usart, uint32_t mode)
 Disable interrupt. More...
 
uint32_t USART_GetItMask (Usart *usart)
 Return interrupt mask. More...
 
void USART_SetTransmitterEnabled (Usart *usart, uint8_t enabled)
 Enables or disables the transmitter of an USART peripheral. More...
 
void USART_SetReceiverEnabled (Usart *usart, uint8_t enabled)
 Enables or disables the receiver of an USART peripheral. More...
 
void USART_SetRTSEnabled (Usart *usart, uint8_t enabled)
 Enables or disables the Request To Send (RTS) of an USART peripheral. More...
 
void USART_Write (Usart *usart, uint16_t data, volatile uint32_t timeOut)
 Sends one packet of data through the specified USART peripheral. This function operates synchronously, so it only returns when the data has been actually sent. More...
 
uint16_t USART_Read (Usart *usart, volatile uint32_t timeOut)
 Reads and return a packet of data on the specified USART peripheral. This function operates asynchronously, so it waits until some data has been received. More...
 
uint8_t USART_IsDataAvailable (Usart *usart)
 Returns 1 if some data has been received and can be read from an USART; otherwise returns 0. More...
 
void USART_SetIrdaFilter (Usart *pUsart, uint8_t filter)
 
void USART_PutChar (Usart *usart, uint8_t c)
 Sends one packet of data through the specified USART peripheral. This function operates synchronously, so it only returns when the data has been actually sent. More...
 
uint32_t USART_IsRxReady (Usart *usart)
 Return 1 if a character can be read in USART. More...
 
uint8_t USART_GetChar (Usart *usart)
 Reads and returns a character from the USART. More...
 
void USART_EnableRecvTimeOut (Usart *usart, uint32_t timeout)
 Enable Rx Timeout for USART. More...
 
void USART_EnableTxTimeGaurd (Usart *pUsart, uint32_t TimeGaurd)
 Enable Tx Timeout for USART. More...
 
void USART_AcknowledgeRxTimeOut (Usart *usart, uint8_t Periodic)
 Acknowledge Rx timeout and sets to Idle or periodic repetitive state. More...
 

Detailed Description

Purpose

This module provides several definitions and methods for using an USART peripheral.

Usage
  1. Enable the USART peripheral clock in the PMC.
  2. Enable the required USART PIOs (see pio.h).
  3. Configure the UART by calling USART_Configure.
  4. Enable the transmitter and/or the receiver of the USART using USART_SetTransmitterEnabled and USART_SetReceiverEnabled.
  5. Send data through the USART using the USART_Write methods.
  6. Receive data from the USART using the USART_Read functions; the availability of data can be polled with USART_IsDataAvailable.
  7. Disable the transmitter and/or the receiver of the USART with USART_SetTransmitterEnabled and USART_SetReceiverEnabled.

Macro Definition Documentation

◆ AT91C_US_USMODE_SPIM

#define AT91C_US_USMODE_SPIM   0xE

SPI mode

◆ USART_MODE_ASYNCHRONOUS

#define USART_MODE_ASYNCHRONOUS   (US_MR_CHRL_8_BIT | US_MR_PAR_NO)

USART modes

This section lists several common operating modes for an USART peripheral.

Modes

  • USART_MODE_ASYNCHRONOUS
  • USART_MODE_IRDABasic asynchronous mode, i.e. 8 bits no parity.

◆ USART_MODE_IRDA

#define USART_MODE_IRDA   (US_MR_USART_MODE_IRDA | US_MR_CHRL_8_BIT | US_MR_PAR_NO | US_MR_FILTER)

IRDA mode

Function Documentation

◆ USART_AcknowledgeRxTimeOut()

void USART_AcknowledgeRxTimeOut ( Usart pUsart,
uint8_t  Periodic 
)

Acknowledge Rx timeout and sets to Idle or periodic repetitive state.

Parameters
pUsartPointer to an USART peripheral.
PeriodicIf timeout is periodic or should wait for new char
Returns
None

◆ USART_Configure()

void USART_Configure ( Usart pUsart,
uint32_t  mode,
uint32_t  baudrate,
uint32_t  masterClock 
)

Configures an USART peripheral with the specified parameters.

Parameters
pUsartPointer to the USART peripheral to configure.
modeDesired value for the USART mode register (see the datasheet).
baudrateBaudrate at which the USART should operate (in Hz).
masterClockFrequency of the system master clock (in Hz).

◆ USART_DisableIt()

void USART_DisableIt ( Usart pUsart,
uint32_t  mode 
)

Disable interrupt.

Parameters
pUsartPointer to an USART peripheral.
modeInterrupt mode.

◆ USART_DisableRx()

void USART_DisableRx ( Usart pUsart)

Disables the Receiver of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral

◆ USART_DisableTx()

void USART_DisableTx ( Usart pUsart)

Disables the transmitter of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral

◆ USART_EnableIt()

void USART_EnableIt ( Usart pUsart,
uint32_t  mode 
)

Enable interrupt.

Parameters
pUsartPointer to an USART peripheral.
modeInterrupt mode.

◆ USART_EnableRecvTimeOut()

void USART_EnableRecvTimeOut ( Usart pUsart,
uint32_t  Timeout 
)

Enable Rx Timeout for USART.

Parameters
pUsartPointer to an USART peripheral.
TimeoutTimeout value
Returns
None

◆ USART_EnableRx()

void USART_EnableRx ( Usart pUsart)

Enables the Receiver of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral

◆ USART_EnableTx()

void USART_EnableTx ( Usart pUsart)

Enables the transmitter of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral

◆ USART_EnableTxTimeGaurd()

void USART_EnableTxTimeGaurd ( Usart pUsart,
uint32_t  TimeGaurd 
)

Enable Tx Timeout for USART.

Parameters
pUsartPointer to an USART peripheral.
TimeGaurdTimeGaurd value
Returns
None

◆ USART_GetChar()

uint8_t USART_GetChar ( Usart pUsart)

Reads and returns a character from the USART.

Note
This function is synchronous (i.e. uses polling).
Parameters
pUsartPointer to an USART peripheral.
Returns
Character received.

◆ USART_GetItMask()

uint32_t USART_GetItMask ( Usart pUsart)

Return interrupt mask.

Parameters
pUsartPointer to an USART peripheral.

◆ USART_GetStatus()

uint32_t USART_GetStatus ( Usart pUsart)

Get present status.

Parameters
pUsartPointer to an USART peripheral.

◆ USART_IsDataAvailable()

uint8_t USART_IsDataAvailable ( Usart pUsart)

Returns 1 if some data has been received and can be read from an USART; otherwise returns 0.

Parameters
pUsartPointer to an USART instance.

◆ USART_IsRxReady()

uint32_t USART_IsRxReady ( Usart pUsart)

Return 1 if a character can be read in USART.

Parameters
pUsartPointer to an USART peripheral.

◆ USART_PutChar()

void USART_PutChar ( Usart pUsart,
uint8_t  c 
)

Sends one packet of data through the specified USART peripheral. This function operates synchronously, so it only returns when the data has been actually sent.

Parameters
pUsartPointer to an USART peripheral.
cCharacter to send

◆ USART_Read()

uint16_t USART_Read ( Usart pUsart,
volatile uint32_t  timeOut 
)

Reads and return a packet of data on the specified USART peripheral. This function operates asynchronously, so it waits until some data has been received.

Parameters
pUsartPointer to an USART peripheral.
timeOutTime out value (0 -> no timeout).

◆ USART_ResetRx()

void USART_ResetRx ( Usart pUsart)

Resets or disables the Receiver of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral

◆ USART_ResetTx()

void USART_ResetTx ( Usart pUsart)

resets and disables the transmitter of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral

◆ USART_SetBaudrate()

void USART_SetBaudrate ( Usart pUsart,
uint8_t  OverSamp,
uint32_t  baudrate,
uint32_t  masterClock 
)

Configures an USART baudrate.

Parameters
pUsartPointer to the USART peripheral to configure.
baudrateBaudrate at which the USART should operate (in Hz).
masterClockFrequency of the system master clock (in Hz).

◆ USART_SetReceiverEnabled()

void USART_SetReceiverEnabled ( Usart pUsart,
uint8_t  enabled 
)

Enables or disables the receiver of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral
enabledIf true, the receiver is enabled; otherwise it is disabled.

◆ USART_SetRTSEnabled()

void USART_SetRTSEnabled ( Usart pUsart,
uint8_t  enabled 
)

Enables or disables the Request To Send (RTS) of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral
enabledIf true, the RTS is enabled (0); otherwise it is disabled.

◆ USART_SetTransmitterEnabled()

void USART_SetTransmitterEnabled ( Usart pUsart,
uint8_t  enabled 
)

Enables or disables the transmitter of an USART peripheral.

Parameters
pUsartPointer to an USART peripheral
enabledIf true, the transmitter is enabled; otherwise it is disabled.

◆ USART_Write()

void USART_Write ( Usart pUsart,
uint16_t  data,
volatile uint32_t  timeOut 
)

Sends one packet of data through the specified USART peripheral. This function operates synchronously, so it only returns when the data has been actually sent.

Parameters
pUsartPointer to an USART peripheral.
dataData to send including 9nth bit and sync field if necessary (in the same format as the US_THR register in the datasheet).
timeOutTime out value (0 = no timeout).