source: rtems/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/usart.h @ e1eeb883

5
Last change on this file since e1eeb883 was e1eeb883, checked in by Sebastian Huber <sebastian.huber@…>, on 01/12/16 at 14:34:31

bsp/atsam: Import SAM Software Package

Import selected files of the "SAM V71 / V70 / E70 / S70 Software
Package" obtained from the "SAMV71-XULT GNU Software Package 1.5".

Converted files via dos2unix before import.

Update #2529.

  • Property mode set to 100644
File size: 6.0 KB
Line 
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
30/**
31 * \file
32 *
33 * \par Purpose
34 *
35 * This module provides several definitions and methods for using an USART
36 * peripheral.
37 *
38 * \par Usage
39 *
40 * -# Enable the USART peripheral clock in the PMC.
41 * -# Enable the required USART PIOs (see pio.h).
42 * -# Configure the UART by calling USART_Configure.
43 * -# Enable the transmitter and/or the receiver of the USART using
44 *    USART_SetTransmitterEnabled and USART_SetReceiverEnabled.
45 * -# Send data through the USART using the USART_Write methods.
46 * -# Receive data from the USART using the USART_Read functions; the
47 * availability of data can be polled
48 *    with USART_IsDataAvailable.
49 * -# Disable the transmitter and/or the receiver of the USART with
50 *    USART_SetTransmitterEnabled and USART_SetReceiverEnabled.
51 */
52
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
68/** \section USART_mode USART modes
69 * This section lists several common operating modes for an USART peripheral.
70 *
71 * \b Modes
72 * - USART_MODE_ASYNCHRONOUS
73 * - USART_MODE_IRDA
74 */
75
76/** Basic asynchronous mode, i.e. 8 bits no parity.*/
77#define USART_MODE_ASYNCHRONOUS        (US_MR_CHRL_8_BIT | US_MR_PAR_NO)
78
79#define MAX_RX_TIMEOUT          131071
80
81/** IRDA mode*/
82#define USART_MODE_IRDA \
83        (US_MR_USART_MODE_IRDA | US_MR_CHRL_8_BIT | US_MR_PAR_NO | US_MR_FILTER)
84
85/** SPI mode*/
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
Note: See TracBrowser for help on using the repository browser.