Paparazzi UAS
v5.12_stable-4-g9b43e9b
Paparazzi is a free software Unmanned Aircraft System.
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
lpcUART.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* $RCSfile$
4
* $Revision$
5
*
6
* Header file for Philips LPC ARM Processors.
7
* Copyright 2004 R O SoftWare
8
*
9
* No guarantees, warrantees, or promises, implied or otherwise.
10
* May be used for hobby or commercial purposes provided copyright
11
* notice remains intact.
12
*
13
*****************************************************************************/
14
#ifndef INC_LPC_UART_H
15
#define INC_LPC_UART_H
16
17
// Universal Asynchronous Receiver Transmitter Registers
18
typedef
struct
19
{
20
union
21
{
22
REG_8
rbr;
// Receive Buffer Register
23
REG_8
thr;
// Transmit Holding Register
24
REG_8
dll;
// Divisor Latch Register (LSB)
25
REG_8
_pad0[4];
26
};
27
28
union
29
{
30
REG_8
ier;
// Interrupt Enable Register
31
REG_8
dlm;
// Divisor Latch Register (MSB)
32
REG_8
_pad1[4];
33
};
34
35
union
36
{
37
REG_8
iir;
// Interrupt ID Register
38
REG_8
fcr;
// FIFO Control Register
39
REG_8
_pad2[4];
40
};
41
42
REG_8
lcr
;
// Line Control Registe
43
REG_8
_pad3[3];
44
REG_8
mcr
;
// MODEM Control Register
45
REG_8
_pad4[3];
46
REG_8
lsr
;
// Line Status Register
47
REG_8
_pad5[3];
48
REG_8
msr
;
// MODEM Status Register
49
REG_8
_pad6[3];
50
REG_8
scr
;
// Scratch Pad Register
51
REG_8
_pad7[3];
52
}
uartRegs_t
;
53
55
// UART defines
56
57
// Interrupt Enable Register bit definitions
58
#define UIER_ERBFI (1 << 0) // Enable Receive Data Available Interrupt
59
#define UIER_ETBEI (1 << 1) // Enable Transmit Holding Register Empty Interrupt
60
#define UIER_ELSI (1 << 2) // Enable Receive Line Status Interrupt
61
#define UIER_EDSSI (1 << 3) // Enable MODEM Status Interrupt
62
63
// Interrupt ID Register bit definitions
64
#define UIIR_NO_INT (1 << 0) // NO INTERRUPTS PENDING
65
#define UIIR_MS_INT (0 << 1) // MODEM Status
66
#define UIIR_THRE_INT (1 << 1) // Transmit Holding Register Empty
67
#define UIIR_RDA_INT (2 << 1) // Receive Data Available
68
#define UIIR_RLS_INT (3 << 1) // Receive Line Status
69
#define UIIR_CTI_INT (6 << 1) // Character Timeout Indicator
70
#define UIIR_ID_MASK 0x0E
71
72
// FIFO Control Register bit definitions
73
#define UFCR_FIFO_ENABLE (1 << 0) // FIFO Enable
74
#define UFCR_RX_FIFO_RESET (1 << 1) // Reset Receive FIFO
75
#define UFCR_TX_FIFO_RESET (1 << 2) // Reset Transmit FIFO
76
#define UFCR_FIFO_TRIG1 (0 << 6) // Trigger @ 1 character in FIFO
77
#define UFCR_FIFO_TRIG4 (1 << 6) // Trigger @ 4 characters in FIFO
78
#define UFCR_FIFO_TRIG8 (2 << 6) // Trigger @ 8 characters in FIFO
79
#define UFCR_FIFO_TRIG14 (3 << 6) // Trigger @ 14 characters in FIFO
80
81
// Line Control Register bit definitions
82
#define ULCR_CHAR_5 (0 << 0) // 5-bit character length
83
#define ULCR_CHAR_6 (1 << 0) // 6-bit character length
84
#define ULCR_CHAR_7 (2 << 0) // 7-bit character length
85
#define ULCR_CHAR_8 (3 << 0) // 8-bit character length
86
#define ULCR_STOP_1 (0 << 2) // 1 stop bit
87
#define ULCR_STOP_2 (1 << 2) // 2 stop bits
88
#define ULCR_PAR_NO (0 << 3) // No Parity
89
#define ULCR_PAR_ODD (1 << 3) // Odd Parity
90
#define ULCR_PAR_EVEN (3 << 3) // Even Parity
91
#define ULCR_PAR_MARK (5 << 3) // MARK "1" Parity
92
#define ULCR_PAR_SPACE (7 << 3) // SPACE "0" Paruty
93
#define ULCR_BREAK_ENABLE (1 << 6) // Output BREAK line condition
94
#define ULCR_DLAB_ENABLE (1 << 7) // Enable Divisor Latch Access
95
96
// Modem Control Register bit definitions
97
#define UMCR_DTR (1 << 0) // Data Terminal Ready
98
#define UMCR_RTS (1 << 1) // Request To Send
99
#define UMCR_LB (1 << 4) // Loopback
100
101
// Line Status Register bit definitions
102
#define ULSR_RDR (1 << 0) // Receive Data Ready
103
#define ULSR_OE (1 << 1) // Overrun Error
104
#define ULSR_PE (1 << 2) // Parity Error
105
#define ULSR_FE (1 << 3) // Framing Error
106
#define ULSR_BI (1 << 4) // Break Interrupt
107
#define ULSR_THRE (1 << 5) // Transmit Holding Register Empty
108
#define ULSR_TEMT (1 << 6) // Transmitter Empty
109
#define ULSR_RXFE (1 << 7) // Error in Receive FIFO
110
#define ULSR_ERR_MASK 0x1E
111
112
// Modem Status Register bit definitions
113
#define UMSR_DCTS (1 << 0) // Delta Clear To Send
114
#define UMSR_DDSR (1 << 1) // Delta Data Set Ready
115
#define UMSR_TERI (1 << 2) // Trailing Edge Ring Indicator
116
#define UMSR_DDCD (1 << 3) // Delta Data Carrier Detect
117
#define UMSR_CTS (1 << 4) // Clear To Send
118
#define UMSR_DSR (1 << 5) // Data Set Ready
119
#define UMSR_RI (1 << 6) // Ring Indicator
120
#define UMSR_DCD (1 << 7) // Data Carrier Detect
121
122
#endif
uartRegs_t::scr
REG_8 scr
Definition:
lpcUART.h:50
REG_8
#define REG_8
Definition:
LPC21xx.h:18
uartRegs_t::lsr
REG_8 lsr
Definition:
lpcUART.h:46
uartRegs_t::lcr
REG_8 lcr
Definition:
lpcUART.h:42
uartRegs_t::msr
REG_8 msr
Definition:
lpcUART.h:48
uartRegs_t
Definition:
lpcUART.h:18
uartRegs_t::mcr
REG_8 mcr
Definition:
lpcUART.h:44
sw
airborne
arch
lpc21
include
lpcUART.h
Generated on Sat Feb 9 2019 06:43:45 for Paparazzi UAS by
1.8.8