Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
navstik_1.0.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2014 Freek van Tienen <freek.v.tienen@gmail.com>
3
*
4
* This file is part of paparazzi.
5
*
6
* paparazzi is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2, or (at your option)
9
* any later version.
10
*
11
* paparazzi is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with paparazzi; see the file COPYING. If not, write to
18
* the Free Software Foundation, 59 Temple Place - Suite 330,
19
* Boston, MA 02111-1307, USA.
20
*
21
*/
22
23
#ifndef CONFIG_NAVSTIK_1_0_H
24
#define CONFIG_NAVSTIK_1_0_H
25
26
/* Navstik has a 12MHz external clock and 168MHz internal. */
27
#define EXT_CLK 25000000
28
#define AHB_CLK 168000000
29
30
/*
31
* Onboard LEDs
32
*/
33
34
/* red, on PA8 */
35
#ifndef USE_LED_1
36
#define USE_LED_1 1
37
#endif
38
#define LED_1_GPIO GPIOC
39
#define LED_1_GPIO_PIN GPIO4
40
#define LED_1_GPIO_ON gpio_set
41
#define LED_1_GPIO_OFF gpio_clear
42
#define LED_1_AFIO_REMAP ((void)0)
43
44
/* green, shared with JTAG_TRST */
45
#ifndef USE_LED_2
46
#define USE_LED_2 1
47
#endif
48
#define LED_2_GPIO GPIOC
49
#define LED_2_GPIO_PIN GPIO5
50
#define LED_2_GPIO_ON gpio_set
51
#define LED_2_GPIO_OFF gpio_clear
52
#define LED_2_AFIO_REMAP ((void)0)
53
54
55
/*
56
* not actual LEDS, used as GPIOs
57
*/
58
#define GPS_POWER_GPIO GPIOA,GPIO4
59
#define IMU_POWER_GPIO GPIOC,GPIO15
60
61
/* Default actuators driver */
62
#define DEFAULT_ACTUATORS "modules/actuators/actuators_pwm.h"
63
#define ActuatorDefaultSet(_x,_y) ActuatorPwmSet(_x,_y)
64
#define ActuatorsDefaultInit() ActuatorsPwmInit()
65
#define ActuatorsDefaultCommit() ActuatorsPwmCommit()
66
67
68
/* UART */
69
#define UART1_GPIO_AF GPIO_AF7
70
#define UART1_GPIO_PORT_RX GPIOB
71
#define UART1_GPIO_RX GPIO7
72
#define UART1_GPIO_PORT_TX GPIOB
73
#define UART1_GPIO_TX GPIO6
74
75
#define UART2_GPIO_AF GPIO_AF7
76
#define UART2_GPIO_PORT_RX GPIOA
77
#define UART2_GPIO_RX GPIO3
78
#define UART2_GPIO_PORT_TX GPIOA
79
#define UART2_GPIO_TX GPIO2
80
81
#define UART5_GPIO_AF GPIO_AF8
82
#define UART5_GPIO_PORT_RX GPIOD
83
#define UART5_GPIO_RX GPIO2
84
#define UART5_GPIO_PORT_TX GPIOC
85
#define UART5_GPIO_TX GPIO12
86
87
#define UART6_GPIO_AF GPIO_AF8
88
#define UART6_GPIO_PORT_RX GPIOC
89
#define UART6_GPIO_RX GPIO7
90
#define UART6_GPIO_PORT_TX GPIOC
91
#define UART6_GPIO_TX GPIO6
92
93
/*
94
* Spektrum
95
*/
96
/* The line that is pulled low at power up to initiate the bind process */
97
#define SPEKTRUM_BIND_PIN GPIO6
98
#define SPEKTRUM_BIND_PIN_PORT GPIOC
99
#define SPEKTRUM_BIND_PIN_HIGH 1
100
101
#define SPEKTRUM_UART6_RCC RCC_USART6
102
#define SPEKTRUM_UART6_BANK GPIOC
103
#define SPEKTRUM_UART6_PIN GPIO7
104
#define SPEKTRUM_UART6_AF GPIO_AF8
105
#define SPEKTRUM_UART6_IRQ NVIC_USART6_IRQ
106
#define SPEKTRUM_UART6_ISR usart6_isr
107
#define SPEKTRUM_UART6_DEV USART6
108
109
/*
110
* PPM
111
*/
112
113
/* input on PC6 (Spektrum Tx) */
114
#define USE_PPM_TIM8 8
115
#define PPM_CHANNEL TIM_IC3
116
#define PPM_TIMER_INPUT TIM_IC_IN_TI2
117
#define PPM_IRQ NVIC_TIM3_CC_IRQ
118
#define PPM_IRQ2 NVIC_TIM1_UP_TIM10_IRQ
119
// Capture/Compare InteruptEnable and InterruptFlag
120
#define PPM_CC_IE TIM_DIER_CC2IE
121
#define PPM_CC_IF TIM_SR_CC2IF
122
#define PPM_GPIO_PORT GPIOC
123
#define PPM_GPIO_PIN GPIO7
124
#define PPM_GPIO_AF GPIO_AF8
125
126
/* SPI */
127
#define SPI2_GPIO_AF GPIO_AF5
128
#define SPI2_GPIO_PORT_MISO GPIOC
129
#define SPI2_GPIO_MISO GPIO2
130
#define SPI2_GPIO_PORT_MOSI GPIOC
131
#define SPI2_GPIO_MOSI GPIO3
132
#define SPI2_GPIO_PORT_SCK GPIOB
133
#define SPI2_GPIO_SCK GPIO10
134
135
#define SPI_SELECT_SLAVE0_PORT GPIOA
136
#define SPI_SELECT_SLAVE0_PIN GPIO0
137
138
#define SPI_SELECT_SLAVE1_PORT GPIOA
139
#define SPI_SELECT_SLAVE1_PIN GPIO5
140
141
142
/* I2C mapping */
143
#define I2C1_GPIO_PORT GPIOB
144
#define I2C1_GPIO_SCL GPIO8
145
#define I2C1_GPIO_SDA GPIO9
146
147
#define I2C3_GPIO_PORT_SCL GPIOA
148
#define I2C3_GPIO_SCL GPIO8
149
#define I2C3_GPIO_PORT_SDA GPIOC
150
#define I2C3_GPIO_SDA GPIO9
151
152
153
/*
154
* ADC
155
*/
156
157
/* Onboard ADCs */
158
/*
159
BATT_volt PC1/ADC123 (ADC123_IN11)
160
BATT_current PA1/ADC123 (ADC123_IN1)
161
*/
162
163
// Internal ADC for battery enabled by default
164
#ifndef USE_ADC_1
165
#define USE_ADC_1 1
166
#endif
167
#if USE_ADC_1
168
#define AD1_1_CHANNEL 11
169
#define ADC_1 AD1_1
170
#define ADC_1_GPIO_PORT GPIOC
171
#define ADC_1_GPIO_PIN GPIO1
172
#endif
173
174
#ifndef USE_ADC_2
175
#define USE_ADC_2 1
176
#endif
177
#if USE_ADC_2
178
#define AD1_2_CHANNEL 1
179
#define ADC_2 AD1_2
180
#define ADC_2_GPIO_PORT GPIOA
181
#define ADC_2_GPIO_PIN GPIO1
182
#endif
183
184
/* allow to define ADC_CHANNEL_VSUPPLY and ADC_CHANNEL_CURRENT in the airframe file*/
185
#ifndef ADC_CHANNEL_VSUPPLY
186
#define ADC_CHANNEL_VSUPPLY ADC_1
187
#endif
188
#ifndef ADC_CHANNEL_CURRENT
189
#define ADC_CHANNEL_CURRENT ADC_2
190
#endif
191
192
#define DefaultVoltageOfAdc(adc) (0.00382*adc)
193
#define DefaultMilliAmpereOfAdc(adc) (0.42497*adc)
194
195
196
/*
197
* PWM
198
*
199
*/
200
#define PWM_USE_TIM1 1
201
#define PWM_USE_TIM2 2
202
#define PWM_USE_TIM3 3
203
#define PWM_USE_TIM8 8
204
205
#define USE_PWM1 1
206
#define USE_PWM2 1
207
#define USE_PWM3 1
208
#define USE_PWM4 1
209
#define USE_PWM5 1
210
#define USE_PWM6 1
211
212
213
// PWM_SERVO_x is the index of the servo in the actuators_pwm_values array
214
#if USE_PWM1
215
#define PWM_SERVO_1 0
216
#define PWM_SERVO_1_TIMER TIM3
217
#define PWM_SERVO_1_GPIO GPIOB
218
#define PWM_SERVO_1_PIN GPIO5
219
#define PWM_SERVO_1_AF GPIO_AF2
220
#define PWM_SERVO_1_OC TIM_OC2
221
#define PWM_SERVO_1_OC_BIT (1<<1)
222
#else
223
#define PWM_SERVO_1_OC_BIT 0
224
#endif
225
226
#if USE_PWM2
227
#define PWM_SERVO_2 1
228
#define PWM_SERVO_2_TIMER TIM1
229
#define PWM_SERVO_2_GPIO GPIOA
230
#define PWM_SERVO_2_PIN GPIO10
231
#define PWM_SERVO_2_AF GPIO_AF1
232
#define PWM_SERVO_2_OC TIM_OC3
233
#define PWM_SERVO_2_OC_BIT (1<<2)
234
#else
235
#define PWM_SERVO_2_OC_BIT 0
236
#endif
237
238
#if USE_PWM3
239
#define PWM_SERVO_3 2
240
#define PWM_SERVO_3_TIMER TIM8
241
#define PWM_SERVO_3_GPIO GPIOC
242
#define PWM_SERVO_3_PIN GPIO8
243
#define PWM_SERVO_3_AF GPIO_AF3
244
#define PWM_SERVO_3_OC TIM_OC3
245
#define PWM_SERVO_3_OC_BIT (1<<2)
246
#else
247
#define PWM_SERVO_3_OC_BIT 0
248
#endif
249
250
#if USE_PWM4
251
#define PWM_SERVO_4 3
252
#define PWM_SERVO_4_TIMER TIM2
253
#define PWM_SERVO_4_GPIO GPIOB
254
#define PWM_SERVO_4_PIN GPIO11
255
#define PWM_SERVO_4_AF GPIO_AF1
256
#define PWM_SERVO_4_OC TIM_OC4
257
#define PWM_SERVO_4_OC_BIT (1<<3)
258
#else
259
#define PWM_SERVO_4_OC_BIT 0
260
#endif
261
262
#if USE_PWM5
263
#define PWM_SERVO_5 4
264
#define PWM_SERVO_5_TIMER TIM3
265
#define PWM_SERVO_5_GPIO GPIOB
266
#define PWM_SERVO_5_PIN GPIO1
267
#define PWM_SERVO_5_AF GPIO_AF2
268
#define PWM_SERVO_5_OC TIM_OC4
269
#define PWM_SERVO_5_OC_BIT (1<<3)
270
#else
271
#define PWM_SERVO_5_OC_BIT 0
272
#endif
273
274
#if USE_PWM6
275
#define PWM_SERVO_6 5
276
#define PWM_SERVO_6_TIMER TIM3
277
#define PWM_SERVO_6_GPIO GPIOB
278
#define PWM_SERVO_6_PIN GPIO0
279
#define PWM_SERVO_6_AF GPIO_AF2
280
#define PWM_SERVO_6_OC TIM_OC3
281
#define PWM_SERVO_6_OC_BIT (1<<2)
282
#else
283
#define PWM_SERVO_6_OC_BIT 0
284
#endif
285
286
/* servo 2 on TIM1 */
287
#define PWM_TIM1_CHAN_MASK (PWM_SERVO_2_OC_BIT)
288
/* servo 4 on TIM2 */
289
#define PWM_TIM2_CHAN_MASK (PWM_SERVO_4_OC_BIT)
290
/* servos 1,5,6 on TIM3 */
291
#define PWM_TIM3_CHAN_MASK (PWM_SERVO_1_OC_BIT|PWM_SERVO_5_OC_BIT|PWM_SERVO_6_OC_BIT)
292
/* servo 3 on TIM8 */
293
#define PWM_TIM8_CHAN_MASK (PWM_SERVO_3_OC_BIT)
294
295
/* by default activate onboard baro */
296
#ifndef USE_BARO_BOARD
297
#define USE_BARO_BOARD 1
298
#endif
299
300
#endif
/* CONFIG_NAVSTIK_1_0_H */
sw
airborne
boards
navstik_1.0.h
Generated on Fri Nov 8 2024 14:10:45 for Paparazzi UAS by
1.9.1