-
Notifications
You must be signed in to change notification settings - Fork 1
/
board.h
165 lines (143 loc) · 4.77 KB
/
board.h
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
155
156
157
158
159
160
161
162
163
164
165
/*
ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
2011 Giovanni Di Sirio.
This file is part of ChibiOS/RT.
ChibiOS/RT is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
ChibiOS/RT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _BOARD_H_
#define _BOARD_H_
/*
* Setup for the R2D IMU module.
*/
/*
* Board identifier.
*/
#define BOARD_R2P_IMU_MODULE
#define BOARD_NAME "R2P IMU module"
/*
* Board frequencies.
*/
#define STM32_LSECLK 32768
#define STM32_HSECLK 8000000
/*
* MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
*/
#define STM32F10X_MD
/*
* IO pins assignments.
*/
#define LED_GPIO GPIOB
#define LED1_GPIO GPIOB
#define LED1 12
#define LED2_GPIO GPIOB
#define LED2 13
#define LED3_GPIO GPIOB
#define LED3 14
#define LED4_GPIO GPIOB
#define LED4 15
#define SERIAL_DRIVER SD2
//#define GPS_SERIAL_DRIVER SD2
#define SPI_DRIVER SPID1
#define I2C_DRIVER I2CD1
#define GYRO_GPIO GPIOB
#define GYRO_CS 0
#define GYRO_INT1 10
#define GYRO_INT2 1
#define AM_GPIO GPIOB
#define AM_DRDY 5
#define AM_INT1 6
#define AM_INT2 7
#define GPS_GPIO GPIOA
#define GPS_STATUS 1
#define TEST_GPIO GPIOA
#define TEST1 1
#define TEST2 4
/*
* I/O ports initial setup, this configuration is established soon after reset
* in the initialization code.
*
* The digits have the following meaning:
* 0 - Analog input.
* 1 - Push Pull output 10MHz.
* 2 - Push Pull output 2MHz.
* 3 - Push Pull output 50MHz.
* 4 - Digital input.
* 5 - Open Drain output 10MHz.
* 6 - Open Drain output 2MHz.
* 7 - Open Drain output 50MHz.
* 8 - Digital input with PullUp or PullDown resistor depending on ODR.
* 9 - Alternate Push Pull output 10MHz.
* A - Alternate Push Pull output 2MHz.
* B - Alternate Push Pull output 50MHz.
* C - Reserved.
* D - Alternate Open Drain output 10MHz.
* E - Alternate Open Drain output 2MHz.
* F - Alternate Open Drain output 50MHz.
* Please refer to the STM32 Reference Manual for details.
*/
/*
* Port A setup.
* Everything input with pull-up except:
* PA1 - Digital input (GPS_STATUS).
* PA2 - Alternate output (USART2 TX).
* PA3 - Normal input (USART2 RX).
* PA4 - Push Pull output (GPS_RESET).
* PA5 - Alternate output (SPI1 SCK).
* PA6 - Normal input (SPI1 MISO).
* PA7 - Alternate output (SPI1 MOSI).
* PA9 - Alternate output (USART1 TX).
* PA10 - Normal input (USART1 RX).
* PA11 - Normal input (CAN1 RX).
* PA12 - Alternate output (CAN1 TX).
*/
#define VAL_GPIOACRL 0xB4B34B38 /* PA7...PA0 */ /* XXX GPS_STATUS ORA E' COME OUTPUT DI TEST! */
#define VAL_GPIOACRH 0x888B44B8 /* PA15...PA8 */
#define VAL_GPIOAODR 0xFFFFFFFF
/*
* Port B setup.
* Everything input with pull-up except:
*
* PB0 - Push Pull output (GYRO_CS).
* PB1 - Normal input (GYRO_INT2).
* PB5 - Normal input (AM_DRDY).
* PB6 - Normal input (AM_INT1).
* PB7 - Normal input (AM_INT2).
* PB8 - Alternate Open Drain output (I2C1 SCL remapped).
* PB9 - Alternate Open Drain output (I2C1 SDA remapped).
* PB10 - Normal input (GYRO_INT1).
* PB12 - Push Pull output (LED1).
* PB13 - Push Pull output (LED2).
* PB14 - Push Pull output (LED3).
* PB15 - Push Pull output (LED4).
*/
#define VAL_GPIOBCRL 0x88844443 /* PB7...PB0 */
#define VAL_GPIOBCRH 0x333384FF /* PB15...PB8 */
#define VAL_GPIOBODR 0xFFFFFFFF
/*
* Port C setup.
* Everything input with pull-up except:
*/
#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
#define VAL_GPIOCCRH 0x88888888 /* PC15...PC8 */
#define VAL_GPIOCODR 0xFFFFFFFF
#if !defined(_FROM_ASM_)
#ifdef __cplusplus
extern "C" {
#endif
void boardInit(void);
void * led2gpio(unsigned led_id);
unsigned led2pin(unsigned led_id);
#ifdef __cplusplus
}
#endif
#endif /* _FROM_ASM_ */
#endif /* _BOARD_H_ */