APM:Libraries
board.h
Go to the documentation of this file.
1 #ifndef _BOARD_STM32V1F4_H_
2 #define _BOARD_STM32V1F4_H_
3 
4 
8 #define __CM4_REV 0x0001
9 #define __MPU_PRESENT 1
10 #define __NVIC_PRIO_BITS 4
11 #define __Vendor_SysTickConfig 0
12 #define __FPU_PRESENT 1
14 #define HSE_VALUE (8000000)
15 
16 #define CYCLES_PER_MICROSECOND (SystemCoreClock / 1000000)
17 #define SYSTICK_RELOAD_VAL (CYCLES_PER_MICROSECOND*1000-1)
18 
19 #undef STM32_PCLK1
20 #undef STM32_PCLK2
21 #define STM32_PCLK1 (CYCLES_PER_MICROSECOND*1000000/4)
22 #define STM32_PCLK2 (CYCLES_PER_MICROSECOND*1000000/2)
23 
24 #define BOARD_BUTTON_PIN 254
25 
26 #ifndef LOW
27 # define LOW 0
28 #endif
29 #ifndef HIGH
30 # define HIGH 1
31 #endif
32 
33 #define BOARD_BUZZER_PIN PC13
34 #define HAL_BUZZER_ON 0
35 #define HAL_BUZZER_OFF 1
36 
37 #define BOARD_NR_USARTS 4
38 
39 
40 #define BOARD_USART1_TX_PIN PA10
41 #define BOARD_USART1_RX_PIN PA9
42 
43 //#define BOARD_USART2_TX_PIN PA2
44 //#define BOARD_USART2_RX_PIN PA3 - used for PPM
45 
46 #define BOARD_USART3_TX_PIN PC11
47 #define BOARD_USART3_RX_PIN PC10
48 
49 #define BOARD_USART4_TX_PIN PA0
50 #define BOARD_USART4_RX_PIN PA1
51 
52 #define BOARD_USART5_RX_PIN PD2
53 #define BOARD_USART5_TX_PIN PC12
54 
55 //#define BOARD_USART6_TX_PIN 255
56 //#define BOARD_USART6_RX_PIN 255
57 
58 #define BOARD_HAS_UART3
59 #define BOARD_DSM_USART _UART5
60 
61 // no inverter
62 //#define BOARD_SBUS_INVERTER
63 //#define BOARD_SBUS_UART 1 // can use some UART as hardware inverted input
64 
65 
66 #define BOARD_NR_SPI 3
67 #define BOARD_SPI1_SCK_PIN PA5
68 #define BOARD_SPI1_MISO_PIN PA6
69 #define BOARD_SPI1_MOSI_PIN PA7
70 #define BOARD_SPI2_SCK_PIN PB13
71 #define BOARD_SPI2_MISO_PIN PB14
72 #define BOARD_SPI2_MOSI_PIN PB15
73 #define BOARD_SPI3_SCK_PIN PB3
74 #define BOARD_SPI3_MISO_PIN PB4
75 #define BOARD_SPI3_MOSI_PIN PB5
76 
77 
78 #define BOARD_MPU6000_CS_PIN PC2
79 #define BOARD_MPU6000_DRDY_PIN PC3
80 
81 #define BOARD_USB_SENSE PB12
82 
83 #define I2C1_SDA PB7
84 #define I2C1_SCL PB6
85 
86 // bus 2 (soft) pins
87 //#define BOARD_SOFT_SCL 14
88 //#define BOARD_SOFT_SDA 15
89 
90 // SoftSerial pins
91 //#define BOARD_SOFTSERIAL_TX 14
92 //#define BOARD_SOFTSERIAL_RX 15
93 
94 
95 #define BOARD_BLUE_LED_PIN PB9
96 #define BOARD_GREEN_LED_PIN PA14
97 
98 #define HAL_GPIO_A_LED_PIN BOARD_BLUE_LED_PIN
99 #define HAL_GPIO_B_LED_PIN BOARD_GREEN_LED_PIN
100 
101 # define BOARD_LED_ON LOW
102 # define BOARD_LED_OFF HIGH
103 # define HAL_GPIO_LED_ON LOW
104 # define HAL_GPIO_LED_OFF HIGH
105 
106 
107 #define BOARD_NR_GPIO_PINS 109
108 
109 //#define BOARD_I2C_BUS_INT 1 // hardware internal I2C
110 #define BOARD_I2C_BUS_EXT 0 // external I2C
111 #define BOARD_I2C_BUS_SLOW 0 // slow down bus with this number
112 //#define BOARD_SOFT_I2C1
113 
114 #define BOARD_BARO_DEFAULT HAL_BARO_BMP280_I2C
115 #define HAL_BARO_BMP280_BUS BOARD_I2C_BUS_EXT
116 #define HAL_BARO_BMP280_I2C_ADDR (0x76)
117 #define HAL_BARO_BMP280_I2C_ADDR_ALT (0x77)
118 
119 #define HAL_BARO_MS5611_I2C_BUS BOARD_I2C_BUS_EXT
120 #define HAL_BARO_MS5611_I2C_ADDR (0x77)
121 
122 #define BOARD_COMPASS_DEFAULT HAL_COMPASS_HMC5843
123 #define BOARD_COMPASS_HMC5843_I2C_ADDR 0x1E
124 #define BOARD_COMPASS_HMC5843_ROTATION ROTATION_NONE
125 
126 #define HAL_COMPASS_HMC5843_I2C_BUS BOARD_I2C_BUS_EXT
127 #define HAL_COMPASS_HMC5843_I2C_ADDR BOARD_COMPASS_HMC5843_I2C_ADDR
128 #define HAL_COMPASS_HMC5843_ROTATION BOARD_COMPASS_HMC5843_ROTATION
129 
130 #define BOARD_INS_DEFAULT HAL_INS_MPU60XX_SPI
131 #define BOARD_INS_ROTATION ROTATION_YAW_180
132 #define BOARD_INS_MPU60x0_NAME "mpu6000"
133 
134 #define BOARD_STORAGE_SIZE 8192 // 4096 // EEPROM size
135 
136 #define BOARD_SDCARD_NAME "sdcard"
137 #define BOARD_SDCARD_CS_PIN PC1
138 //#define BOARD_SDCARD_DET_PIN 38 // PB7
139 
140 #define BOARD_HAS_SDIO
141 #define HAL_BOARD_LOG_DIRECTORY "0:/APM/LOGS"
142 #define HAL_BOARD_TERRAIN_DIRECTORY "0:/APM/TERRAIN"
143 //#define HAL_PARAM_DEFAULTS_PATH "0:/APM/defaults.parm"
144 #define USB_MASSSTORAGE
145 
146 #define BOARD_OSD_NAME "osd"
147 #define BOARD_OSD_CS_PIN PB10
148 //#define BOARD_OSD_VSYNC_PIN 9
149 //#define BOARD_OSD_RESET_PIN 6
150 
151 
152 /*
153 #define DATAFLASH_CS_PIN PC0
154 #define BOARD_DATAFLASH_NAME "dataflash"
155 #define BOARD_DATAFLASH_PAGES 0x10000
156 #define BOARD_DATAFLASH_ERASE_SIZE (4096)// in bytes
157 */
158 
159 #define BOARD_OWN_NAME "MatekF4_CTR"
160 
161 # define BOARD_PUSHBUTTON_PIN 254 // no button
162 # define BOARD_USB_MUX_PIN -1 // no mux
163 # define BOARD_BATTERY_VOLT_PIN PC5 // Battery voltage
164 # define BOARD_BATTERY_CURR_PIN PC4 // Battery current
165 # define BOARD_SONAR_SOURCE_ANALOG_PIN PB1 // rssi PB1
166 
167 # define HAL_BATT_VOLT_PIN PC5 // ChibiOS compatible defines
168 # define HAL_BATT_CURR_PIN PC4
169 # define HAL_BATT_VOLT_SCALE 10.1
170 # define HAL_BATT_CURR_SCALE 17
171 
172 
173 # define HAL_BATT_VOLT_PIN PC5 // ChibiOS compatible defines
174 # define HAL_BATT_CURR_PIN PC4
175 # define HAL_BATT_VOLT_SCALE 10.1
176 # define HAL_BATT_CURR_SCALE 17
177 
178 #define BOARD_USB_DMINUS 108
179 
180 
181 #define USE_SERIAL_4WAY_BLHELI_INTERFACE
182 
183 #define BOARD_UARTS_LAYOUT 6
184 
185 #define SERVO_PIN_1 12 // PC6 S1
186 #define SERVO_PIN_2 13 // PC7 S2
187 #define SERVO_PIN_3 14 // PC8 S3
188 #define SERVO_PIN_4 15 // PC9 S4
189 #define SERVO_PIN_5 103 // PA15 S5
190 #define SERVO_PIN_6 22 // PA8 S6
191 
192 #define MOTOR_LAYOUT_DEFAULT 3 // Cleanflight
193 
194 #define HAL_CONSOLE USB_Driver // console on USB
195 #define HAL_CONSOLE_PORT 0
196 
197 /*
198 
199  // @Param: USB_STORAGE
200  // @DisplayName: allows access to SD card at next reboot
201  // @Description: Allows to read/write internal SD card via USB mass-storage protocol. Auto-reset.
202  // @Values: 0:normal, 1:work as USB flash drive
203  // @User: Advanced
204  AP_GROUPINFO("USB_STORAGE", 8, AP_Param_Helper, _usb_storage, 0), \
205 
206  // @Param: SD_REFORMAT
207  // @DisplayName: Allows to re-format SD card in case of errors in FS
208  // @Description: Any FS errors that cause failure of logging will be corrected by SD card formatting
209  // @Values: 0: not allow, 1:allow
210  // @User: Advanced
211  AP_GROUPINFO("SD_REFORMAT", 7, AP_Param_Helper, _sd_format, 0),
212 */
213 
214 #define BOARD_HAL_VARINFO \
215  AP_GROUPINFO("USB_STORAGE", 30, AP_Param_Helper, _usb_storage, 0), \
216  AP_GROUPINFO("SD_REFORMAT", 31, AP_Param_Helper, _sd_format, 0),
217 
218 // parameters
219 #define BOARD_HAL_PARAMS \
220  AP_Int8 _usb_storage; \
221  AP_Int8 _sd_format;
222 #endif
223 
224