RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
usart.h
Go to the documentation of this file.
1/* ---------------------------------------------------------------------------- */
2/* Atmel Microcontroller Software Support */
3/* SAM Software Package License */
4/* ---------------------------------------------------------------------------- */
5/* Copyright (c) 2015, Atmel Corporation */
6/* */
7/* All rights reserved. */
8/* */
9/* Redistribution and use in source and binary forms, with or without */
10/* modification, are permitted provided that the following condition is met: */
11/* */
12/* - Redistributions of source code must retain the above copyright notice, */
13/* this list of conditions and the disclaimer below. */
14/* */
15/* Atmel's name may not be used to endorse or promote products derived from */
16/* this software without specific prior written permission. */
17/* */
18/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21/* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28/* ---------------------------------------------------------------------------- */
29
53#ifndef _USART_
54#define _USART_
55
56/*------------------------------------------------------------------------------
57 * Headers
58 *----------------------------------------------------------------------------*/
59
60#include "chip.h"
61
62#include <stdint.h>
63
64/*------------------------------------------------------------------------------
65 * Definitions
66 *----------------------------------------------------------------------------*/
67
77#define USART_MODE_ASYNCHRONOUS (US_MR_CHRL_8_BIT | US_MR_PAR_NO)
78
79#define MAX_RX_TIMEOUT 131071
80
82#define USART_MODE_IRDA \
83 (US_MR_USART_MODE_IRDA | US_MR_CHRL_8_BIT | US_MR_PAR_NO | US_MR_FILTER)
84
86#define AT91C_US_USMODE_SPIM 0xE
87#define US_SPI_CPOL_0 (0x0<<16)
88#define US_SPI_CPHA_0 (0x0<<8)
89#define US_SPI_CPOL_1 (0x1<<16)
90#define US_SPI_CPHA_1 (0x1<<8)
91#define US_SPI_BPMODE_0 (US_SPI_CPOL_0|US_SPI_CPHA_1)
92#define US_SPI_BPMODE_1 (US_SPI_CPOL_0|US_SPI_CPHA_0)
93#define US_SPI_BPMODE_2 (US_SPI_CPOL_1|US_SPI_CPHA_1)
94#define US_SPI_BPMODE_3 (US_SPI_CPOL_1|US_SPI_CPHA_0)
95
96#ifdef __cplusplus
97extern "C" {
98#endif
99
100/*------------------------------------------------------------------------------*/
101/* Exported functions */
102/*------------------------------------------------------------------------------*/
103
104
105void USART_Configure(Usart *pUsart, uint32_t mode, uint32_t baudrate,
106 uint32_t masterClock);
107
108void USART_SetBaudrate(Usart *pUsart, uint8_t OverSamp, uint32_t baudrate,
109 uint32_t masterClock);
110
111uint32_t USART_GetStatus(Usart *usart);
112
113
114void USART_ResetRx(Usart *pUsart);
115
116void USART_ResetTx(Usart *pUsart);
117
118void USART_EnableTx(Usart *pUsart);
119
120void USART_EnableRx(Usart *pUsart);
121
122void USART_DisableRx(Usart *pUsart);
123
124void USART_DisableTx(Usart *pUsart);
125
126void USART_EnableIt(Usart *usart, uint32_t mode);
127
128void USART_DisableIt(Usart *usart, uint32_t mode);
129
130uint32_t USART_GetItMask(Usart *usart);
131
132void USART_SetTransmitterEnabled(Usart *usart, uint8_t enabled);
133
134void USART_SetReceiverEnabled(Usart *usart, uint8_t enabled);
135
136void USART_SetRTSEnabled(Usart *usart, uint8_t enabled);
137
138void USART_Write(Usart *usart, uint16_t data, volatile uint32_t timeOut);
139
140uint16_t USART_Read(Usart *usart, volatile uint32_t timeOut);
141
142uint8_t USART_IsDataAvailable(Usart *usart);
143
144void USART_SetIrdaFilter(Usart *pUsart, uint8_t filter);
145
146void USART_PutChar(Usart *usart, uint8_t c);
147
148uint32_t USART_IsRxReady(Usart *usart);
149
150uint8_t USART_GetChar(Usart *usart);
151
152void USART_EnableRecvTimeOut(Usart *usart, uint32_t timeout);
153
154void USART_EnableTxTimeGaurd(Usart *pUsart, uint32_t TimeGaurd);
155
156void USART_AcknowledgeRxTimeOut(Usart *usart, uint8_t Periodic);
157
158
159#ifdef __cplusplus
160}
161#endif
162
163#endif /* #ifndef _USART_ */
164
uint32_t USART_GetStatus(Usart *usart)
Get present status.
Definition: usart.c:369
uint32_t USART_IsRxReady(Usart *usart)
Return 1 if a character can be read in USART.
Definition: usart.c:360
void USART_SetTransmitterEnabled(Usart *usart, uint8_t enabled)
Enables or disables the transmitter of an USART peripheral.
Definition: usart.c:166
void USART_DisableRx(Usart *pUsart)
Disables the Receiver of an USART peripheral.
Definition: usart.c:179
void USART_SetRTSEnabled(Usart *usart, uint8_t enabled)
Enables or disables the Request To Send (RTS) of an USART peripheral.
Definition: usart.c:259
void USART_SetReceiverEnabled(Usart *usart, uint8_t enabled)
Enables or disables the receiver of an USART peripheral.
Definition: usart.c:244
void USART_SetBaudrate(Usart *pUsart, uint8_t OverSamp, uint32_t baudrate, uint32_t masterClock)
Configures an USART baudrate.
Definition: usart.c:62
uint8_t USART_IsDataAvailable(Usart *usart)
Returns 1 if some data has been received and can be read from an USART; otherwise returns 0.
Definition: usart.c:328
void USART_Configure(Usart *pUsart, uint32_t mode, uint32_t baudrate, uint32_t masterClock)
Configures an USART peripheral with the specified parameters.
Definition: usart.c:134
void USART_EnableTx(Usart *pUsart)
Enables the transmitter of an USART peripheral.
Definition: usart.c:211
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...
Definition: usart.c:278
uint8_t USART_GetChar(Usart *usart)
Reads and returns a character from the USART.
Definition: usart.c:410
void USART_DisableIt(Usart *usart, uint32_t mode)
Disable interrupt.
Definition: usart.c:389
uint32_t USART_GetItMask(Usart *usart)
Return interrupt mask.
Definition: usart.c:398
void USART_EnableIt(Usart *usart, uint32_t mode)
Enable interrupt.
Definition: usart.c:379
void USART_PutChar(Usart *usart, uint8_t c)
Sends one packet of data through the specified USART peripheral. This function operates synchronously...
Definition: usart.c:344
void USART_DisableTx(Usart *pUsart)
Disables the transmitter of an USART peripheral.
Definition: usart.c:190
void USART_AcknowledgeRxTimeOut(Usart *usart, uint8_t Periodic)
Acknowledge Rx timeout and sets to Idle or periodic repetitive state.
Definition: usart.c:458
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 asynchron...
Definition: usart.c:304
void USART_EnableTxTimeGaurd(Usart *pUsart, uint32_t TimeGaurd)
Enable Tx Timeout for USART.
Definition: usart.c:443
void USART_ResetRx(Usart *pUsart)
Resets or disables the Receiver of an USART peripheral.
Definition: usart.c:221
void USART_EnableRecvTimeOut(Usart *usart, uint32_t timeout)
Enable Rx Timeout for USART.
Definition: usart.c:424
void USART_EnableRx(Usart *pUsart)
Enables the Receiver of an USART peripheral.
Definition: usart.c:200
void USART_ResetTx(Usart *pUsart)
resets and disables the transmitter of an USART peripheral.
Definition: usart.c:233
Usart hardware registers.
Definition: component_usart.h:41