diff --git a/src/main/target/STM32F3DISCOVERY/target.h b/src/main/target/STM32F3DISCOVERY/target.h index e54b91918..2d78bf929 100644 --- a/src/main/target/STM32F3DISCOVERY/target.h +++ b/src/main/target/STM32F3DISCOVERY/target.h @@ -1,18 +1,28 @@ /* - * This file is part of Cleanflight. + * Supports the GY-91 MPU9250 and BMP280 development board via SPI1 * - * Cleanflight is free software: you can redistribute it and/or modify + * Put the MAX7456 on SPI2 instead of an SDCARD + * MAX7456 CS -> PB12 (default) + * Uses the default pins for SPI2: + * #define SPI2_NSS_PIN PB12 + * #define SPI2_SCK_PIN PB13 + * #define SPI2_MISO_PIN PB14 + * #define SPI2_MOSI_PIN PB15 + * + * @author Nathan Tsoi + * + * This software is free software: you can redistribute it and/or modify * it 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 is distributed in the hope that it will be useful, + * This software is distributed in the hope that it 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 Cleanflight. If not, see . + * along with this software. If not, see . */ #pragma once @@ -38,11 +48,11 @@ #define SPI2_MISO_PIN PB14 #define SPI2_MOSI_PIN PB15 -#define USE_SD_CARD - -#define SD_DETECT_PIN PC14 -#define SD_CS_PIN PB12 -#define SD_SPI_INSTANCE SPI2 +//#define USE_SD_CARD +// +//#define SD_DETECT_PIN PC14 +//#define SD_CS_PIN PB12 +//#define SD_SPI_INSTANCE SPI2 //#define USE_FLASHFS //#define USE_FLASH_M25P16 @@ -64,31 +74,50 @@ #define GYRO #define USE_GYRO_L3GD20 - #define L3GD20_SPI SPI1 #define L3GD20_CS_PIN PE3 - #define GYRO_L3GD20_ALIGN CW270_DEG -#define USE_SDCARD -#define USE_SDCARD_SPI2 - -#define SDCARD_SPI_INSTANCE SPI2 -#define SDCARD_SPI_CS_PIN PB12 -// SPI2 is on the APB1 bus whose clock runs at 36MHz. Divide to under 400kHz for init: -#define SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER 128 -// Divide to under 25MHz for normal operation: -#define SDCARD_SPI_FULL_SPEED_CLOCK_DIVIDER 2 - -// Note, this is the same DMA channel as USART1_RX. Luckily we don't use DMA for USART Rx. -#define SDCARD_DMA_CHANNEL_TX DMA1_Channel5 -#define SDCARD_DMA_CHANNEL_TX_COMPLETE_FLAG DMA1_FLAG_TC5 - -// Performance logging for SD card operations: -// #define AFATFS_USE_INTROSPECTIVE_LOGGING +// Support the GY-91 MPU9250 dev board +#define USE_GYRO_MPU6500 +#define USE_GYRO_SPI_MPU6500 +#define MPU6500_CS_PIN PC14 +#define MPU6500_SPI_INSTANCE SPI2 +#define GYRO_MPU6500_ALIGN CW270_DEG_FLIP #define ACC #define USE_ACC_LSM303DLHC +#define USE_ACC_MPU6500 +#define USE_ACC_SPI_MPU6500 +#define ACC_MPU6500_ALIGN CW270_DEG_FLIP + +//#define BARO +//#define BMP280_CS_PIN PB12 +//#define BMP280_SPI_INSTANCE SPI2 +//#define USE_BARO_BMP280 +//#define USE_BARO_SPI_BMP280 + +#define OSD +#define USE_MAX7456 +#define MAX7456_SPI_INSTANCE SPI2 +#define MAX7456_SPI_CS_PIN SPI2_NSS_PIN + +//#define USE_SDCARD +//#define USE_SDCARD_SPI2 +// +//#define SDCARD_SPI_INSTANCE SPI2 +//#define SDCARD_SPI_CS_PIN PB12 +//// SPI2 is on the APB1 bus whose clock runs at 36MHz. Divide to under 400kHz for init: +//#define SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER 128 +//// Divide to under 25MHz for normal operation: +//#define SDCARD_SPI_FULL_SPEED_CLOCK_DIVIDER 2 +// +//// Note, this is the same DMA channel as USART1_RX. Luckily we don't use DMA for USART Rx. +//#define SDCARD_DMA_CHANNEL_TX DMA1_Channel5 +//#define SDCARD_DMA_CHANNEL_TX_COMPLETE_FLAG DMA1_FLAG_TC5 + +// Performance logging for SD card operations: +// #define AFATFS_USE_INTROSPECTIVE_LOGGING #define MAG #define USE_MAG_HMC5883 diff --git a/src/main/target/STM32F3DISCOVERYMAX7456/target.c b/src/main/target/STM32F3DISCOVERYMAX7456/target.c deleted file mode 100644 index ab538410f..000000000 --- a/src/main/target/STM32F3DISCOVERYMAX7456/target.c +++ /dev/null @@ -1,90 +0,0 @@ - -#include -#include - -#include -#include "drivers/pwm_mapping.h" - -const uint16_t multiPPM[] = { - PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input - PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM11 | (MAP_TO_MOTOR_OUTPUT << 8), - PWM12 | (MAP_TO_MOTOR_OUTPUT << 8), - PWM13 | (MAP_TO_MOTOR_OUTPUT << 8), - PWM14 | (MAP_TO_MOTOR_OUTPUT << 8), - PWM5 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM6 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM7 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM8 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - 0xFFFF -}; - -const uint16_t multiPWM[] = { - PWM1 | (MAP_TO_PWM_INPUT << 8), // input #1 - PWM2 | (MAP_TO_PWM_INPUT << 8), - PWM3 | (MAP_TO_PWM_INPUT << 8), - PWM4 | (MAP_TO_PWM_INPUT << 8), - PWM5 | (MAP_TO_PWM_INPUT << 8), - PWM6 | (MAP_TO_PWM_INPUT << 8), - PWM7 | (MAP_TO_PWM_INPUT << 8), - PWM8 | (MAP_TO_PWM_INPUT << 8), // input #8 - PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 or servo #1 (swap to servo if needed) - PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2 or servo #2 (swap to servo if needed) - PWM11 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 or #3 - PWM12 | (MAP_TO_MOTOR_OUTPUT << 8), - PWM13 | (MAP_TO_MOTOR_OUTPUT << 8), - PWM14 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #4 or #6 - 0xFFFF -}; - -const uint16_t airPPM[] = { - PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input - PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 - PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2 - PWM11 | (MAP_TO_SERVO_OUTPUT << 8), // servo #1 - PWM12 | (MAP_TO_SERVO_OUTPUT << 8), - PWM13 | (MAP_TO_SERVO_OUTPUT << 8), - PWM14 | (MAP_TO_SERVO_OUTPUT << 8), // servo #4 - PWM5 | (MAP_TO_SERVO_OUTPUT << 8), // servo #5 - PWM6 | (MAP_TO_SERVO_OUTPUT << 8), - PWM7 | (MAP_TO_SERVO_OUTPUT << 8), - PWM8 | (MAP_TO_SERVO_OUTPUT << 8), // servo #8 - 0xFFFF -}; - -const uint16_t airPWM[] = { - PWM1 | (MAP_TO_PWM_INPUT << 8), // input #1 - PWM2 | (MAP_TO_PWM_INPUT << 8), - PWM3 | (MAP_TO_PWM_INPUT << 8), - PWM4 | (MAP_TO_PWM_INPUT << 8), - PWM5 | (MAP_TO_PWM_INPUT << 8), - PWM6 | (MAP_TO_PWM_INPUT << 8), - PWM7 | (MAP_TO_PWM_INPUT << 8), - PWM8 | (MAP_TO_PWM_INPUT << 8), // input #8 - PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 - PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2 - PWM11 | (MAP_TO_SERVO_OUTPUT << 8), // servo #1 - PWM12 | (MAP_TO_SERVO_OUTPUT << 8), - PWM13 | (MAP_TO_SERVO_OUTPUT << 8), - PWM14 | (MAP_TO_SERVO_OUTPUT << 8), // servo #4 - 0xFFFF -}; - -const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { - { TIM1, IO_TAG(PA8), TIM_Channel_1, TIM1_CC_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_6, 0}, // PWM1 - PA8 - { TIM16, IO_TAG(PB8), TIM_Channel_1, TIM1_UP_TIM16_IRQn, 0, IOCFG_AF_PP_PD, GPIO_AF_1, 0}, // PWM2 - PB8 - { TIM17, IO_TAG(PB9), TIM_Channel_1, TIM1_TRG_COM_TIM17_IRQn, 0, IOCFG_AF_PP_PD, GPIO_AF_1, 0}, // PWM3 - PB9 - { TIM8, IO_TAG(PC6), TIM_Channel_1, TIM8_CC_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_4, 0}, // PWM4 - PC6 - { TIM8, IO_TAG(PC7), TIM_Channel_2, TIM8_CC_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_4, 0}, // PWM5 - PC7 - { TIM8, IO_TAG(PC8), TIM_Channel_3, TIM8_CC_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_4, 0}, // PWM6 - PC8 - { TIM3, IO_TAG(PB1), TIM_Channel_4, TIM3_IRQn, 0, IOCFG_AF_PP_PD, GPIO_AF_2, 0}, // PWM7 - PB1 - { TIM3, IO_TAG(PA4), TIM_Channel_2, TIM3_IRQn, 0, IOCFG_AF_PP_PD, GPIO_AF_2, 0}, // PWM8 - PA2 - { TIM4, IO_TAG(PD12), TIM_Channel_1, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM9 - PD12 - { TIM4, IO_TAG(PD13), TIM_Channel_2, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM10 - PD13 - { TIM4, IO_TAG(PD14), TIM_Channel_3, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM11 - PD14 - { TIM4, IO_TAG(PD15), TIM_Channel_4, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM12 - PD15 - { TIM2, IO_TAG(PA1), TIM_Channel_2, TIM2_IRQn, 0, IOCFG_AF_PP, GPIO_AF_1, 0}, // PWM13 - PA1 - { TIM2, IO_TAG(PA2), TIM_Channel_3, TIM2_IRQn, 0, IOCFG_AF_PP, GPIO_AF_1, 0} // PWM14 - PA2 -}; - diff --git a/src/main/target/STM32F3DISCOVERYMAX7456/target.h b/src/main/target/STM32F3DISCOVERYMAX7456/target.h deleted file mode 100644 index 8fdef97b4..000000000 --- a/src/main/target/STM32F3DISCOVERYMAX7456/target.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Supports the GY-91 MPU9250 and BMP280 development board via SPI1 - * - * Put the MAX7456 on SPI2 instead of an SDCARD - * MAX7456 CS -> PB12 (default) - * Uses the default pins for SPI2: - * #define SPI2_NSS_PIN PB12 - * #define SPI2_SCK_PIN PB13 - * #define SPI2_MISO_PIN PB14 - * #define SPI2_MOSI_PIN PB15 - * - * @author Nathan Tsoi - * - * This software is free software: you can redistribute it and/or modify - * it 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. - * - * This software is distributed in the hope that it 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 . - */ - -#pragma once - -#define TARGET_BOARD_IDENTIFIER "DF3M" // stm32f3 DiscoveryF3 Max7456 - -#define CONFIG_FASTLOOP_PREFERRED_ACC ACC_NONE - -#define LED0 PE8 // Blue LEDs - PE8/PE12 -#define LED0_INVERTED -#define LED1 PE10 // Orange LEDs - PE10/PE14 -#define LED1_INVERTED - -#define BEEPER PE9 // Red LEDs - PE9/PE13 -#define BEEPER_INVERTED - -#define USE_SPI -#define USE_SPI_DEVICE_1 -#define USE_SPI_DEVICE_2 - -#define SPI2_NSS_PIN PB12 -#define SPI2_SCK_PIN PB13 -#define SPI2_MISO_PIN PB14 -#define SPI2_MOSI_PIN PB15 - -//#define USE_SD_CARD -// -//#define SD_DETECT_PIN PC14 -//#define SD_CS_PIN PB12 -//#define SD_SPI_INSTANCE SPI2 - -//#define USE_FLASHFS -//#define USE_FLASH_M25P16 - -//#define M25P16_CS_GPIO GPIOB -//#define M25P16_CS_PIN GPIO_Pin_12 -//#define M25P16_SPI_INSTANCE SPI2 -// SPI1 -// PB5 SPI1_MOSI -// PB4 SPI1_MISO -// PB3 SPI1_SCK -// PA15 SPI1_NSS - -// SPI2 -// PB15 SPI2_MOSI -// PB14 SPI2_MISO -// PB13 SPI2_SCK -// PB12 SPI2_NSS - -#define GYRO - -#define USE_GYRO_L3GD20 -#define L3GD20_SPI SPI1 -#define L3GD20_CS_PIN PE3 -#define GYRO_L3GD20_ALIGN CW270_DEG - -// Support the GY-91 MPU9250 dev board -#define USE_GYRO_MPU6500 -#define USE_GYRO_SPI_MPU6500 -#define MPU6500_CS_PIN PC14 -#define MPU6500_SPI_INSTANCE SPI2 -#define GYRO_MPU6500_ALIGN CW270_DEG_FLIP - -#define ACC -#define USE_ACC_LSM303DLHC -#define USE_ACC_MPU6500 -#define USE_ACC_SPI_MPU6500 -#define ACC_MPU6500_ALIGN CW270_DEG_FLIP - -//#define BARO -//#define BMP280_CS_PIN PB12 -//#define BMP280_SPI_INSTANCE SPI2 -//#define USE_BARO_BMP280 -//#define USE_BARO_SPI_BMP280 - -#define OSD -#define USE_MAX7456 -#define MAX7456_SPI_INSTANCE SPI2 -#define MAX7456_SPI_CS_PIN SPI2_NSS_PIN - -//#define USE_SDCARD -//#define USE_SDCARD_SPI2 -// -//#define SDCARD_SPI_INSTANCE SPI2 -//#define SDCARD_SPI_CS_PIN PB12 -//// SPI2 is on the APB1 bus whose clock runs at 36MHz. Divide to under 400kHz for init: -//#define SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER 128 -//// Divide to under 25MHz for normal operation: -//#define SDCARD_SPI_FULL_SPEED_CLOCK_DIVIDER 2 -// -//// Note, this is the same DMA channel as USART1_RX. Luckily we don't use DMA for USART Rx. -//#define SDCARD_DMA_CHANNEL_TX DMA1_Channel5 -//#define SDCARD_DMA_CHANNEL_TX_COMPLETE_FLAG DMA1_FLAG_TC5 - -// Performance logging for SD card operations: -// #define AFATFS_USE_INTROSPECTIVE_LOGGING - -#define MAG -#define USE_MAG_HMC5883 - -#define USE_VCP -#define USE_USART1 -#define USE_USART2 -#define SERIAL_PORT_COUNT 3 - -// uart2 gpio for shared serial rx/ppm -//#define UART2_TX_PIN GPIO_Pin_5 // PD5 -//#define UART2_RX_PIN GPIO_Pin_6 // PD6 -//#define UART2_GPIO GPIOD -//#define UART2_GPIO_AF GPIO_AF_7 -//#define UART2_TX_PINSOURCE GPIO_PinSource5 -//#define UART2_RX_PINSOURCE GPIO_PinSource6 - -#define USE_I2C -#define I2C_DEVICE (I2CDEV_1) - -#define USE_ADC - -#define ADC_INSTANCE ADC1 -#define ADC_AHB_PERIPHERAL RCC_AHBPeriph_DMA1 -#define ADC_DMA_CHANNEL DMA1_Channel1 - -#define VBAT_ADC_GPIO GPIOC -#define VBAT_ADC_GPIO_PIN GPIO_Pin_0 -#define VBAT_ADC_CHANNEL ADC_Channel_6 - -#define CURRENT_METER_ADC_GPIO GPIOC -#define CURRENT_METER_ADC_GPIO_PIN GPIO_Pin_1 -#define CURRENT_METER_ADC_CHANNEL ADC_Channel_7 - -#define RSSI_ADC_GPIO GPIOC -#define RSSI_ADC_GPIO_PIN GPIO_Pin_2 -#define RSSI_ADC_CHANNEL ADC_Channel_8 - -#define EXTERNAL1_ADC_GPIO GPIOC -#define EXTERNAL1_ADC_GPIO_PIN GPIO_Pin_3 -#define EXTERNAL1_ADC_CHANNEL ADC_Channel_9 - -#define LED_STRIP -#define LED_STRIP_TIMER TIM16 -#define WS2811_GPIO GPIOB -#define WS2811_GPIO_AHB_PERIPHERAL RCC_AHBPeriph_GPIOB -#define WS2811_GPIO_AF GPIO_AF_1 -#define WS2811_PIN GPIO_Pin_8 // TIM16_CH1 -#define WS2811_PIN_SOURCE GPIO_PinSource8 -#define WS2811_TIMER TIM16 -#define WS2811_TIMER_APB2_PERIPHERAL RCC_APB2Periph_TIM16 -#define WS2811_DMA_CHANNEL DMA1_Channel3 -#define WS2811_IRQ DMA1_Channel3_IRQn -#define WS2811_DMA_TC_FLAG DMA1_FLAG_TC3 -#define WS2811_DMA_HANDLER_IDENTIFER DMA1_CH3_HANDLER - -#define LED_STRIP -#define LED_STRIP_TIMER TIM16 - -#define USE_SERIAL_4WAY_BLHELI_INTERFACE - -// IO - 303 in 100pin package -#define TARGET_IO_PORTA 0xffff -#define TARGET_IO_PORTB 0xffff -#define TARGET_IO_PORTC 0xffff -#define TARGET_IO_PORTD 0xffff -#define TARGET_IO_PORTE 0xffff -#define TARGET_IO_PORTF 0x00ff - - -#define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(8) | TIM_N(16) | TIM_N(17)) - -#define TIMER_APB1_PERIPHERALS (RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3 | RCC_APB1Periph_TIM4) -#define TIMER_APB2_PERIPHERALS (RCC_APB2Periph_TIM1 | RCC_APB2Periph_TIM8 | RCC_APB2Periph_TIM16 | RCC_APB2Periph_TIM17) -#define TIMER_AHB_PERIPHERALS (RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB | RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOD) - diff --git a/src/main/target/STM32F3DISCOVERYMAX7456/target.mk b/src/main/target/STM32F3DISCOVERYMAX7456/target.mk deleted file mode 100644 index c8ddcc7dd..000000000 --- a/src/main/target/STM32F3DISCOVERYMAX7456/target.mk +++ /dev/null @@ -1,18 +0,0 @@ -F3_TARGETS += $(TARGET) -FEATURES = VCP MAX_OSD - -TARGET_SRC = \ - drivers/light_ws2811strip.c \ - drivers/accgyro_mpu.c \ - drivers/accgyro_l3gd20.c \ - drivers/accgyro_lsm303dlhc.c \ - drivers/compass_hmc5883l.c \ - drivers/accgyro_adxl345.c \ - drivers/accgyro_bma280.c \ - drivers/accgyro_mma845x.c \ - drivers/accgyro_mpu6500.c \ - drivers/accgyro_spi_mpu6500.c \ - drivers/accgyro_l3g4200d.c \ - drivers/barometer_ms5611.c \ - drivers/barometer_bmp280.c \ - drivers/compass_ak8975.c