dRonin  adbada4
dRonin firmware
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
pios_board.h
Go to the documentation of this file.
1 
14 /*
15  * This program is free software; you can redistribute it and/or modify
16  * it under the terms of the GNU General Public License as published by
17  * the Free Software Foundation; either version 3 of the License, or
18  * (at your option) any later version.
19  *
20  * This program is distributed in the hope that it will be useful, but
21  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
22  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23  * for more details.
24  *
25  * You should have received a copy of the GNU General Public License along
26  * with this program; if not, see <http://www.gnu.org/licenses/>
27  */
28 
29 
30 #ifndef STM32F30X_PIKOBLX_H_
31 #define STM32F30X_PIKOBLX_H_
32 
33 #include <stdbool.h>
34 
35 #if defined(PIOS_INCLUDE_DEBUG_CONSOLE)
36 #define DEBUG_LEVEL 0
37 #define DEBUG_PRINTF(level, ...) {if(level <= DEBUG_LEVEL && pios_com_aux_id > 0) { PIOS_COM_SendFormattedStringNonBlocking(pios_com_aux_id, __VA_ARGS__); }}
38 #else
39 #define DEBUG_PRINTF(level, ...)
40 #endif /* PIOS_INCLUDE_DEBUG_CONSOLE */
41 
42 //------------------------
43 // Timers and Channels Used
44 //------------------------
45 /*
46 Timer | Channel 1 | Channel 2 | Channel 3 | Channel 4
47 ------+-----------+-----------+-----------+----------
48 TIM1 | | | |
49 TIM2 | --------------- PIOS_DELAY -----------------
50 TIM3 | | | |
51 TIM4 | | | |
52 TIM5 | | | |
53 TIM6 | | | |
54 TIM7 | | | |
55 TIM8 | | | |
56 ------+-----------+-----------+-----------+----------
57 */
58 
59 //------------------------
60 // DMA Channels Used
61 //------------------------
62 /* Channel 1 - */
63 /* Channel 2 - */
64 /* Channel 3 - */
65 /* Channel 4 - */
66 /* Channel 5 - */
67 /* Channel 6 - */
68 /* Channel 7 - */
69 /* Channel 8 - */
70 /* Channel 9 - */
71 /* Channel 10 - */
72 /* Channel 11 - */
73 /* Channel 12 - */
74 
75 //------------------------
76 // BOOTLOADER_SETTINGS
77 //------------------------
78 #define BOARD_READABLE true
79 #define BOARD_WRITABLE true
80 #define MAX_DEL_RETRYS 3
81 
82 
83 //------------------------
84 // PIOS_LED
85 //------------------------
86 #define PIOS_LED_HEARTBEAT 0
87 #define PIOS_LED_ALARM 1
88 #define PIOS_ANNUNCIATOR_BUZZER 2
89 
90 //------------------------
91 // PIOS_WDG
92 //------------------------
93 #define PIOS_WATCHDOG_TIMEOUT 250
94 #define PIOS_WDG_REGISTER RTC_BKP_DR4
95 
96 //-------------------------
97 // PIOS_COM
98 //
99 // See also pios_board.c
100 //-------------------------
101 extern uintptr_t pios_com_telem_serial_id;
102 extern uintptr_t pios_com_gps_id;
103 extern uintptr_t pios_com_telem_usb_id;
104 extern uintptr_t pios_com_bridge_id;
105 extern uintptr_t pios_com_vcp_id;
106 extern uintptr_t pios_com_mavlink_id;
107 extern uintptr_t pios_com_hott_id;
108 extern uintptr_t pios_com_frsky_sensor_hub_id;
109 extern uintptr_t pios_com_lighttelemetry_id;
110 extern uintptr_t pios_com_frsky_sport_id;
111 extern uintptr_t pios_com_openlog_logging_id;
112 extern uintptr_t pios_com_storm32bgc_id;
113 
114 #define PIOS_COM_GPS (pios_com_gps_id)
115 #define PIOS_COM_TELEM_USB (pios_com_telem_usb_id)
116 #define PIOS_COM_BRIDGE (pios_com_bridge_id)
117 #define PIOS_COM_VCP (pios_com_vcp_id)
118 #define PIOS_COM_MAVLINK (pios_com_mavlink_id)
119 #define PIOS_COM_HOTT (pios_com_hott_id)
120 #define PIOS_COM_FRSKY_SENSOR_HUB (pios_com_frsky_sensor_hub_id)
121 #define PIOS_COM_LIGHTTELEMETRY (pios_com_lighttelemetry_id)
122 #define PIOS_COM_FRSKY_SPORT (pios_com_frsky_sport_id)
123 #define PIOS_COM_OPENLOG (pios_com_openlog_logging_id)
124 #define PIOS_COM_STORM32BGC (pios_com_storm32bgc_id)
125 
126 #if defined(PIOS_INCLUDE_DEBUG_CONSOLE)
127 extern uintptr_t pios_com_debug_id;
128 #define PIOS_COM_DEBUG (pios_com_debug_id)
129 #endif /* PIOS_INCLUDE_DEBUG_CONSOLE */
130 
131 //-------------------------
132 // System Settings
133 //
134 // See also system_stm32f30x.c
135 //-------------------------
136 //These macros are deprecated
137 
138 #define PIOS_SYSCLK 72000000
139 #define PIOS_PERIPHERAL_APB1_CLOCK (PIOS_SYSCLK / 2)
140 #define PIOS_PERIPHERAL_APB2_CLOCK (PIOS_SYSCLK / 1)
141 
142 
143 //-------------------------
144 // Interrupt Priorities
145 //-------------------------
146 #define PIOS_IRQ_PRIO_LOW 12 // lower than RTOS
147 #define PIOS_IRQ_PRIO_MID 8 // higher than RTOS
148 #define PIOS_IRQ_PRIO_HIGH 5 // for SPI, ADC, I2C etc...
149 #define PIOS_IRQ_PRIO_HIGHEST 4 // for USART etc...
150 
151 
152 //------------------------
153 // PIOS_RCVR
154 // See also pios_board.c
155 //------------------------
156 #define PIOS_RCVR_MAX_CHANNELS 12
157 
158 //-------------------------
159 // Receiver PPM input
160 //-------------------------
161 #define PIOS_PPM_NUM_INPUTS 12
162 
163 //-------------------------
164 // Receiver PWM input
165 //-------------------------
166 #define PIOS_PWM_NUM_INPUTS 10
167 
168 //-------------------------
169 // Receiver DSM input
170 //-------------------------
171 #define PIOS_DSM_NUM_INPUTS 12
172 
173 //-------------------------
174 // Receiver HSUM input
175 //-------------------------
176 #define PIOS_HSUM_MAX_DEVS 2
177 #define PIOS_HSUM_NUM_INPUTS 32
178 
179 //-------------------------
180 // Receiver S.Bus input
181 //-------------------------
182 #define PIOS_SBUS_NUM_INPUTS (16+2)
183 
184 //-------------------------
185 // Servo outputs
186 //-------------------------
187 #define PIOS_SERVO_UPDATE_HZ 50
188 #define PIOS_SERVOS_INITIAL_POSITION 0 /* dont want to start motors, have no pulse till settings loaded */
189 
190 //--------------------------
191 // Timer controller settings
192 //--------------------------
193 #define PIOS_TIM_MAX_DEVS 8
194 
195 //-------------------------
196 // ADC
197 // ADC0 : PA1 ADC1_IN2
198 // ADC1 : PA4 ADC2_IN1
199 // ADC2 : PA7 ADC2_IN4 (disabled by default and should have external resistor)
200 //-------------------------
201 
202 #define VREF_PLUS 3.3
203 
204 //-------------------------
205 // DMA
206 //-------------------------
207 #define PIOS_DMA_MAX_CHANNELS 12
208 #define PIOS_DMA_MAX_HANDLERS_PER_CHANNEL 3
209 #define PIOS_DMA_CHANNELS {DMA1_Channel1, DMA1_Channel2, DMA1_Channel3, DMA1_Channel4, DMA1_Channel5, DMA1_Channel6, DMA1_Channel7, DMA2_Channel1, DMA2_Channel2, DMA2_Channel3, DMA2_Channel4, DMA2_Channel5}
210 
211 //-------------------------
212 // USB
213 //-------------------------
214 #define PIOS_USB_ENABLED 1 /* Should remove all references to this */
215 
216 #endif /* STM32F30X_PIKOBLX_H_ */
217 
218 
uintptr_t pios_com_frsky_sport_id
uintptr_t pios_com_frsky_sensor_hub_id
uintptr_t pios_com_telem_serial_id
Definition: pios_hal.c:127
uintptr_t pios_com_debug_id
Definition: pios_board.c:76
uintptr_t pios_com_hott_id
uintptr_t pios_com_mavlink_id
uintptr_t pios_com_lighttelemetry_id
uintptr_t pios_com_openlog_logging_id
Definition: pios_board.c:49
uintptr_t pios_com_telem_usb_id
Definition: pios_board.c:42
uintptr_t pios_com_bridge_id
Definition: pios_hal.c:81
uintptr_t pios_com_storm32bgc_id
uintptr_t pios_com_gps_id
Definition: pios_hal.c:80
uintptr_t pios_com_vcp_id