RTEMS  5.0.0
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
97 extern "C" {
98 #endif
99 
100 /*------------------------------------------------------------------------------*/
101 /* Exported functions */
102 /*------------------------------------------------------------------------------*/
103 
104 
105 void USART_Configure(Usart *pUsart, uint32_t mode, uint32_t baudrate,
106  uint32_t masterClock);
107 
108 void USART_SetBaudrate(Usart *pUsart, uint8_t OverSamp, uint32_t baudrate,
109  uint32_t masterClock);
110 
111 uint32_t USART_GetStatus(Usart *usart);
112 
113 
114 void USART_ResetRx(Usart *pUsart);
115 
116 void USART_ResetTx(Usart *pUsart);
117 
118 void USART_EnableTx(Usart *pUsart);
119 
120 void USART_EnableRx(Usart *pUsart);
121 
122 void USART_DisableRx(Usart *pUsart);
123 
124 void USART_DisableTx(Usart *pUsart);
125 
126 void USART_EnableIt(Usart *usart, uint32_t mode);
127 
128 void USART_DisableIt(Usart *usart, uint32_t mode);
129 
130 uint32_t USART_GetItMask(Usart *usart);
131 
132 void USART_SetTransmitterEnabled(Usart *usart, uint8_t enabled);
133 
134 void USART_SetReceiverEnabled(Usart *usart, uint8_t enabled);
135 
136 void USART_SetRTSEnabled(Usart *usart, uint8_t enabled);
137 
138 void USART_Write(Usart *usart, uint16_t data, volatile uint32_t timeOut);
139 
140 uint16_t USART_Read(Usart *usart, volatile uint32_t timeOut);
141 
142 uint8_t USART_IsDataAvailable(Usart *usart);
143 
144 void USART_SetIrdaFilter(Usart *pUsart, uint8_t filter);
145 
146 void USART_PutChar(Usart *usart, uint8_t c);
147 
148 uint32_t USART_IsRxReady(Usart *usart);
149 
150 uint8_t USART_GetChar(Usart *usart);
151 
152 void USART_EnableRecvTimeOut(Usart *usart, uint32_t timeout);
153 
154 void USART_EnableTxTimeGaurd(Usart *pUsart, uint32_t TimeGaurd);
155 
156 void USART_AcknowledgeRxTimeOut(Usart *usart, uint8_t Periodic);
157 
158 
159 #ifdef __cplusplus
160 }
161 #endif
162 
163 #endif /* #ifndef _USART_ */
164 
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
Usart hardware registers.
Definition: component_usart.h:41
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_EnableRecvTimeOut(Usart *usart, uint32_t timeout)
Enable Rx Timeout for USART.
Definition: usart.c:424
void USART_ResetRx(Usart *pUsart)
Resets or disables the Receiver of an USART peripheral.
Definition: usart.c:221
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_SetReceiverEnabled(Usart *usart, uint8_t enabled)
Enables or disables the receiver of an USART peripheral.
Definition: usart.c:244
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_ResetTx(Usart *pUsart)
resets and disables the transmitter of an USART peripheral.
Definition: usart.c:233
void USART_EnableIt(Usart *usart, uint32_t mode)
Enable interrupt.
Definition: usart.c:379
uint32_t USART_GetItMask(Usart *usart)
Return interrupt mask.
Definition: usart.c:398
void USART_AcknowledgeRxTimeOut(Usart *usart, uint8_t Periodic)
Acknowledge Rx timeout and sets to Idle or periodic repetitive state.
Definition: usart.c:458
void USART_DisableIt(Usart *usart, uint32_t mode)
Disable interrupt.
Definition: usart.c:389
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_DisableRx(Usart *pUsart)
Disables the Receiver of an USART peripheral.
Definition: usart.c:179
void USART_SetBaudrate(Usart *pUsart, uint8_t OverSamp, uint32_t baudrate, uint32_t masterClock)
Configures an USART baudrate.
Definition: usart.c:62
void USART_EnableTx(Usart *pUsart)
Enables the transmitter of an USART peripheral.
Definition: usart.c:211
void USART_SetTransmitterEnabled(Usart *usart, uint8_t enabled)
Enables or disables the transmitter of an USART peripheral.
Definition: usart.c:166
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_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_EnableTxTimeGaurd(Usart *pUsart, uint32_t TimeGaurd)
Enable Tx Timeout for USART.
Definition: usart.c:443
uint8_t USART_GetChar(Usart *usart)
Reads and returns a character from the USART.
Definition: usart.c:410
void USART_EnableRx(Usart *pUsart)
Enables the Receiver of an USART peripheral.
Definition: usart.c:200