update credits
[librepilot.git] / flight / targets / boards / tinyfish / pios_board.h
blob45e4f69e4be3e61e4bad56f04b259b82a68b079c
1 /**
2 ******************************************************************************
4 * @file pios_board.h
5 * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2017.
6 * The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
8 * @brief Defines board hardware for the tinyFISH board
9 * @see The GNU Public License (GPL) Version 3
11 *****************************************************************************/
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 3 of the License, or
16 * (at your option) any later version.
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
20 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 * for more details.
23 * You should have received a copy of the GNU General Public License along
24 * with this program; if not, write to the Free Software Foundation, Inc.,
25 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 #ifndef PIOS_BOARD_H
29 #define PIOS_BOARD_H
31 // ------------------------
32 // BOOTLOADER_SETTINGS
33 // ------------------------
34 #define BOARD_READABLE true
35 #define BOARD_WRITABLE true
36 #define MAX_DEL_RETRYS 3
38 // ------------------------
39 // WATCHDOG_SETTINGS
40 // ------------------------
41 #define PIOS_WATCHDOG_TIMEOUT 250
42 #define PIOS_WDG_REGISTER RTC_BKP_DR4
43 #define PIOS_WDG_ACTUATOR 0x0001
44 #define PIOS_WDG_STABILIZATION 0x0002
45 #define PIOS_WDG_ATTITUDE 0x0004
46 #define PIOS_WDG_MANUAL 0x0008
47 #define PIOS_WDG_AUTOTUNE 0x0010
48 #define PIOS_WDG_SENSORS 0x0020
51 // ------------------------
52 // TELEMETRY
53 // ------------------------
54 #define TELEM_QUEUE_SIZE 10
56 // ------------------------
57 // PIOS_LED
58 // ------------------------
59 #define PIOS_LED_HEARTBEAT 0
60 #define PIOS_LED_ALARM 1
61 #define PIOS_BUZZER_ALARM 2
63 // -------------------------
64 // System Settings
65 // -------------------------
66 #define PIOS_MASTER_CLOCK 72000000
68 // -------------------------
69 // Interrupt Priorities
70 // -------------------------
71 #define PIOS_IRQ_PRIO_LOW 12 // lower than RTOS
72 #define PIOS_IRQ_PRIO_MID 8 // higher than RTOS
73 #define PIOS_IRQ_PRIO_HIGH 5 // for SPI, ADC, I2C etc...
74 #define PIOS_IRQ_PRIO_HIGHEST 4 // for USART etc...
75 // ------------------------
76 // PIOS_I2C
77 // See also pios_board.c
78 // ------------------------
79 #define PIOS_I2C_MAX_DEVS 0
81 // -------------------------
82 // SPI
84 // See also pios_board.c
85 // -------------------------
86 #define PIOS_SPI_MAX_DEVS 2
87 extern uint32_t pios_spi1_id;
88 #define PIOS_SPI_MPU6000_ADAPTER (pios_spi1_id)
90 // -------------------------
91 // PIOS_USART
92 // -------------------------
93 #define PIOS_USART_MAX_DEVS 3
95 // -------------------------
96 // PIOS_COM
98 // See also pios_board.c
99 // -------------------------
100 #define PIOS_COM_MAX_DEVS 3
103 #ifdef PIOS_INCLUDE_WS2811
104 extern uint32_t pios_ws2811_id;
105 #define PIOS_WS2811_DEVICE (pios_ws2811_id)
106 #endif
108 // -------------------------
109 // ADC
110 // PIOS_ADC_PinGet(0) = Current sensor
111 // PIOS_ADC_PinGet(1) = Battery voltage
112 // -------------------------
113 #define PIOS_DMA_PIN_CONFIG \
115 { GPIOB, GPIO_Pin_0, ADC_Channel_12, false }, /* ADC_2 / Current */ \
116 { GPIOB, GPIO_Pin_1, ADC_Channel_1, false }, /* ADC_1 / Voltage */ \
119 /* we have to do all this to satisfy the PIOS_ADC_MAX_SAMPLES define in pios_adc.h */
120 /* which is annoying because this then determines the rate at which we generate buffer turnover events */
121 /* the objective here is to get enough buffer space to support 100Hz averaging rate */
122 #define PIOS_ADC_NUM_CHANNELS 2
123 #define PIOS_ADC_MAX_OVERSAMPLING 32
125 // #define PIOS_ADC_USE_TEMP_SENSOR
126 // #define PIOS_ADC_TEMPERATURE_PIN 4
128 #define PIOS_ADC_CURRENT_PIN 0
129 #define PIOS_ADC_VOLTAGE_PIN 1
131 // ------------------------
132 // PIOS_RCVR
133 // See also pios_board.c
134 // ------------------------
135 #define PIOS_RCVR_MAX_DEVS 3
136 #define PIOS_RCVR_MAX_CHANNELS 12
137 #define PIOS_GCSRCVR_TIMEOUT_MS 100
139 // -------------------------
140 // Receiver PPM input
141 // -------------------------
142 #define PIOS_PPM_MAX_DEVS 1
143 #define PIOS_PPM_NUM_INPUTS 16
145 // -------------------------
146 // Receiver PWM input
147 // -------------------------
148 #define PIOS_PWM_MAX_DEVS 1
149 #define PIOS_PWM_NUM_INPUTS 6
151 // -------------------------
152 // Receiver DSM input
153 // -------------------------
154 #define PIOS_DSM_MAX_DEVS 2
155 #define PIOS_DSM_NUM_INPUTS 12
157 // -------------------------
158 // Receiver S.Bus input
159 // -------------------------
160 #define PIOS_SBUS_MAX_DEVS 1
161 #define PIOS_SBUS_NUM_INPUTS (16 + 2)
163 // -------------------------
164 // Receiver HOTT input
165 // -------------------------
166 #define PIOS_HOTT_MAX_DEVS 1
167 #define PIOS_HOTT_NUM_INPUTS 32
169 // -------------------------
170 // Receiver EX.Bus input
171 // -------------------------
172 #define PIOS_EXBUS_MAX_DEVS 1
173 #define PIOS_EXBUS_NUM_INPUTS 16
175 // -------------------------
176 // Receiver Multiplex SRXL input
177 // -------------------------
178 #define PIOS_SRXL_MAX_DEVS 1
179 #define PIOS_SRXL_NUM_INPUTS 16
181 // -------------------------
182 // Receiver FlySky IBus input
183 // -------------------------
184 #define PIOS_IBUS_MAX_DEVS 1
185 #define PIOS_IBUS_NUM_INPUTS 10
187 // -------------------------
188 // Servo outputs
189 // -------------------------
190 #define PIOS_SERVO_UPDATE_HZ 50
191 #define PIOS_SERVOS_INITIAL_POSITION 0 /* dont want to start motors, have no pulse till settings loaded */
192 #define PIOS_SERVO_BANKS 6
194 // --------------------------
195 // Timer controller settings
196 // --------------------------
197 #define PIOS_TIM_MAX_DEVS 3
199 // -------------------------
200 // GPIO
201 // -------------------------
202 #define PIOS_GPIO_PORTS {}
203 #define PIOS_GPIO_PINS {}
204 #define PIOS_GPIO_CLKS {}
205 #define PIOS_GPIO_NUM 0
207 // -------------------------
208 // USB
209 // -------------------------
210 #define PIOS_USB_HID_MAX_DEVS 1
212 #define PIOS_USB_ENABLED 1
213 #define PIOS_USB_MAX_DEVS 1
215 #endif /* PIOS_BOARD_H */