Robobo
usart.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * SAM Software Package License
3  * ----------------------------------------------------------------------------
4  * Copyright (c) 2011-2012, Atmel Corporation
5  *
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following condition is met:
10  *
11  * - Redistributions of source code must retain the above copyright notice,
12  * this list of conditions and the disclaimer below.
13  *
14  * Atmel's name may not be used to endorse or promote products derived from
15  * this software without specific prior written permission.
16  *
17  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  * ----------------------------------------------------------------------------
28  */
29 
54 #ifndef _USART_
55 #define _USART_
56 
57 /*------------------------------------------------------------------------------
58  * Headers
59  *------------------------------------------------------------------------------*/
60 
61 #include "../chip.h"
62 
63 #include <stdint.h>
64 
65 /*------------------------------------------------------------------------------
66  * Definitions
67  *------------------------------------------------------------------------------*/
68 
78 #define USART_MODE_ASYNCHRONOUS (US_MR_CHRL_8_BIT | US_MR_PAR_NO)
79 
81 #define USART_MODE_IRDA (AT91C_US_USMODE_IRDA | AT91C_US_CHRL_8_BITS | AT91C_US_PAR_NONE | AT91C_US_FILTER)
82 
84 #define AT91C_US_USMODE_SPIM 0xE
85 #define US_SPI_CPOL_0 (0x0<<16)
86 #define US_SPI_CPHA_0 (0x0<<8)
87 #define US_SPI_CPOL_1 (0x1<<16)
88 #define US_SPI_CPHA_1 (0x1<<8)
89 #define US_SPI_BPMODE_0 (US_SPI_CPOL_0|US_SPI_CPHA_1)
90 #define US_SPI_BPMODE_1 (US_SPI_CPOL_0|US_SPI_CPHA_0)
91 #define US_SPI_BPMODE_2 (US_SPI_CPOL_1|US_SPI_CPHA_1)
92 #define US_SPI_BPMODE_3 (US_SPI_CPOL_1|US_SPI_CPHA_0)
93 
94 #ifdef __cplusplus
95  extern "C" {
96 #endif
97 
98 /*------------------------------------------------------------------------------*/
99 /* Exported functions */
100 /*------------------------------------------------------------------------------*/
101 
102 extern void USART_Configure( Usart *usart, uint32_t mode, uint32_t baudrate, uint32_t masterClock ) ;
103 extern uint32_t USART_GetStatus( Usart *usart ) ;
104 extern void USART_EnableIt( Usart *usart,uint32_t mode ) ;
105 extern void USART_DisableIt( Usart *usart,uint32_t mode ) ;
106 extern void USART_SetTransmitterEnabled( Usart *usart, uint8_t enabled ) ;
107 
108 extern void USART_SetReceiverEnabled( Usart *usart, uint8_t enabled ) ;
109 
110 extern void USART_Write( Usart *usart, uint16_t data, volatile uint32_t timeOut ) ;
111 
112 extern uint8_t USART_WriteBuffer( Usart *usart, void *buffer, uint32_t size ) ;
113 
114 extern uint16_t USART_Read( Usart *usart, volatile uint32_t timeOut ) ;
115 
116 extern uint8_t USART_ReadBuffer( Usart *usart, void *buffer, uint32_t size ) ;
117 
118 extern uint8_t USART_IsDataAvailable( Usart *usart ) ;
119 
120 extern void USART_SetIrdaFilter(Usart *pUsart, uint8_t filter);
121 
122 extern void USART_PutChar( Usart *usart, uint8_t c ) ;
123 
124 extern uint32_t USART_IsRxReady( Usart *usart ) ;
125 
126 extern uint8_t USART_GetChar( Usart *usart ) ;
127 
128 #ifdef __cplusplus
129 }
130 #endif
131 
132 #endif /* #ifndef _USART_ */
133 
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:356
void USART_Configure(Usart *usart, uint32_t mode, uint32_t baudrate, uint32_t masterClock)
Configures an USART peripheral with the specified parameters.
Definition: usart.c:98
void USART_SetReceiverEnabled(Usart *usart, uint8_t enabled)
Enables or disables the receiver of an USART peripheral.
Definition: usart.c:161
void USART_DisableIt(Usart *usart, uint32_t mode)
Disable interrupt.
Definition: usart.c:394
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:257
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:185
uint8_t USART_WriteBuffer(Usart *usart, void *buffer, uint32_t size)
Sends the contents of a data buffer through the specified USART peripheral. This function returns imm...
Definition: usart.c:220
Usart hardware registers.
Definition: component_usart.h:41
uint32_t USART_IsRxReady(Usart *usart)
Return 1 if a character can be read in USART.
Definition: usart.c:373
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:323
uint32_t USART_GetStatus(Usart *usart)
Get present status.
Definition: usart.c:380
void USART_SetTransmitterEnabled(Usart *usart, uint8_t enabled)
Enables or disables the transmitter of an USART peripheral.
Definition: usart.c:142
void USART_EnableIt(Usart *usart, uint32_t mode)
Enable interrupt.
Definition: usart.c:387
uint8_t USART_ReadBuffer(Usart *usart, void *buffer, uint32_t size)
Reads data from an USART peripheral, filling the provided buffer until it becomes full...
Definition: usart.c:290
uint8_t USART_GetChar(Usart *usart)
Reads and returns a character from the USART.
Definition: usart.c:405
void USART_SetIrdaFilter(Usart *pUsart, uint8_t filter)
Sets the filter value for the IRDA demodulator.
Definition: usart.c:341