Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
cjmcu.h
Go to the documentation of this file.
1
#ifndef CONFIG_CJMCU_H
2
#define CONFIG_CJMCU_H
3
4
#define BOARD_CJMCU
5
6
/* CJMCU has a 8MHz external clock and 72MHz internal. */
7
#define EXT_CLK 8000000
8
#define AHB_CLK 72000000
9
10
/*
11
* Onboard LEDs
12
*/
13
14
/* green */
15
#ifndef USE_LED_1
16
#define USE_LED_1 1
17
#endif
18
#define LED_1_GPIO GPIOC
19
#define LED_1_GPIO_PIN GPIO13
20
#define LED_1_GPIO_ON gpio_clear
21
#define LED_1_GPIO_OFF gpio_set
22
#define LED_1_AFIO_REMAP ((void)0)
23
24
/* red */
25
#ifndef USE_LED_2
26
#define USE_LED_2 1
27
#endif
28
#define LED_2_GPIO GPIOC
29
#define LED_2_GPIO_PIN GPIO14
30
#define LED_2_GPIO_ON gpio_clear
31
#define LED_2_GPIO_OFF gpio_set
32
#define LED_2_AFIO_REMAP ((void)0)
33
34
/* blue */
35
#ifndef USE_LED_3
36
#define USE_LED_3 1
37
#endif
38
#define LED_3_GPIO GPIOC
39
#define LED_3_GPIO_PIN GPIO15
40
#define LED_3_GPIO_ON gpio_clear
41
#define LED_3_GPIO_OFF gpio_set
42
#define LED_3_AFIO_REMAP ((void)0)
43
44
45
46
/* Default actuators driver */
47
#define DEFAULT_ACTUATORS "subsystems/actuators/actuators_pwm.h"
48
#define ActuatorDefaultSet(_x,_y) ActuatorPwmSet(_x,_y)
49
#define ActuatorsDefaultInit() ActuatorsPwmInit()
50
#define ActuatorsDefaultCommit() ActuatorsPwmCommit()
51
52
53
/*
54
* ADC
55
*/
56
57
// Internal ADC for battery on PA2 enabled by default
58
#ifndef USE_ADC_1
59
#define USE_ADC_1 1
60
#endif
61
#if USE_ADC_1
62
#define AD1_1_CHANNEL 2
63
#define ADC_1 AD1_1
64
#define ADC_1_GPIO_PORT GPIOA
65
#define ADC_1_GPIO_PIN GPIO2
66
#endif
67
68
/* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
69
#ifndef ADC_CHANNEL_VSUPPLY
70
#define ADC_CHANNEL_VSUPPLY ADC_1
71
#endif
72
73
/* 10k/2k resistor divider, 6 * 3.3V / 4096 */
74
#define DefaultVoltageOfAdc(adc) (0.0049*adc)
75
//#define DefaultVoltageOfAdc(adc) (4)
76
77
/*
78
* UART pin configuration
79
*
80
* sets on which pins the UARTs are connected
81
*/
82
/* DIAG port */
83
#define UART1_GPIO_AF 0
84
#define UART1_GPIO_PORT_RX GPIO_BANK_USART1_RX
85
#define UART1_GPIO_RX GPIO_USART1_RX
86
#define UART1_GPIO_PORT_TX GPIO_BANK_USART1_TX
87
#define UART1_GPIO_TX GPIO_USART1_TX
88
89
/* GPS */
90
#define UART3_GPIO_AF 0
91
#define UART3_GPIO_PORT_RX GPIO_BANK_USART3_RX
92
#define UART3_GPIO_RX GPIO_USART3_RX
93
#define UART3_GPIO_PORT_TX GPIO_BANK_USART3_TX
94
#define UART3_GPIO_TX GPIO_USART3_TX
95
96
/* LED1 & LED2 */
97
/*
98
#define UART3_GPIO_AF AFIO_MAPR_USART3_REMAP_PARTIAL_REMAP
99
#define UART3_GPIO_PORT_RX GPIO_BANK_USART3_PR_RX
100
#define UART3_GPIO_RX GPIO_USART3_PR_RX
101
#define UART3_GPIO_PORT_TX GPIO_BANK_USART3_PR_TX
102
#define UART3_GPIO_TX GPIO_USART3_PR_TX
103
*/
104
105
/*
106
* Spektrum (none)
107
*/
108
109
/* PPM
110
*/
111
112
/*
113
* Default is PPM config 1, input on PA0
114
*/
115
116
#ifndef PPM_CONFIG
117
#define PPM_CONFIG 1
118
#endif
119
120
121
#if PPM_CONFIG == 1
122
/* input on PA0 */
123
#define USE_PPM_TIM2 1
124
#define PPM_CHANNEL TIM_IC1
125
#define PPM_TIMER_INPUT TIM_IC_IN_TI1
126
#define PPM_IRQ NVIC_TIM2_IRQ
127
// Capture/Compare InteruptEnable and InterruptFlag
128
#define PPM_CC_IE TIM_DIER_CC1IE
129
#define PPM_CC_IF TIM_SR_CC1IF
130
#define PPM_GPIO_PORT GPIOA
131
#define PPM_GPIO_PIN GPIO0
132
#define PPM_GPIO_AF 0
133
134
// Move default ADC timer
135
#if USE_AD_TIM2
136
#undef USE_AD_TIM2
137
#endif
138
#define USE_AD_TIM1 1
139
140
#elif PPM_CONFIG == 2
141
/* input on PA1 */
142
#define USE_PPM_TIM2 1
143
#define PPM_CHANNEL TIM_IC2
144
#define PPM_TIMER_INPUT TIM_IC_IN_TI2
145
#define PPM_IRQ NVIC_TIM2_IRQ
146
// Capture/Compare InteruptEnable and InterruptFlag
147
#define PPM_CC_IE TIM_DIER_CC2IE
148
#define PPM_CC_IF TIM_SR_CC2IF
149
#define PPM_GPIO_PORT GPIOA
150
#define PPM_GPIO_PIN GPIO1
151
#define PPM_GPIO_AF 0
152
153
// Move default ADC timer
154
#if USE_AD_TIM2
155
#undef USE_AD_TIM2
156
#endif
157
#define USE_AD_TIM1 1
158
159
#elif PPM_CONFIG == 3
160
/* input on PA3 */
161
#define USE_PPM_TIM2 1
162
#define PPM_CHANNEL TIM_IC4
163
#define PPM_TIMER_INPUT TIM_IC_IN_TI2
164
#define PPM_IRQ NVIC_TIM2_IRQ
165
// Capture/Compare InteruptEnable and InterruptFlag
166
#define PPM_CC_IE TIM_DIER_CC4IE
167
#define PPM_CC_IF TIM_SR_CC4IF
168
#define PPM_GPIO_PORT GPIOA
169
#define PPM_GPIO_PIN GPIO3
170
#define PPM_GPIO_AF 0
171
172
// Move default ADC timer
173
#if USE_AD_TIM2
174
#undef USE_AD_TIM2
175
#endif
176
#define USE_AD_TIM1 1
177
178
#else
179
#error "Unknown PPM config"
180
181
#endif // PPM_CONFIG
182
183
/*
184
* I2C
185
*
186
*/
187
#define I2C1_GPIO_PORT GPIOB
188
#define I2C1_GPIO_SCL GPIO6
189
#define I2C1_GPIO_SDA GPIO7
190
191
/* GPS TX & RX */
192
#define I2C2_GPIO_PORT GPIOB
193
#define I2C2_GPIO_SCL GPIO10
194
#define I2C2_GPIO_SDA GPIO11
195
196
/*
197
* PWM
198
*
199
*/
200
#define PWM_USE_TIM4 1
201
#define PWM_USE_TIM3 1
202
203
#define USE_PWM1 1
204
#define USE_PWM2 1
205
#define USE_PWM3 1
206
#define USE_PWM4 1
207
208
/* PWM_SERVO_x is the index of the servo in the actuators_pwm_values array */
209
#if USE_PWM1
210
#define PWM_SERVO_1 0
211
#define PWM_SERVO_1_TIMER TIM4
212
#define PWM_SERVO_1_GPIO GPIOB
213
#define PWM_SERVO_1_PIN GPIO8
214
#define PWM_SERVO_1_AF 0
215
#define PWM_SERVO_1_OC TIM_OC3
216
#define PWM_SERVO_1_OC_BIT (1<<2)
217
#else
218
#define PWM_SERVO_1_OC_BIT 0
219
#endif
220
221
#if USE_PWM2
222
#define PWM_SERVO_2 1
223
#define PWM_SERVO_2_TIMER TIM4
224
#define PWM_SERVO_2_GPIO GPIOB
225
#define PWM_SERVO_2_PIN GPIO9
226
#define PWM_SERVO_2_AF 0
227
#define PWM_SERVO_2_OC TIM_OC4
228
#define PWM_SERVO_2_OC_BIT (1<<3)
229
#else
230
#define PWM_SERVO_2_OC_BIT 0
231
#endif
232
233
#if USE_PWM3
234
#define PWM_SERVO_3 2
235
#define PWM_SERVO_3_TIMER TIM3
236
#define PWM_SERVO_3_GPIO GPIOB
237
#define PWM_SERVO_3_PIN GPIO0
238
#define PWM_SERVO_3_AF 0
239
#define PWM_SERVO_3_OC TIM_OC3
240
#define PWM_SERVO_3_OC_BIT (1<<2)
241
#else
242
#define PWM_SERVO_3_OC_BIT 0
243
#endif
244
245
#if USE_PWM4
246
#define PWM_SERVO_4 3
247
#define PWM_SERVO_4_TIMER TIM3
248
#define PWM_SERVO_4_GPIO GPIOB
249
#define PWM_SERVO_4_PIN GPIO1
250
#define PWM_SERVO_4_AF 0
251
#define PWM_SERVO_4_OC TIM_OC4
252
#define PWM_SERVO_4_OC_BIT (1<<3)
253
#else
254
#define PWM_SERVO_4_OC_BIT 0
255
#endif
256
257
258
259
/* servos 1-2 on TIM4 */
260
#define PWM_TIM4_CHAN_MASK (PWM_SERVO_1_OC_BIT|PWM_SERVO_2_OC_BIT)
261
/* servos 3-4 on TIM3 */
262
#define PWM_TIM3_CHAN_MASK (PWM_SERVO_3_OC_BIT|PWM_SERVO_4_OC_BIT)
263
264
265
#endif
/* CONFIG_CJMCU_H */
sw
airborne
boards
cjmcu.h
Generated on Tue Feb 1 2022 13:51:13 for Paparazzi UAS by
1.8.17