RTEMS: bsps/arm/atsam/include/libchip/include/usart.h File Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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.
void | USART_SetBaudrate (Usart *pUsart, uint8_t OverSamp, uint32_t baudrate, uint32_t masterClock)
| Configures an USART baudrate.
uint32_t | USART_GetStatus (Usart *usart)
| Get present status.
void | USART_ResetRx (Usart *pUsart)
| Resets or disables the Receiver of an USART peripheral.
void | USART_ResetTx (Usart *pUsart)
| resets and disables the transmitter of an USART peripheral.
void | USART_EnableTx (Usart *pUsart)
| Enables the transmitter of an USART peripheral.
void | USART_EnableRx (Usart *pUsart)
| Enables the Receiver of an USART peripheral.
void | USART_DisableRx (Usart *pUsart)
| Disables the Receiver of an USART peripheral.
void | USART_DisableTx (Usart *pUsart)
| Disables the transmitter of an USART peripheral.
void | USART_EnableIt (Usart *usart, uint32_t mode)
| Enable interrupt.
void | USART_DisableIt (Usart *usart, uint32_t mode)
| Disable interrupt.
uint32_t | USART_GetItMask (Usart *usart)
| Return interrupt mask.
void | USART_SetTransmitterEnabled (Usart *usart, uint8_t enabled)
| Enables or disables the transmitter of an USART peripheral.
void | USART_SetReceiverEnabled (Usart *usart, uint8_t enabled)
| Enables or disables the receiver of an USART peripheral.
void | USART_SetRTSEnabled (Usart *usart, uint8_t enabled)
| Enables or disables the Request To Send (RTS) of an USART peripheral.
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.
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.
uint8_t | USART_IsDataAvailable (Usart *usart)
| Returns 1 if some data has been received and can be read from an USART; otherwise returns 0.
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.
uint32_t | USART_IsRxReady (Usart *usart)
| Return 1 if a character can be read in USART.
uint8_t | USART_GetChar (Usart *usart)
| Reads and returns a character from the USART.
void | USART_EnableRecvTimeOut (Usart *usart, uint32_t timeout)
| Enable Rx Timeout for USART.
void | USART_EnableTxTimeGaurd (Usart *pUsart, uint32_t TimeGaurd)
| Enable Tx Timeout for USART.
void | USART_AcknowledgeRxTimeOut (Usart *usart, uint8_t Periodic)
| Acknowledge Rx timeout and sets to Idle or periodic repetitive state.

## 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_IRDA Basic 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

  pUsart | Pointer to an USART peripheral.
  Periodic | If 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

  pUsart | Pointer to the USART peripheral to configure.
  mode | Desired value for the USART mode register (see the datasheet).
  baudrate | Baudrate at which the USART should operate (in Hz).
  masterClock | Frequency of the system master clock (in Hz).

## ◆ USART_DisableIt()

void USART_DisableIt | ( | Usart * | pUsart,
|  | uint32_t | mode
| ) |  |

Disable interrupt.

Parameters

  pUsart | Pointer to an USART peripheral.
  mode | Interrupt mode.

## ◆ USART_DisableRx()

void USART_DisableRx | ( | Usart * | pUsart | ) |

Disables the Receiver of an USART peripheral.

Parameters

  pUsart | Pointer to an USART peripheral

## ◆ USART_DisableTx()

void USART_DisableTx | ( | Usart * | pUsart | ) |

Disables the transmitter of an USART peripheral.

Parameters

  pUsart | Pointer to an USART peripheral

## ◆ USART_EnableIt()

void USART_EnableIt | ( | Usart * | pUsart,
|  | uint32_t | mode
| ) |  |

Enable interrupt.

Parameters

  pUsart | Pointer to an USART peripheral.
  mode | Interrupt mode.

## ◆ USART_EnableRecvTimeOut()

void USART_EnableRecvTimeOut | ( | Usart * | pUsart,
|  | uint32_t | Timeout
| ) |  |

Enable Rx Timeout for USART.

Parameters

  pUsart | Pointer to an USART peripheral.
  Timeout | Timeout value

Returns
  None

## ◆ USART_EnableRx()

void USART_EnableRx | ( | Usart * | pUsart | ) |

Enables the Receiver of an USART peripheral.

Parameters

  pUsart | Pointer to an USART peripheral

## ◆ USART_EnableTx()

void USART_EnableTx | ( | Usart * | pUsart | ) |

Enables the transmitter of an USART peripheral.

Parameters

  pUsart | Pointer to an USART peripheral

## ◆ USART_EnableTxTimeGaurd()

void USART_EnableTxTimeGaurd | ( | Usart * | pUsart,
|  | uint32_t | TimeGaurd
| ) |  |

Enable Tx Timeout for USART.

Parameters

  pUsart | Pointer to an USART peripheral.
  TimeGaurd | TimeGaurd 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

  pUsart | Pointer to an USART peripheral.

Returns
  Character received.

## ◆ USART_GetItMask()

uint32_t USART_GetItMask | ( | Usart * | pUsart | ) |

Return interrupt mask.

Parameters

  pUsart | Pointer to an USART peripheral.

## ◆ USART_GetStatus()

uint32_t USART_GetStatus | ( | Usart * | pUsart | ) |

Get present status.

Parameters

  pUsart | Pointer 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

  pUsart | Pointer to an USART instance.

## ◆ USART_IsRxReady()

uint32_t USART_IsRxReady | ( | Usart * | pUsart | ) |

Return 1 if a character can be read in USART.

Parameters

  pUsart | Pointer 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

  pUsart | Pointer to an USART peripheral.
  c | Character 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

  pUsart | Pointer to an USART peripheral.
  timeOut | Time out value (0 -> no timeout).

## ◆ USART_ResetRx()

void USART_ResetRx | ( | Usart * | pUsart | ) |

Resets or disables the Receiver of an USART peripheral.

Parameters

  pUsart | Pointer to an USART peripheral

## ◆ USART_ResetTx()

void USART_ResetTx | ( | Usart * | pUsart | ) |

resets and disables the transmitter of an USART peripheral.

Parameters

  pUsart | Pointer 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

  pUsart | Pointer to the USART peripheral to configure.
  baudrate | Baudrate at which the USART should operate (in Hz).
  masterClock | Frequency 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

  pUsart | Pointer to an USART peripheral
  enabled | If 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

  pUsart | Pointer to an USART peripheral
  enabled | If 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

  pUsart | Pointer to an USART peripheral
  enabled | If 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

  pUsart | Pointer to an USART peripheral.
  data | Data to send including 9nth bit and sync field if necessary (in the same format as the US_THR register in the datasheet).
  timeOut | Time out value (0 = no timeout).