Support for BigQuad deck as a CRAZYFLIE2 variant
Supported features in this commit: - Mag enabled (both CRAZYFLIE2 and CRAZYFLIE2BQ) - Brushless motors - ESC passthrough for BLHeli programming - CPPM Rx input - VBat sensor - Current sensor - GPS Tx/Rx pins enabled - I2C SDA/SCL enabled as UART1 (SDA = Rx, SCL = Tx)
This commit is contained in:
parent
1c1cebc448
commit
5d646717fe
|
@ -680,6 +680,9 @@ _TIM_IRQ_HANDLER(TIM1_TRG_COM_TIM11_IRQHandler, 11);
|
||||||
#if USED_TIMERS & TIM_N(12)
|
#if USED_TIMERS & TIM_N(12)
|
||||||
_TIM_IRQ_HANDLER(TIM8_BRK_TIM12_IRQHandler, 12);
|
_TIM_IRQ_HANDLER(TIM8_BRK_TIM12_IRQHandler, 12);
|
||||||
#endif
|
#endif
|
||||||
|
#if USED_TIMERS & TIM_N(14)
|
||||||
|
_TIM_IRQ_HANDLER(TIM8_TRG_COM_TIM14_IRQHandler, 14);
|
||||||
|
#endif
|
||||||
#if USED_TIMERS & TIM_N(15)
|
#if USED_TIMERS & TIM_N(15)
|
||||||
_TIM_IRQ_HANDLER(TIM1_BRK_TIM15_IRQHandler, 15);
|
_TIM_IRQ_HANDLER(TIM1_BRK_TIM15_IRQHandler, 15);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
# CRAZYFLIE2BQ is a VARIANT of CRAZYFLIE2 with custom config for the BigQuad expansion deck (https://wiki.bitcraze.io/projects:crazyflie2:expansionboards:bigquad)
|
|
@ -21,18 +21,20 @@
|
||||||
#include "drivers/io.h"
|
#include "drivers/io.h"
|
||||||
|
|
||||||
#include "drivers/timer.h"
|
#include "drivers/timer.h"
|
||||||
|
#include "drivers/timer_def.h"
|
||||||
#include "drivers/dma.h"
|
#include "drivers/dma.h"
|
||||||
|
|
||||||
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
||||||
#ifndef CRAZYFLIE2_USE_BIG_QUAD_DECK
|
#if defined(CRAZYFLIE2BQ)
|
||||||
{ TIM2, IO_TAG(PB11), TIM_Channel_4, TIM_USE_MOTOR, 1, GPIO_AF_TIM2, NULL, 0, 0 }, // PWM2 - OUT2 (Motor 2)
|
DEF_TIM(TIM14, CH1, PA7, TIM_USE_PPM, TIMER_INPUT_ENABLED, 0 ), // PPM IN
|
||||||
{ TIM2, IO_TAG(PA1), TIM_Channel_2, TIM_USE_MOTOR, 1, GPIO_AF_TIM2, NULL, 0, 0 }, // PWM1 - OUT1 (Motor 1)
|
DEF_TIM(TIM3, CH1, PB4, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0 ), // PWM1 - OUT1 (Motor 1)
|
||||||
{ TIM2, IO_TAG(PA15), TIM_Channel_1, TIM_USE_MOTOR, 1, GPIO_AF_TIM2, NULL, 0, 0 }, // PWM3 - OUT3 (Motor 3)
|
DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0 ), // PWM2 - OUT2 (Motor 2)
|
||||||
{ TIM4, IO_TAG(PB9), TIM_Channel_4, TIM_USE_MOTOR, 1, GPIO_AF_TIM4, NULL, 0, 0 }, // PWM4 - OUT4 (Motor 4)
|
DEF_TIM(TIM3, CH2, PB5, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0 ), // PWM3 - OUT3 (Motor 3)
|
||||||
|
DEF_TIM(TIM2, CH4, PA3, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0 ), // PWM4 - OUT4 (Motor 4)
|
||||||
#else
|
#else
|
||||||
{ TIM3, IO_TAG(PB4), TIM_Channel_1, TIM_USE_MOTOR, 1, GPIO_AF_TIM3, NULL, 0, 0 }, // PWM2 - OUT2 (Motor 2)
|
DEF_TIM(TIM2, CH4, PB11, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0), // PWM1 - OUT1 (Motor 1)
|
||||||
{ TIM2, IO_TAG(PA2), TIM_Channel_3, TIM_USE_MOTOR, 1, GPIO_AF_TIM2, NULL, 0, 0 }, // PWM1 - OUT1 (Motor 1)
|
DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0), // PWM2 - OUT2 (Motor 2)
|
||||||
{ TIM3, IO_TAG(PB5), TIM_Channel_2, TIM_USE_MOTOR, 1, GPIO_AF_TIM3, NULL, 0, 0 }, // PWM3 - OUT3 (Motor 3)
|
DEF_TIM(TIM2, CH1, PA15, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0), // PWM3 - OUT3 (Motor 3)
|
||||||
{ TIM2, IO_TAG(PA3), TIM_Channel_4, TIM_USE_MOTOR, 1, GPIO_AF_TIM2, NULL, 0, 0 }, // PWM4 - OUT4 (Motor 4)
|
DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED, 0), // PWM4 - OUT4 (Motor 4)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,21 +26,21 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#if defined(CRAZYFLIE2BQ)
|
||||||
|
#define TARGET_BOARD_IDENTIFIER "CFBQ"
|
||||||
|
#define USBD_PRODUCT_STRING "Crazyflie 2.0 (BigQuad Deck)"
|
||||||
|
#else
|
||||||
#define TARGET_BOARD_IDENTIFIER "CF20"
|
#define TARGET_BOARD_IDENTIFIER "CF20"
|
||||||
|
|
||||||
#define USBD_PRODUCT_STRING "Crazyflie 2.0"
|
#define USBD_PRODUCT_STRING "Crazyflie 2.0"
|
||||||
|
#endif
|
||||||
// Uncomment this define to build for the Crazyflie
|
|
||||||
// using the BigQuad expansion deck
|
|
||||||
//#define CRAZYFLIE2_USE_BIG_QUAD_DECK
|
|
||||||
|
|
||||||
#define USABLE_TIMER_CHANNEL_COUNT 14
|
#define USABLE_TIMER_CHANNEL_COUNT 14
|
||||||
#ifndef CRAZYFLIE2_USE_BIG_QUAD_DECK
|
|
||||||
#define USED_TIMERS ( TIM_N(2) | TIM_N(4) )
|
#if defined(CRAZYFLIE2BQ)
|
||||||
#define BRUSHED_MOTORS
|
#define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(14) )
|
||||||
#else
|
#else
|
||||||
#define USED_TIMERS ( TIM_N(2) | TIM_N(3) )
|
#define USED_TIMERS ( TIM_N(2) | TIM_N(4) )
|
||||||
#endif //CRAZYFLIE2_USE_BIG_QUAD_DECK
|
#endif
|
||||||
|
|
||||||
#define LED0 PD2
|
#define LED0 PD2
|
||||||
#define LED1 PC0
|
#define LED1 PC0
|
||||||
|
@ -55,19 +55,25 @@
|
||||||
|
|
||||||
#define USE_VCP
|
#define USE_VCP
|
||||||
|
|
||||||
#define USE_UART2
|
#if defined(CRAZYFLIE2BQ)
|
||||||
#define UART2_TX_PIN PA1
|
#define USE_UART1
|
||||||
#define UART2_RX_PIN PA3
|
#define UART1_TX_PIN PB6
|
||||||
|
#define UART1_RX_PIN PB7
|
||||||
|
|
||||||
#define USE_UART3
|
#define USE_UART3
|
||||||
#define UART3_TX_PIN PC10
|
#define UART3_TX_PIN PC10
|
||||||
#define UART3_RX_PIN PC11
|
#define UART3_RX_PIN PC11
|
||||||
|
#endif
|
||||||
|
|
||||||
#define USE_UART6
|
#define USE_UART6
|
||||||
#define UART6_TX_PIN PC6
|
#define UART6_TX_PIN PC6
|
||||||
#define UART6_RX_PIN PC7
|
#define UART6_RX_PIN PC7
|
||||||
|
|
||||||
|
#if defined(CRAZYFLIE2BQ)
|
||||||
#define SERIAL_PORT_COUNT 4
|
#define SERIAL_PORT_COUNT 4
|
||||||
|
#else
|
||||||
|
#define SERIAL_PORT_COUNT 2
|
||||||
|
#endif
|
||||||
|
|
||||||
#define USE_I2C
|
#define USE_I2C
|
||||||
#define USE_I2C_DEVICE_3
|
#define USE_I2C_DEVICE_3
|
||||||
|
@ -85,17 +91,34 @@
|
||||||
#define USE_ACC_MPU6500
|
#define USE_ACC_MPU6500
|
||||||
#define ACC_MPU6500_ALIGN CW270_DEG
|
#define ACC_MPU6500_ALIGN CW270_DEG
|
||||||
|
|
||||||
// Mag isn't working quite right -- disabling it for now
|
#define MAG
|
||||||
//#define MAG
|
#define USE_MPU9250_MAG // Enables bypass configuration on the MPU9250 I2C bus
|
||||||
//#define USE_MPU9250_MAG // Enables bypass configuration on the MPU9250 I2C bus
|
#define USE_MAG_AK8963
|
||||||
//#define USE_MAG_AK8963
|
#define MAG_AK8963_ALIGN CW270_DEG
|
||||||
//#define MAG_AK8963_ALIGN CW270_DEG
|
|
||||||
|
|
||||||
#define USE_EXTI
|
#define USE_EXTI
|
||||||
#define MPU_INT_EXTI PC13
|
#define MPU_INT_EXTI PC13
|
||||||
|
|
||||||
#define USE_SERIALRX_TARGET_CUSTOM
|
#define USE_SERIALRX_TARGET_CUSTOM
|
||||||
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
|
|
||||||
#define SERIALRX_UART SERIAL_PORT_USART6
|
#define SERIALRX_UART SERIAL_PORT_USART6
|
||||||
#define SERIALRX_PROVIDER SERIALRX_TARGET_CUSTOM
|
#define SERIALRX_PROVIDER SERIALRX_TARGET_CUSTOM
|
||||||
#define RX_CHANNELS_TAER
|
#define RX_CHANNELS_TAER
|
||||||
|
|
||||||
|
#if defined(CRAZYFLIE2BQ)
|
||||||
|
#define DEFAULT_RX_FEATURE FEATURE_RX_PPM
|
||||||
|
#else
|
||||||
|
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CRAZYFLIE2BQ)
|
||||||
|
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
|
||||||
|
|
||||||
|
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
|
||||||
|
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
|
||||||
|
#define USE_ADC
|
||||||
|
#define ADC_INSTANCE ADC1
|
||||||
|
#define CURRENT_METER_ADC_PIN PA5
|
||||||
|
#define VBAT_ADC_PIN PA6
|
||||||
|
#else
|
||||||
|
#define BRUSHED_MOTORS
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue