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 
16 /*
17  * This program is free software; you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License as published by
19  * the Free Software Foundation; either version 3 of the License, or
20  * (at your option) any later version.
21  *
22  * This program is distributed in the hope that it will be useful, but
23  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
24  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
25  * for more details.
26  *
27  * You should have received a copy of the GNU General Public License along
28  * with this program; if not, see <http://www.gnu.org/licenses/>
29  *
30  * Additional note on redistribution: The copyright and license notices above
31  * must be maintained in each individual source file that is a derivative work
32  * of this source file; otherwise redistribution is prohibited.
33  */
34 
35 
36 #ifndef STM3210E_INS_H_
37 
38 #include <stdbool.h>
39 
40 #if defined(PIOS_INCLUDE_DEBUG_CONSOLE)
41 #define DEBUG_LEVEL 0
42 #define DEBUG_PRINTF(level, ...) {if(level <= DEBUG_LEVEL && pios_com_debug_id > 0) { PIOS_COM_SendFormattedStringNonBlocking(pios_com_debug_id, __VA_ARGS__); }}
43 #else
44 #define DEBUG_PRINTF(level, ...)
45 #endif /* PIOS_INCLUDE_DEBUG_CONSOLE */
46 
47 //------------------------
48 // Timers and Channels Used
49 //------------------------
50 /*
51 Timer | Channel 1 | Channel 2 | Channel 3 | Channel 4
52 ------+-----------+-----------+-----------+----------
53 TIM1 | | | |
54 TIM2 | --------------- PIOS_DELAY -----------------
55 TIM3 | | | |
56 TIM4 | | | |
57 TIM5 | | | |
58 TIM6 | | | |
59 TIM7 | | | |
60 TIM8 | | | |
61 ------+-----------+-----------+-----------+----------
62 */
63 
64 //------------------------
65 // DMA Channels Used
66 //------------------------
67 /* Channel 1 - */
68 /* Channel 2 - */
69 /* Channel 3 - */
70 /* Channel 4 - */
71 /* Channel 5 - */
72 /* Channel 6 - */
73 /* Channel 7 - */
74 /* Channel 8 - */
75 /* Channel 9 - */
76 /* Channel 10 - */
77 /* Channel 11 - */
78 /* Channel 12 - */
79 
80 //------------------------
81 // BOOTLOADER_SETTINGS
82 //------------------------
83 #define BOARD_READABLE true
84 #define BOARD_WRITABLE true
85 #define MAX_DEL_RETRYS 3
86 
87 
88 //------------------------
89 // PIOS_ANNUNC
90 //------------------------
91 #define PIOS_LED_HEARTBEAT 0
92 #define PIOS_LED_ALARM 1
93 #define PIOS_ANNUNCIATOR_BUZZER 2
94 
95 //------------------------
96 // PIOS_WDG
97 //------------------------
98 #define PIOS_WATCHDOG_TIMEOUT 250
99 #define PIOS_WDG_REGISTER RTC_BKP_DR4
100 
101 //-------------------------
102 // PIOS_COM
103 //
104 // See also pios_board.c
105 //-------------------------
106 extern uintptr_t pios_com_telem_serial_id;
107 extern uintptr_t pios_com_gps_id;
108 extern uintptr_t pios_com_telem_usb_id;
109 extern uintptr_t pios_com_bridge_id;
110 extern uintptr_t pios_com_vcp_id;
111 extern uintptr_t pios_com_mavlink_id;
112 extern uintptr_t pios_com_hott_id;
113 extern uintptr_t pios_com_frsky_sensor_hub_id;
114 extern uintptr_t pios_com_lighttelemetry_id;
115 extern uintptr_t pios_com_frsky_sport_id;
116 extern uintptr_t pios_com_openlog_logging_id;
117 extern uintptr_t pios_com_storm32bgc_id;
118 
119 #define PIOS_COM_GPS (pios_com_gps_id)
120 #define PIOS_COM_TELEM_USB (pios_com_telem_usb_id)
121 #define PIOS_COM_BRIDGE (pios_com_bridge_id)
122 #define PIOS_COM_VCP (pios_com_vcp_id)
123 #define PIOS_COM_MAVLINK (pios_com_mavlink_id)
124 #define PIOS_COM_HOTT (pios_com_hott_id)
125 #define PIOS_COM_FRSKY_SENSOR_HUB (pios_com_frsky_sensor_hub_id)
126 #define PIOS_COM_LIGHTTELEMETRY (pios_com_lighttelemetry_id)
127 #define PIOS_COM_FRSKY_SPORT (pios_com_frsky_sport_id)
128 #define PIOS_COM_OPENLOG (pios_com_openlog_logging_id)
129 #define PIOS_COM_STORM32BGC (pios_com_storm32bgc_id)
130 
131 #if defined(PIOS_INCLUDE_DEBUG_CONSOLE)
132 extern uintptr_t pios_com_debug_id;
133 #define PIOS_COM_DEBUG (pios_com_debug_id)
134 #endif /* PIOS_INCLUDE_DEBUG_CONSOLE */
135 
136 #if defined(PIOS_INCLUDE_WS2811)
137 #include <pios_ws2811.h>
138 
140 #endif
141 
142 #ifdef PIOS_INCLUDE_MAX7456
143 #include <pios_max7456.h>
144 
145 extern max7456_dev_t pios_max7456_id;
146 #endif
147 
148 
149 //-------------------------
150 // Packet Handler
151 //-------------------------
152 #define RS_ECC_NPARITY 4
153 
154 #define PIOS_SYSCLK 168000000
155 // Peripherals that belongs to APB1 are:
156 // DAC |PWR |CAN1,2
157 // I2C1,2,3 |UART4,5 |USART3,2
158 // I2S3Ext |SPI3/I2S3 |SPI2/I2S2
159 // I2S2Ext |IWDG |WWDG
160 // RTC/BKP reg
161 // TIM2,3,4,5,6,7,12,13,14
162 
163 // Calculated as SYSCLK / APBPresc * (APBPre == 1 ? 1 : 2)
164 // Default APB1 Prescaler = 4
165 #define PIOS_PERIPHERAL_APB1_CLOCK (PIOS_SYSCLK / 4)
166 
167 // Peripherals belonging to APB2
168 // SDIO |EXTI |SYSCFG |SPI1
169 // ADC1,2,3
170 // USART1,6
171 // TIM1,8,9,10,11
172 //
173 // Default APB2 Prescaler = 2
174 //
175 #define PIOS_PERIPHERAL_APB2_CLOCK (PIOS_SYSCLK / 2)
176 
177 
178 //-------------------------
179 // Interrupt Priorities
180 //-------------------------
181 #define PIOS_IRQ_PRIO_LOW 12 // lower than RTOS
182 #define PIOS_IRQ_PRIO_MID 8 // higher than RTOS
183 #define PIOS_IRQ_PRIO_HIGH 5 // for SPI, ADC, I2C etc...
184 #define PIOS_IRQ_PRIO_HIGHEST 4 // for USART etc...
185 
186 //------------------------
187 // PIOS_RCVR
188 // See also pios_board.c
189 //------------------------
190 #define PIOS_RCVR_MAX_CHANNELS 12
191 
192 //-------------------------
193 // Receiver PPM input
194 //-------------------------
195 #define PIOS_PPM_NUM_INPUTS 12
196 
197 //-------------------------
198 // Receiver PWM input
199 //-------------------------
200 #define PIOS_PWM_NUM_INPUTS 8
201 
202 //-------------------------
203 // Receiver SPEKTRUM input
204 //-------------------------
205 #define PIOS_SPEKTRUM_NUM_INPUTS 12
206 
207 //-------------------------
208 // Receiver S.Bus input
209 //-------------------------
210 #define PIOS_SBUS_NUM_INPUTS (16+2)
211 
212 //-------------------------
213 // Receiver DSM input
214 //-------------------------
215 #define PIOS_DSM_NUM_INPUTS 12
216 
217 //-------------------------
218 // Receiver HSUM input
219 //-------------------------
220 #define PIOS_HSUM_MAX_DEVS 2
221 #define PIOS_HSUM_NUM_INPUTS 32
222 
223 //-------------------------
224 // Servo outputs
225 //-------------------------
226 #define PIOS_SERVO_UPDATE_HZ 50
227 #define PIOS_SERVOS_INITIAL_POSITION 0 /* dont want to start motors, have no pulse till settings loaded */
228 
229 //--------------------------
230 // Timer controller settings
231 //--------------------------
232 #define PIOS_TIM_MAX_DEVS 6
233 
234 //-------------------------
235 // ADC
236 #define PIOS_ADC_MAX_OVERSAMPLING 2
237 #define VREF_PLUS 3.3
238 
239 //-------------------------
240 // USB
241 //-------------------------
242 #define PIOS_USB_ENABLED 1 /* Should remove all references to this */
243 
244 #endif /* STM3210E_INS_H_ */
245 
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
struct max7456_dev_s * max7456_dev_t
Definition: pios_max7456.h:65
uintptr_t pios_com_mavlink_id
uintptr_t pios_com_lighttelemetry_id
ws2811_dev_t pios_ws2811
Definition: pios_board.c:66
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