/
target.h
214 lines (180 loc) · 5.04 KB
/
target.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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
/*
* This file is part of Cleanflight and Betaflight.
*
* Cleanflight and Betaflight are free software. You can redistribute
* this software and/or modify this software 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.
*
* Cleanflight and Betaflight are distributed in the hope that they
* 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 software.
*
* If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#if defined(PIRXF4)
#define TARGET_BOARD_IDENTIFIER "PIRX"
#define USBD_PRODUCT_STRING "Pirx F4"
#else
#define TARGET_BOARD_IDENTIFIER "RRF4"
#define USBD_PRODUCT_STRING "Worm FC"
#endif
//LEDs
#if defined(PIRXF4)
#define LED0_PIN PC13
#define LED1_PIN PC14
#else
#define LED0_PIN PA15
#define LED1_PIN PC14
#endif
#define ENABLE_DSHOT_DMAR true
//define camera control
#if defined(PIRXF4)
#define USE_CAMERA_CONTROL
#define CAMERA_CONTROL_PIN PA4
#endif
//BEEPER
#define USE_BEEPER
#if defined(PIRXF4)
#define BEEPER_PIN PA15
#else
#define BEEPER_PIN PB14
#endif
#define BEEPER_INVERTED
// MPU6500 interrupt
#define USE_EXTI
#if defined(PIRXF4)
#define MPU_INT_EXTI PC5
#else
#define MPU_INT_EXTI PC4
#endif
#define USE_MPU_DATA_READY_SIGNAL
//#define DEBUG_MPU_DATA_READY_INTERRUPT
#if defined(PIRXF4)
#define MPU6500_CS_PIN PC4
#else
#define MPU6500_CS_PIN PA4
#endif
#define MPU6500_SPI_INSTANCE SPI1
// ACC section -- start
#define USE_ACC
#define USE_ACC_MPU6500
#define USE_ACC_SPI_MPU6500
#if defined(PIRXF4)
#define ACC_MPU6500_ALIGN CW0_DEG
#else
#define ACC_MPU6500_ALIGN CW180_DEG_FLIP
#endif
// ACC section -- end
// GYRO section -- start
#define USE_GYRO
#define USE_GYRO_MPU6500
#define USE_GYRO_SPI_MPU6500
#if defined(PIRXF4)
#define GYRO_MPU6500_ALIGN CW0_DEG
#else
#define GYRO_MPU6500_ALIGN CW180_DEG_FLIP
#endif
// GYRO section -- end
//BARO
#if !defined(PIRXF4)
#define USE_BARO
#define USE_BARO_SPI_LPS
#define LPS_SPI_INSTANCE SPI3
#define LPS_CS_PIN PB8
#endif
//UARTs
#if defined(PIRXF4)
#define INVERTER_PIN_UART6 PA8
#define INVERTER_PIN_UART3 PB1
#else
#define INVERTER_PIN_UART6 PB13
#define INVERTER_PIN_UART3 PB12
#endif
#define USE_VCP
#define USB_DETECT_PIN PA9
#define USE_USB_DETECT
#define USE_UART1
#define UART1_RX_PIN PB7
#define UART1_TX_PIN PB6
#if defined(PIRXF4)
#define USE_UART2
#define UART2_RX_PIN PA3
#define UART2_TX_PIN PA2
#endif
#define USE_UART3
#define UART3_RX_PIN PB11
#define UART3_TX_PIN PB10
#define USE_UART4
#define UART4_RX_PIN PA1
#define UART4_TX_PIN PA0
#define USE_UART6
#define UART6_RX_PIN PC7
#define UART6_TX_PIN PC6
#if defined(PIRXF4)
#define SERIAL_PORT_COUNT 6 //VCP, USART1, USART2, USART3, USART4, USART6
#else
#define SERIAL_PORT_COUNT 5 //VCP, USART1, USART3, USART4, USART6
#endif
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PB9
//SPI
#define USE_SPI
#define USE_SPI_DEVICE_1
#if defined(PIRXF4)
#define USE_SPI_DEVICE_2
#else
#define USE_SPI_DEVICE_3
#define SPI3_SCK_PIN PB3
#define SPI3_MISO_PIN PB4
#define SPI3_MOSI_PIN PB5
#endif
//OSD
#define USE_MAX7456
#if defined(PIRXF4)
#define MAX7456_SPI_INSTANCE SPI2
#define MAX7456_SPI_CS_PIN PB12
#else
#define MAX7456_SPI_INSTANCE SPI3
#define MAX7456_SPI_CS_PIN PC0
#endif
#define MAX7456_SPI_CLK (SPI_CLOCK_STANDARD) // 10MHz
#define MAX7456_RESTORE_CLK (SPI_CLOCK_FAST)
#define USE_ADC
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define BOARD_HAS_VOLTAGE_DIVIDER
#if defined(PIRXF4)
#define VBAT_ADC_PIN PC2
#define RSSI_ADC_PIN PC1
#define CURRENT_METER_ADC_PIN PC3
#else
#define VBAT_ADC_PIN PC1
#define CURRENT_METER_ADC_PIN PC2
#endif
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
#define SERIALRX_PROVIDER SERIALRX_SBUS
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT
//SD CARD
#define USE_SDCARD
#define USE_SDCARD_SDIO
#define SDIO_DMA DMA2_Stream3
#define SDCARD_SPI_CS_PIN NONE //This is not used on SDIO, has to be kept for now to keep compiler happy
#if defined(PIRXF4)
#define SDCARD_DETECT_PIN PC15
#else
#define SDCARD_DETECT_PIN PB15
#endif
#define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff
#define TARGET_IO_PORTC 0xffff
#define TARGET_IO_PORTD (BIT(2))
#define USABLE_TIMER_CHANNEL_COUNT 7
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(8))