lpc2387.h
4.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
* Copyright (C) 2009 Kaspar Schleiser <kaspar@schleiser.de>
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*
* Parts taken from FeuerWhere-Project, lpc2387.h.
*/
#ifndef LPC2387_H
#define LPC2387_H
#include "lpc23xx.h"
#include "arm7_common.h"
#include "bitarithm.h"
#ifdef __cplusplus
extern "C" {
#endif
#define F_CCO 288000000
#define CL_CPU_DIV 4 ///< CPU clock divider
#define F_RC_OSCILLATOR 4000000 ///< Frequency of internal RC oscillator
#define F_RTC_OSCILLATOR 32767 ///< Frequency of RTC oscillator
#define VIC_SIZE 32
#define GPIO_INT 17
#define IRQP_GPIO 4
#define _XTAL (72000)
/**
* @name RTC constants
* @{
*/
#define IMSEC 0x00000001
#define IMMIN 0x00000002
#define IMHOUR 0x00000004
#define IMDOM 0x00000008
#define IMDOW 0x00000010
#define IMDOY 0x00000020
#define IMMON 0x00000040
#define IMYEAR 0x00000080
#define AMRSEC 0x00000001 /* Alarm mask for Seconds */
#define AMRMIN 0x00000002 /* Alarm mask for Minutes */
#define AMRHOUR 0x00000004 /* Alarm mask for Hours */
#define AMRDOM 0x00000008 /* Alarm mask for Day of Month */
#define AMRDOW 0x00000010 /* Alarm mask for Day of Week */
#define AMRDOY 0x00000020 /* Alarm mask for Day of Year */
#define AMRMON 0x00000040 /* Alarm mask for Month */
#define AMRYEAR 0x00000080 /* Alarm mask for Year */
#define ILR_RTCCIF BIT0
#define ILR_RTCALF BIT1
#define ILR_RTSSF BIT2
#define CCR_CLKEN 0x01
#define CCR_CTCRST 0x02
#define CCR_CLKSRC 0x10
/** @} */
/**
* @name WD constants
* @{
*/
#define WDEN BIT0
#define WDRESET BIT1
#define WDTOF BIT2
#define WDINT BIT3
/** @} */
/**
* @name INTWAKE Constants
* @{
*/
#define EXTWAKE0 BIT0
#define EXTWAKE1 BIT1
#define EXTWAKE2 BIT2
#define EXTWAKE3 BIT3
#define ETHWAKE BIT4
#define USBWAKE BIT5
#define CANWAKE BIT6
#define GPIO0WAKE BIT7
#define GPIO2WAKE BIT8
#define BODWAKE BIT14
#define RTCWAKE BIT15
/** @} */
/**
* @name UART Constants
* @{
*/
#define ULSR_RDR BIT0
#define ULSR_OE BIT1
#define ULSR_PE BIT2
#define ULSR_FE BIT3
#define ULSR_BI BIT4
#define ULSR_THRE BIT5
#define ULSR_TEMT BIT6
#define ULSR_RXFE BIT7
#define UIIR_INT_STATUS (BIT0) ///< Interrupt Status
#define UIIR_THRE_INT (BIT1) ///< Transmit Holding Register Empty
#define UIIR_RDA_INT (BIT2) ///< Receive Data Available
#define UIIR_RLS_INT (BIT1 | BIT2) ///< Receive Line Status
#define UIIR_CTI_INT (BIT2 | BIT3) ///< Character Timeout Indicator
#define UIIR_ID_MASK (BIT1 | BIT2 | BIT3)
#define UIIR_ABEO_INT BIT8
#define UIIR_ABTO_INT BIT9
/** @} */
/**
* @name SSP Status Register Constants
* @{
*/
#define SSPSR_TFE BIT0 ///< Transmit FIFO Empty. This bit is 1 is the Transmit FIFO is empty, 0 if not.
#define SSPSR_TNF BIT1 ///< Transmit FIFO Not Full. This bit is 0 if the Tx FIFO is full, 1 if not.
#define SSPSR_RNE BIT2 ///< Receive FIFO Not Empty. This bit is 0 if the Receive FIFO is empty, 1 if not.
#define SSPSR_RFF BIT3 ///< Receive FIFO Full. This bit is 1 if the Receive FIFO is full, 0 if not.
#define SSPSR_BSY BIT4 ///< Busy. This bit is 0 if the SSPn controller is idle, or 1 if it is currently sending/receiving a frame and/or the Tx FIFO is not empty.
/** @} */
/**
* @name Timer register offsets
* @{
*/
#define TXIR 0x00
#define TXTCR 0x04
#define TXTC 0x08 ///< Timer counter
#define TXPR 0x0C
#define TXPC 0x10
#define TXMCR 0x14
#define TXMR0 0x18
#define TXMR1 0x1C
#define TXMR2 0x20
#define TXMR3 0x24
#define TXCCR 0x28
#define TXCR0 0x2C
#define TXCR1 0x30
#define TXCR2 0x34
#define TXCR3 0x38
#define TXEMR 0x3C
#define TXCTCR 0x70
/** @} */
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* LPC2387_H */