mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-16 12:55:19 +03:00
Merge branch 'master' of http://github.com/borisbstyle/betaflight into name
This commit is contained in:
commit
1d9d6f6bf0
36 changed files with 569 additions and 583 deletions
13
Makefile
13
Makefile
|
@ -546,10 +546,17 @@ VPATH := $(VPATH):$(STDPERIPH_DIR)/src
|
||||||
# Things that might need changing to use different tools
|
# Things that might need changing to use different tools
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Find out if ccache is installed on the system
|
||||||
|
CCACHE := ccache
|
||||||
|
RESULT = $(shell (which $(CCACHE) > /dev/null 2>&1; echo $$?) )
|
||||||
|
ifneq ($(RESULT),0)
|
||||||
|
CCACHE :=
|
||||||
|
endif
|
||||||
|
|
||||||
# Tool names
|
# Tool names
|
||||||
CC = arm-none-eabi-gcc
|
CC := $(CCACHE) arm-none-eabi-gcc
|
||||||
OBJCOPY = arm-none-eabi-objcopy
|
OBJCOPY := arm-none-eabi-objcopy
|
||||||
SIZE = arm-none-eabi-size
|
SIZE := arm-none-eabi-size
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tool options.
|
# Tool options.
|
||||||
|
|
|
@ -24,9 +24,6 @@
|
||||||
#include "build_config.h"
|
#include "build_config.h"
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
||||||
#include "sensors/sensors.h" // FIXME dependency into the main code
|
|
||||||
|
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
#include "accgyro.h"
|
#include "accgyro.h"
|
||||||
#include "adc.h"
|
#include "adc.h"
|
||||||
|
@ -84,7 +81,6 @@ void adcInit(drv_adc_config_t *init)
|
||||||
UNUSED(init);
|
UNUSED(init);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint8_t i;
|
|
||||||
uint8_t configuredAdcChannels = 0;
|
uint8_t configuredAdcChannels = 0;
|
||||||
|
|
||||||
memset(&adcConfig, 0, sizeof(adcConfig));
|
memset(&adcConfig, 0, sizeof(adcConfig));
|
||||||
|
@ -117,9 +113,9 @@ void adcInit(drv_adc_config_t *init)
|
||||||
if (device == ADCINVALID)
|
if (device == ADCINVALID)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
adcDevice_t adc = adcHardware[device];
|
const adcDevice_t adc = adcHardware[device];
|
||||||
|
|
||||||
for (uint8_t i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
for (int i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
||||||
if (!adcConfig[i].tag)
|
if (!adcConfig[i].tag)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -163,7 +159,7 @@ void adcInit(drv_adc_config_t *init)
|
||||||
ADC_Init(adc.ADCx, &ADC_InitStructure);
|
ADC_Init(adc.ADCx, &ADC_InitStructure);
|
||||||
|
|
||||||
uint8_t rank = 1;
|
uint8_t rank = 1;
|
||||||
for (i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
for (int i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
||||||
if (!adcConfig[i].enabled) {
|
if (!adcConfig[i].enabled) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "common/utils.h"
|
|
||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
|
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
|
@ -32,6 +31,8 @@
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "rcc.h"
|
#include "rcc.h"
|
||||||
|
|
||||||
|
#include "common/utils.h"
|
||||||
|
|
||||||
#ifndef ADC_INSTANCE
|
#ifndef ADC_INSTANCE
|
||||||
#define ADC_INSTANCE ADC1
|
#define ADC_INSTANCE ADC1
|
||||||
#endif
|
#endif
|
||||||
|
@ -100,7 +101,6 @@ void adcInit(drv_adc_config_t *init)
|
||||||
ADC_InitTypeDef ADC_InitStructure;
|
ADC_InitTypeDef ADC_InitStructure;
|
||||||
DMA_InitTypeDef DMA_InitStructure;
|
DMA_InitTypeDef DMA_InitStructure;
|
||||||
|
|
||||||
uint8_t i;
|
|
||||||
uint8_t adcChannelCount = 0;
|
uint8_t adcChannelCount = 0;
|
||||||
|
|
||||||
memset(&adcConfig, 0, sizeof(adcConfig));
|
memset(&adcConfig, 0, sizeof(adcConfig));
|
||||||
|
@ -135,7 +135,7 @@ void adcInit(drv_adc_config_t *init)
|
||||||
|
|
||||||
adcDevice_t adc = adcHardware[device];
|
adcDevice_t adc = adcHardware[device];
|
||||||
|
|
||||||
for (uint8_t i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
for (int i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
||||||
if (!adcConfig[i].tag)
|
if (!adcConfig[i].tag)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ void adcInit(drv_adc_config_t *init)
|
||||||
ADC_Init(adc.ADCx, &ADC_InitStructure);
|
ADC_Init(adc.ADCx, &ADC_InitStructure);
|
||||||
|
|
||||||
uint8_t rank = 1;
|
uint8_t rank = 1;
|
||||||
for (i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
for (int i = 0; i < ADC_CHANNEL_COUNT; i++) {
|
||||||
if (!adcConfig[i].enabled) {
|
if (!adcConfig[i].enabled) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,6 @@
|
||||||
#include "io_impl.h"
|
#include "io_impl.h"
|
||||||
#include "rcc.h"
|
#include "rcc.h"
|
||||||
|
|
||||||
#include "sensors/sensors.h" // FIXME dependency into the main code
|
|
||||||
|
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
#include "accgyro.h"
|
#include "accgyro.h"
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,6 @@
|
||||||
#define SPI_IO_AF_MOSI_CFG IO_CONFIG(GPIO_Mode_AF_PP, GPIO_Speed_50MHz)
|
#define SPI_IO_AF_MOSI_CFG IO_CONFIG(GPIO_Mode_AF_PP, GPIO_Speed_50MHz)
|
||||||
#define SPI_IO_AF_MISO_CFG IO_CONFIG(GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz)
|
#define SPI_IO_AF_MISO_CFG IO_CONFIG(GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz)
|
||||||
#define SPI_IO_CS_CFG IO_CONFIG(GPIO_Mode_Out_PP, GPIO_Speed_50MHz)
|
#define SPI_IO_CS_CFG IO_CONFIG(GPIO_Mode_Out_PP, GPIO_Speed_50MHz)
|
||||||
#else
|
|
||||||
#error "Unknown processor"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -78,15 +78,14 @@ uint8_t ledPolarity = 0
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
uint8_t ledOffset = 0;
|
static uint8_t ledOffset = 0;
|
||||||
|
|
||||||
void ledInit(bool alternative_led)
|
void ledInit(bool alternative_led)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
|
||||||
|
|
||||||
#if defined(LED0_A) || defined(LED1_A) || defined(LED2_A)
|
#if defined(LED0_A) || defined(LED1_A) || defined(LED2_A)
|
||||||
if (alternative_led)
|
if (alternative_led) {
|
||||||
ledOffset = LED_NUMBER;
|
ledOffset = LED_NUMBER;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
UNUSED(alternative_led);
|
UNUSED(alternative_led);
|
||||||
#endif
|
#endif
|
||||||
|
@ -95,7 +94,7 @@ void ledInit(bool alternative_led)
|
||||||
LED1_OFF;
|
LED1_OFF;
|
||||||
LED2_OFF;
|
LED2_OFF;
|
||||||
|
|
||||||
for (i = 0; i < LED_NUMBER; i++) {
|
for (int i = 0; i < LED_NUMBER; i++) {
|
||||||
if (leds[i + ledOffset]) {
|
if (leds[i + ledOffset]) {
|
||||||
IOInit(leds[i + ledOffset], OWNER_LED, RESOURCE_OUTPUT, RESOURCE_INDEX(i));
|
IOInit(leds[i + ledOffset], OWNER_LED, RESOURCE_OUTPUT, RESOURCE_INDEX(i));
|
||||||
IOConfigGPIO(leds[i + ledOffset], IOCFG_OUT_PP);
|
IOConfigGPIO(leds[i + ledOffset], IOCFG_OUT_PP);
|
||||||
|
@ -114,6 +113,6 @@ void ledToggle(int led)
|
||||||
|
|
||||||
void ledSet(int led, bool on)
|
void ledSet(int led, bool on)
|
||||||
{
|
{
|
||||||
bool inverted = (1 << (led + ledOffset)) & ledPolarity;
|
const bool inverted = (1 << (led + ledOffset)) & ledPolarity;
|
||||||
IOWrite(leds[led + ledOffset], on ? inverted : !inverted);
|
IOWrite(leds[led + ledOffset], on ? inverted : !inverted);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define RESOURCE_INDEX(x) x + 1
|
#define RESOURCE_INDEX(x) (x + 1)
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OWNER_FREE = 0,
|
OWNER_FREE = 0,
|
||||||
|
|
|
@ -192,6 +192,11 @@ static void sdcard_deselect(void)
|
||||||
*/
|
*/
|
||||||
static void sdcard_reset(void)
|
static void sdcard_reset(void)
|
||||||
{
|
{
|
||||||
|
if (!sdcard_isInserted()) {
|
||||||
|
sdcard.state = SDCARD_STATE_NOT_PRESENT;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (sdcard.state >= SDCARD_STATE_READY) {
|
if (sdcard.state >= SDCARD_STATE_READY) {
|
||||||
spiSetDivisor(SDCARD_SPI_INSTANCE, SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER);
|
spiSetDivisor(SDCARD_SPI_INSTANCE, SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2926,6 +2926,10 @@ static void cliStatus(char *cmdline)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cliPrintf("Cycle Time: %d, I2C Errors: %d, config size: %d\r\n", cycleTime, i2cErrorCounter, sizeof(master_t));
|
cliPrintf("Cycle Time: %d, I2C Errors: %d, config size: %d\r\n", cycleTime, i2cErrorCounter, sizeof(master_t));
|
||||||
|
|
||||||
|
#ifdef USE_SDCARD
|
||||||
|
cliSdInfo(NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef SKIP_TASK_STATISTICS
|
#ifndef SKIP_TASK_STATISTICS
|
||||||
|
|
|
@ -28,11 +28,12 @@
|
||||||
|
|
||||||
#include "drivers/sensor.h"
|
#include "drivers/sensor.h"
|
||||||
#include "drivers/accgyro.h"
|
#include "drivers/accgyro.h"
|
||||||
#include "sensors/sensors.h"
|
|
||||||
#include "io/beeper.h"
|
#include "io/beeper.h"
|
||||||
#include "io/statusindicator.h"
|
#include "io/statusindicator.h"
|
||||||
#include "sensors/boardalignment.h"
|
|
||||||
|
|
||||||
|
#include "sensors/sensors.h"
|
||||||
|
#include "sensors/boardalignment.h"
|
||||||
#include "sensors/gyro.h"
|
#include "sensors/gyro.h"
|
||||||
|
|
||||||
gyro_t gyro; // gyro access functions
|
gyro_t gyro; // gyro access functions
|
||||||
|
|
|
@ -118,9 +118,15 @@ static bool fakeGyroReadTemp(int16_t *tempData)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool fakeGyroInitStatus(void) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool fakeGyroDetect(gyro_t *gyro)
|
bool fakeGyroDetect(gyro_t *gyro)
|
||||||
{
|
{
|
||||||
gyro->init = fakeGyroInit;
|
gyro->init = fakeGyroInit;
|
||||||
|
gyro->intStatus = fakeGyroInitStatus;
|
||||||
gyro->read = fakeGyroRead;
|
gyro->read = fakeGyroRead;
|
||||||
gyro->temperature = fakeGyroReadTemp;
|
gyro->temperature = fakeGyroReadTemp;
|
||||||
gyro->scale = 1.0f / 16.4f;
|
gyro->scale = 1.0f / 16.4f;
|
||||||
|
@ -143,6 +149,7 @@ bool fakeAccDetect(acc_t *acc)
|
||||||
{
|
{
|
||||||
acc->init = fakeAccInit;
|
acc->init = fakeAccInit;
|
||||||
acc->read = fakeAccRead;
|
acc->read = fakeAccRead;
|
||||||
|
acc->acc_1G = 512*8;
|
||||||
acc->revisionCode = 0;
|
acc->revisionCode = 0;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -584,10 +591,14 @@ void reconfigureAlignment(sensorAlignmentConfig_t *sensorAlignmentConfig)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool sensorsAutodetect(sensorAlignmentConfig_t *sensorAlignmentConfig, uint8_t accHardwareToUse, uint8_t magHardwareToUse, uint8_t baroHardwareToUse, int16_t magDeclinationFromConfig, uint8_t gyroLpf, uint8_t gyroSyncDenominator)
|
bool sensorsAutodetect(sensorAlignmentConfig_t *sensorAlignmentConfig,
|
||||||
|
uint8_t accHardwareToUse,
|
||||||
|
uint8_t magHardwareToUse,
|
||||||
|
uint8_t baroHardwareToUse,
|
||||||
|
int16_t magDeclinationFromConfig,
|
||||||
|
uint8_t gyroLpf,
|
||||||
|
uint8_t gyroSyncDenominator)
|
||||||
{
|
{
|
||||||
int16_t deg, min;
|
|
||||||
|
|
||||||
memset(&acc, 0, sizeof(acc));
|
memset(&acc, 0, sizeof(acc));
|
||||||
memset(&gyro, 0, sizeof(gyro));
|
memset(&gyro, 0, sizeof(gyro));
|
||||||
|
|
||||||
|
@ -605,7 +616,6 @@ bool sensorsAutodetect(sensorAlignmentConfig_t *sensorAlignmentConfig, uint8_t a
|
||||||
detectAcc(accHardwareToUse);
|
detectAcc(accHardwareToUse);
|
||||||
detectBaro(baroHardwareToUse);
|
detectBaro(baroHardwareToUse);
|
||||||
|
|
||||||
|
|
||||||
// Now time to init things, acc first
|
// Now time to init things, acc first
|
||||||
if (sensors(SENSOR_ACC)) {
|
if (sensors(SENSOR_ACC)) {
|
||||||
acc.acc_1G = 256; // set default
|
acc.acc_1G = 256; // set default
|
||||||
|
@ -623,9 +633,8 @@ bool sensorsAutodetect(sensorAlignmentConfig_t *sensorAlignmentConfig, uint8_t a
|
||||||
// FIXME extract to a method to reduce dependencies, maybe move to sensors_compass.c
|
// FIXME extract to a method to reduce dependencies, maybe move to sensors_compass.c
|
||||||
if (sensors(SENSOR_MAG)) {
|
if (sensors(SENSOR_MAG)) {
|
||||||
// calculate magnetic declination
|
// calculate magnetic declination
|
||||||
deg = magDeclinationFromConfig / 100;
|
const int16_t deg = magDeclinationFromConfig / 100;
|
||||||
min = magDeclinationFromConfig % 100;
|
const int16_t min = magDeclinationFromConfig % 100;
|
||||||
|
|
||||||
magneticDeclination = (deg + ((float)min * (1.0f / 60.0f))) * 10; // heading is in 0.1deg units
|
magneticDeclination = (deg + ((float)min * (1.0f / 60.0f))) * 10; // heading is in 0.1deg units
|
||||||
} else {
|
} else {
|
||||||
magneticDeclination = 0.0f; // TODO investigate if this is actually needed if there is no mag sensor or if the value stored in the config should be used.
|
magneticDeclination = 0.0f; // TODO investigate if this is actually needed if there is no mag sensor or if the value stored in the config should be used.
|
||||||
|
|
|
@ -24,10 +24,8 @@
|
||||||
|
|
||||||
#define LED0 PB5 // Blue LED - PB5
|
#define LED0 PB5 // Blue LED - PB5
|
||||||
|
|
||||||
|
|
||||||
#define BEEPER PA0
|
#define BEEPER PA0
|
||||||
|
|
||||||
|
|
||||||
#define USABLE_TIMER_CHANNEL_COUNT 9
|
#define USABLE_TIMER_CHANNEL_COUNT 9
|
||||||
|
|
||||||
// MPU6050 interrupts
|
// MPU6050 interrupts
|
||||||
|
@ -44,7 +42,6 @@
|
||||||
#define GYRO_MPU6050_ALIGN CW180_DEG
|
#define GYRO_MPU6050_ALIGN CW180_DEG
|
||||||
|
|
||||||
#define USE_ACC_MPU6050
|
#define USE_ACC_MPU6050
|
||||||
|
|
||||||
#define ACC_MPU6050_ALIGN CW180_DEG
|
#define ACC_MPU6050_ALIGN CW180_DEG
|
||||||
|
|
||||||
#define USE_GYRO_SPI_MPU6000
|
#define USE_GYRO_SPI_MPU6000
|
||||||
|
@ -52,7 +49,6 @@
|
||||||
#define USE_ACC_SPI_MPU6000
|
#define USE_ACC_SPI_MPU6000
|
||||||
#define ACC_MPU6000_ALIGN CW180_DEG
|
#define ACC_MPU6000_ALIGN CW180_DEG
|
||||||
|
|
||||||
#define MPU6000_CS_GPIO GPIOB
|
|
||||||
#define MPU6000_CS_PIN PB12
|
#define MPU6000_CS_PIN PB12
|
||||||
#define MPU6000_SPI_INSTANCE SPI2
|
#define MPU6000_SPI_INSTANCE SPI2
|
||||||
|
|
||||||
|
@ -74,7 +70,6 @@
|
||||||
#define UART2_TX_PIN PB3
|
#define UART2_TX_PIN PB3
|
||||||
#define UART2_RX_PIN PB4
|
#define UART2_RX_PIN PB4
|
||||||
|
|
||||||
|
|
||||||
#define UART3_TX_PIN PB10 //(AF7)
|
#define UART3_TX_PIN PB10 //(AF7)
|
||||||
#define UART3_RX_PIN PB11 //(AF7)
|
#define UART3_RX_PIN PB11 //(AF7)
|
||||||
|
|
||||||
|
|
|
@ -26,14 +26,14 @@
|
||||||
#define HW_PIN PB2
|
#define HW_PIN PB2
|
||||||
|
|
||||||
// LED's V1
|
// LED's V1
|
||||||
#define LED0 PB4 // LED - PB4
|
#define LED0 PB4
|
||||||
#define LED1 PB5 // LED - PB5
|
#define LED1 PB5
|
||||||
|
|
||||||
// LED's V2
|
// LED's V2
|
||||||
#define LED0_A PB8 // LED - PB8
|
#define LED0_A PB8
|
||||||
#define LED1_A PB9 // LED - PB9
|
#define LED1_A PB9
|
||||||
|
|
||||||
#define BEEPER PA5 // LED - PA5
|
#define BEEPER PA5
|
||||||
|
|
||||||
#define USABLE_TIMER_CHANNEL_COUNT 11
|
#define USABLE_TIMER_CHANNEL_COUNT 11
|
||||||
|
|
||||||
|
@ -65,7 +65,6 @@
|
||||||
// option to use MPU9150 or MPU9250 integrated AK89xx Mag
|
// option to use MPU9150 or MPU9250 integrated AK89xx Mag
|
||||||
#define MAG
|
#define MAG
|
||||||
#define USE_MAG_AK8963
|
#define USE_MAG_AK8963
|
||||||
|
|
||||||
#define MAG_AK8963_ALIGN CW0_DEG_FLIP
|
#define MAG_AK8963_ALIGN CW0_DEG_FLIP
|
||||||
|
|
||||||
#define USE_VCP
|
#define USE_VCP
|
||||||
|
@ -74,14 +73,14 @@
|
||||||
#define USE_UART3 // Not connected - 10/RX (PB11) 11/TX (PB10)
|
#define USE_UART3 // Not connected - 10/RX (PB11) 11/TX (PB10)
|
||||||
#define SERIAL_PORT_COUNT 4
|
#define SERIAL_PORT_COUNT 4
|
||||||
|
|
||||||
#define UART1_TX_PIN PB6 // PB6
|
#define UART1_TX_PIN PB6
|
||||||
#define UART1_RX_PIN PB7 // PB7
|
#define UART1_RX_PIN PB7
|
||||||
|
|
||||||
#define UART2_TX_PIN PA2 // PA2
|
#define UART2_TX_PIN PA2
|
||||||
#define UART2_RX_PIN PA3 // PA3
|
#define UART2_RX_PIN PA3
|
||||||
|
|
||||||
#define UART3_TX_PIN PB10 // PB10 (AF7)
|
#define UART3_TX_PIN PB10
|
||||||
#define UART3_RX_PIN PB11 // PB11 (AF7)
|
#define UART3_RX_PIN PB11
|
||||||
|
|
||||||
#define USE_I2C
|
#define USE_I2C
|
||||||
#define I2C_DEVICE (I2CDEV_2) // SDA (PA10/AF4), SCL (PA9/AF4)
|
#define I2C_DEVICE (I2CDEV_2) // SDA (PA10/AF4), SCL (PA9/AF4)
|
||||||
|
@ -130,6 +129,5 @@
|
||||||
#define TARGET_IO_PORTD (BIT(2))
|
#define TARGET_IO_PORTD (BIT(2))
|
||||||
#define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4))
|
#define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4))
|
||||||
|
|
||||||
|
|
||||||
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(15) | TIM_N(17) )
|
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(15) | TIM_N(17) )
|
||||||
|
|
||||||
|
|
|
@ -121,9 +121,7 @@
|
||||||
#define SERIAL_PORT_COUNT 4
|
#define SERIAL_PORT_COUNT 4
|
||||||
|
|
||||||
#define USE_SPI
|
#define USE_SPI
|
||||||
|
|
||||||
#define USE_SPI_DEVICE_1
|
#define USE_SPI_DEVICE_1
|
||||||
|
|
||||||
#define USE_SPI_DEVICE_2
|
#define USE_SPI_DEVICE_2
|
||||||
#define SPI2_NSS_PIN PB12
|
#define SPI2_NSS_PIN PB12
|
||||||
#define SPI2_SCK_PIN PB13
|
#define SPI2_SCK_PIN PB13
|
||||||
|
|
|
@ -25,15 +25,15 @@
|
||||||
#define BOARD_HAS_VOLTAGE_DIVIDER
|
#define BOARD_HAS_VOLTAGE_DIVIDER
|
||||||
#define USE_EXTI
|
#define USE_EXTI
|
||||||
|
|
||||||
#define INVERTER PB15
|
#define LED0 PB6
|
||||||
#define INVERTER_USART USART6
|
#define LED1 PB5
|
||||||
|
#define LED2 PB4
|
||||||
|
|
||||||
#define BEEPER PB7
|
#define BEEPER PB7
|
||||||
#define BEEPER_INVERTED
|
#define BEEPER_INVERTED
|
||||||
|
|
||||||
#define LED0 PB6
|
#define INVERTER PB15
|
||||||
#define LED1 PB5
|
#define INVERTER_USART USART6
|
||||||
#define LED2 PB4
|
|
||||||
|
|
||||||
#define MPU6500_CS_PIN PC4
|
#define MPU6500_CS_PIN PC4
|
||||||
#define MPU6500_SPI_INSTANCE SPI1
|
#define MPU6500_SPI_INSTANCE SPI1
|
||||||
|
|
|
@ -17,13 +17,13 @@
|
||||||
|
|
||||||
#define TARGET_BOARD_IDENTIFIER "CC3D" // CopterControl 3D
|
#define TARGET_BOARD_IDENTIFIER "CC3D" // CopterControl 3D
|
||||||
|
|
||||||
#define LED0 PB3 // PB3 (LED)
|
#define LED0 PB3
|
||||||
|
|
||||||
#define INVERTER PB2 // PB2 (BOOT1) used as inverter select GPIO
|
#define INVERTER PB2 // PB2 (BOOT1) used as inverter select GPIO
|
||||||
#define INVERTER_USART USART1
|
#define INVERTER_USART USART1
|
||||||
|
|
||||||
#define BEEPER PB15 // PB15 (Beeper)
|
#define BEEPER PB15
|
||||||
#define BEEPER_OPT PB2 // PB15 (Beeper)
|
#define BEEPER_OPT PB2
|
||||||
|
|
||||||
#define USE_EXTI
|
#define USE_EXTI
|
||||||
#define USE_MPU_DATA_READY_SIGNAL
|
#define USE_MPU_DATA_READY_SIGNAL
|
||||||
|
|
|
@ -20,9 +20,9 @@
|
||||||
#define TARGET_BOARD_IDENTIFIER "CJM1" // CJMCU
|
#define TARGET_BOARD_IDENTIFIER "CJM1" // CJMCU
|
||||||
#define USE_HARDWARE_REVISION_DETECTION
|
#define USE_HARDWARE_REVISION_DETECTION
|
||||||
|
|
||||||
#define LED0 PC14 // PC14 (LED)
|
#define LED0 PC14
|
||||||
#define LED1 PC13 // PC13 (LED)
|
#define LED1 PC13
|
||||||
#define LED2 PC15 // PC15 (LED)
|
#define LED2 PC15
|
||||||
|
|
||||||
#define ACC
|
#define ACC
|
||||||
#define USE_ACC_MPU6050
|
#define USE_ACC_MPU6050
|
||||||
|
|
|
@ -96,8 +96,8 @@
|
||||||
#define USE_FLASHFS
|
#define USE_FLASHFS
|
||||||
#define USE_FLASH_M25P16
|
#define USE_FLASH_M25P16
|
||||||
|
|
||||||
#define USE_ADC
|
|
||||||
#define BOARD_HAS_VOLTAGE_DIVIDER
|
#define BOARD_HAS_VOLTAGE_DIVIDER
|
||||||
|
#define USE_ADC
|
||||||
#define ADC_INSTANCE ADC2
|
#define ADC_INSTANCE ADC2
|
||||||
#define VBAT_ADC_PIN PA5
|
#define VBAT_ADC_PIN PA5
|
||||||
//#define CURRENT_METER_ADC_PIN PA5
|
//#define CURRENT_METER_ADC_PIN PA5
|
||||||
|
|
|
@ -22,10 +22,10 @@
|
||||||
|
|
||||||
#define BOARD_HAS_VOLTAGE_DIVIDER
|
#define BOARD_HAS_VOLTAGE_DIVIDER
|
||||||
|
|
||||||
#define LED0 PB3 // PB3 (LED)
|
#define LED0 PB3
|
||||||
#define LED1 PB4 // PB4 (LED)
|
#define LED1 PB4
|
||||||
|
|
||||||
#define BEEPER PA12 // PA12 (Beeper)
|
#define BEEPER PA12
|
||||||
#ifdef AFROMINI
|
#ifdef AFROMINI
|
||||||
#define BEEPER_INVERTED
|
#define BEEPER_INVERTED
|
||||||
#endif
|
#endif
|
||||||
|
@ -62,9 +62,7 @@
|
||||||
#define MPU6500_CS_PIN NAZE_SPI_CS_PIN
|
#define MPU6500_CS_PIN NAZE_SPI_CS_PIN
|
||||||
#define MPU6500_SPI_INSTANCE NAZE_SPI_INSTANCE
|
#define MPU6500_SPI_INSTANCE NAZE_SPI_INSTANCE
|
||||||
|
|
||||||
|
|
||||||
#define USE_FLASHFS
|
#define USE_FLASHFS
|
||||||
|
|
||||||
#define USE_FLASH_M25P16
|
#define USE_FLASH_M25P16
|
||||||
|
|
||||||
#define EXTI_CALLBACK_HANDLER_COUNT 3 // MPU data ready, MAG data ready, BMP085 EOC
|
#define EXTI_CALLBACK_HANDLER_COUNT 3 // MPU data ready, MAG data ready, BMP085 EOC
|
||||||
|
@ -82,7 +80,6 @@
|
||||||
#define USE_GYRO_MPU6500
|
#define USE_GYRO_MPU6500
|
||||||
#define USE_GYRO_SPI_MPU6500
|
#define USE_GYRO_SPI_MPU6500
|
||||||
|
|
||||||
|
|
||||||
#define GYRO_MPU3050_ALIGN CW0_DEG
|
#define GYRO_MPU3050_ALIGN CW0_DEG
|
||||||
#define GYRO_MPU6050_ALIGN CW0_DEG
|
#define GYRO_MPU6050_ALIGN CW0_DEG
|
||||||
#define GYRO_MPU6500_ALIGN CW0_DEG
|
#define GYRO_MPU6500_ALIGN CW0_DEG
|
||||||
|
@ -108,7 +105,6 @@
|
||||||
|
|
||||||
#define MAG
|
#define MAG
|
||||||
#define USE_MAG_HMC5883
|
#define USE_MAG_HMC5883
|
||||||
|
|
||||||
#define MAG_HMC5883_ALIGN CW180_DEG
|
#define MAG_HMC5883_ALIGN CW180_DEG
|
||||||
|
|
||||||
#define SONAR
|
#define SONAR
|
||||||
|
|
|
@ -85,20 +85,18 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
||||||
{ TIM3, IO_TAG(PB4), TIM_Channel_1, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_2 }, // PPM - PB4
|
{ TIM3, IO_TAG(PB4), TIM_Channel_1, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_2 }, // PPM - PB4
|
||||||
// PB5 / TIM3 CH2 is connected to USBPresent
|
// PB5 / TIM3 CH2 is connected to USBPresent
|
||||||
|
|
||||||
// Used by SPI1, MAX7456
|
{ TIM4, IO_TAG(PB8), TIM_Channel_3, TIM4_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2 }, // PWM1 - PB8
|
||||||
//{ TIM16, IO_TAG(PA6), TIM_Channel_1, TIM1_UP_TIM16_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM1 - PA6
|
{ TIM4, IO_TAG(PB9), TIM_Channel_4, TIM4_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2 }, // PWM2 - PB9
|
||||||
//{ TIM17, IO_TAG(PA7), TIM_Channel_1, TIM1_TRG_COM_TIM17_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM2 - PA7
|
{ TIM15, IO_TAG(PA2), TIM_Channel_1, TIM1_BRK_TIM15_IRQn, 1, IOCFG_AF_PP, GPIO_AF_9 }, // PWM3 - PA2
|
||||||
|
{ TIM15, IO_TAG(PA3), TIM_Channel_2, TIM1_BRK_TIM15_IRQn, 1, IOCFG_AF_PP, GPIO_AF_9 }, // PWM4 - PA3
|
||||||
{ TIM4, IO_TAG(PB8), TIM_Channel_3, TIM4_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2 }, // PWM3 - PB8
|
|
||||||
{ TIM4, IO_TAG(PB9), TIM_Channel_4, TIM4_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2 }, // PWM4 - PB9
|
|
||||||
{ TIM15, IO_TAG(PA2), TIM_Channel_1, TIM1_BRK_TIM15_IRQn, 1, IOCFG_AF_PP, GPIO_AF_9 }, // PWM5 - PA2
|
|
||||||
{ TIM15, IO_TAG(PA3), TIM_Channel_2, TIM1_BRK_TIM15_IRQn, 1, IOCFG_AF_PP, GPIO_AF_9 }, // PWM6 - PA3
|
|
||||||
{ TIM2, IO_TAG(PA0), TIM_Channel_1, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM7 - PA0
|
|
||||||
{ TIM2, IO_TAG(PA1), TIM_Channel_2, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM8 - PA1
|
|
||||||
|
|
||||||
// UART3 RX/TX
|
// UART3 RX/TX
|
||||||
{ TIM2, IO_TAG(PB10), TIM_Channel_3, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM9 - PB10 - TIM2_CH3 / UART3_TX (AF7)
|
{ TIM2, IO_TAG(PB10), TIM_Channel_3, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM5 - PB10 - TIM2_CH3 / UART3_TX (AF7)
|
||||||
{ TIM2, IO_TAG(PB11), TIM_Channel_4, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM10 - PB11 - TIM2_CH4 / UART3_RX (AF7)
|
{ TIM2, IO_TAG(PB11), TIM_Channel_4, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // PWM6 - PB11 - TIM2_CH4 / UART3_RX (AF7)
|
||||||
|
|
||||||
|
// SDA / SCL
|
||||||
|
{ TIM4, IO_TAG(PB7), TIM_Channel_2, TIM4_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2 }, // PWM7 - PB7
|
||||||
|
{ TIM4, IO_TAG(PB6), TIM_Channel_1, TIM4_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2 }, // PWM8 - PB6
|
||||||
|
|
||||||
// LED Strip Pad
|
// LED Strip Pad
|
||||||
{ TIM1, IO_TAG(PA8), TIM_Channel_1, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_6 }, // GPIO_TIMER / LED_STRIP
|
{ TIM1, IO_TAG(PA8), TIM_Channel_1, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_6 }, // GPIO_TIMER / LED_STRIP
|
||||||
|
|
|
@ -30,39 +30,38 @@
|
||||||
|
|
||||||
#define EXTI15_10_CALLBACK_HANDLER_COUNT 2 // MPU_INT, SDCardDetect
|
#define EXTI15_10_CALLBACK_HANDLER_COUNT 2 // MPU_INT, SDCardDetect
|
||||||
|
|
||||||
#define USE_EXTI
|
|
||||||
#define MPU_INT_EXTI PC13
|
|
||||||
#define USE_MPU_DATA_READY_SIGNAL
|
#define USE_MPU_DATA_READY_SIGNAL
|
||||||
#define ENSURE_MPU_DATA_READY_IS_LOW
|
#define EXTI_CALLBACK_HANDLER_COUNT 2 // MPU data ready (mag disabled)
|
||||||
|
#define MPU_INT_EXTI PC13
|
||||||
#define USE_MAG_DATA_READY_SIGNAL
|
#define USE_EXTI
|
||||||
#define ENSURE_MAG_DATA_READY_IS_HIGH
|
|
||||||
|
|
||||||
|
#define MPU6000_SPI_INSTANCE SPI1
|
||||||
|
#define MPU6000_CS_PIN PA4
|
||||||
|
|
||||||
#define GYRO
|
#define GYRO
|
||||||
//#define USE_FAKE_GYRO
|
#define USE_GYRO_SPI_MPU6000
|
||||||
#define USE_GYRO_MPU6500
|
#define GYRO_MPU6000_ALIGN CW90_DEG
|
||||||
|
|
||||||
#define ACC
|
#define ACC
|
||||||
//#define USE_FAKE_ACC
|
#define USE_ACC_SPI_MPU6000
|
||||||
#define USE_ACC_MPU6500
|
#define ACC_MPU6000_ALIGN CW90_DEG
|
||||||
|
|
||||||
#define ACC_MPU6500_ALIGN CW180_DEG
|
#define BMP280_SPI_INSTANCE SPI1
|
||||||
#define GYRO_MPU6500_ALIGN CW180_DEG
|
#define BMP280_CS_PIN PA13
|
||||||
|
|
||||||
#define BARO
|
#define BARO
|
||||||
#define USE_BARO_BMP280
|
#define USE_BARO_BMP280
|
||||||
|
#define USE_BARO_SPI_BMP280
|
||||||
|
|
||||||
#define MAG
|
//#define MAG
|
||||||
#define USE_MPU9250_MAG // Enables bypass configuration
|
//#define USE_MAG_AK8975
|
||||||
#define USE_MAG_AK8975
|
//#define USE_MAG_HMC5883 // External
|
||||||
#define USE_MAG_HMC5883 // External
|
//
|
||||||
|
//#define MAG_AK8975_ALIGN CW90_DEG_FLIP
|
||||||
|
|
||||||
#define MAG_AK8975_ALIGN CW90_DEG_FLIP
|
//#define SONAR
|
||||||
|
//#define SONAR_ECHO_PIN PB1
|
||||||
#define SONAR
|
//#define SONAR_TRIGGER_PIN PB0
|
||||||
#define SONAR_ECHO_PIN PB1
|
|
||||||
#define SONAR_TRIGGER_PIN PB0
|
|
||||||
|
|
||||||
#define USB_IO
|
#define USB_IO
|
||||||
#define USB_CABLE_DETECTION
|
#define USB_CABLE_DETECTION
|
||||||
|
@ -73,8 +72,7 @@
|
||||||
#define USE_UART1
|
#define USE_UART1
|
||||||
#define USE_UART2
|
#define USE_UART2
|
||||||
#define USE_UART3
|
#define USE_UART3
|
||||||
#define USE_SOFTSERIAL1
|
#define SERIAL_PORT_COUNT 4
|
||||||
#define SERIAL_PORT_COUNT 5
|
|
||||||
|
|
||||||
#define UART1_TX_PIN PA9 // PA9
|
#define UART1_TX_PIN PA9 // PA9
|
||||||
#define UART1_RX_PIN PA10 // PA10
|
#define UART1_RX_PIN PA10 // PA10
|
||||||
|
@ -85,13 +83,8 @@
|
||||||
#define UART3_TX_PIN PB10 // PB10 (AF7)
|
#define UART3_TX_PIN PB10 // PB10 (AF7)
|
||||||
#define UART3_RX_PIN PB11 // PB11 (AF7)
|
#define UART3_RX_PIN PB11 // PB11 (AF7)
|
||||||
|
|
||||||
#define SOFTSERIAL_1_TIMER TIM2
|
//#define USE_I2C
|
||||||
#define SOFTSERIAL_1_TIMER_RX_HARDWARE 9 // PA0 / PAD3
|
//#define I2C_DEVICE (I2CDEV_1) // PB6/SCL, PB7/SDA
|
||||||
#define SOFTSERIAL_1_TIMER_TX_HARDWARE 10 // PA1 / PAD4
|
|
||||||
|
|
||||||
#define USE_I2C
|
|
||||||
#define I2C_DEVICE (I2CDEV_1) // PB6/SCL, PB7/SDA
|
|
||||||
|
|
||||||
|
|
||||||
#define USE_SPI
|
#define USE_SPI
|
||||||
#define USE_SPI_DEVICE_1
|
#define USE_SPI_DEVICE_1
|
||||||
|
@ -108,14 +101,13 @@
|
||||||
// include the max7456 driver
|
// include the max7456 driver
|
||||||
#define USE_MAX7456
|
#define USE_MAX7456
|
||||||
#define MAX7456_SPI_INSTANCE SPI1
|
#define MAX7456_SPI_INSTANCE SPI1
|
||||||
#define MAX7456_SPI_CS_PIN SPI1_NSS_PIN
|
#define MAX7456_SPI_CS_PIN PB1
|
||||||
#define MAX7456_DMA_CHANNEL_TX DMA1_Channel3
|
//#define MAX7456_DMA_CHANNEL_TX DMA1_Channel3
|
||||||
//#define MAX7456_DMA_CHANNEL_RX DMA1_Channel2 // <- Conflicts with WS2811 DMA
|
//#define MAX7456_DMA_CHANNEL_RX DMA1_Channel2
|
||||||
#define MAX7456_DMA_IRQ_HANDLER_ID DMA1_CH3_HANDLER
|
//#define MAX7456_DMA_IRQ_HANDLER_ID DMA1_CH3_HANDLER
|
||||||
|
|
||||||
#define USE_SPI
|
#define USE_SPI
|
||||||
#define USE_SPI_DEVICE_2 // PB12,13,14,15 on AF5
|
#define USE_SPI_DEVICE_2 // PB12,13,14,15 on AF5
|
||||||
#define I2C_DEVICE (I2CDEV_1) // PB6/SCL, PB7/SDA
|
|
||||||
|
|
||||||
#define SPI2_NSS_PIN PB12
|
#define SPI2_NSS_PIN PB12
|
||||||
#define SPI2_SCK_PIN PB13
|
#define SPI2_SCK_PIN PB13
|
||||||
|
@ -144,15 +136,16 @@
|
||||||
// #define AFATFS_USE_INTROSPECTIVE_LOGGING
|
// #define AFATFS_USE_INTROSPECTIVE_LOGGING
|
||||||
|
|
||||||
#define USE_ADC
|
#define USE_ADC
|
||||||
#define BOARD_HAS_VOLTAGE_DIVIDER
|
//#define BOARD_HAS_VOLTAGE_DIVIDER
|
||||||
#define ADC_INSTANCE ADC2
|
#define VBAT_ADC_PIN PA0
|
||||||
#define VBAT_ADC_PIN PA4
|
#define CURRENT_METER_ADC_PIN PA1
|
||||||
#define CURRENT_METER_ADC_PIN PA5
|
#define ADC_INSTANCE ADC1
|
||||||
#define RSSI_ADC_PIN PB2
|
|
||||||
|
//#define RSSI_ADC_PIN PB1
|
||||||
|
//#define ADC_INSTANCE ADC3
|
||||||
|
|
||||||
|
|
||||||
#define LED_STRIP
|
#define LED_STRIP
|
||||||
|
|
||||||
#define WS2811_PIN PA8
|
#define WS2811_PIN PA8
|
||||||
#define WS2811_TIMER TIM1
|
#define WS2811_TIMER TIM1
|
||||||
#define WS2811_DMA_CHANNEL DMA1_Channel2
|
#define WS2811_DMA_CHANNEL DMA1_Channel2
|
||||||
|
@ -160,25 +153,24 @@
|
||||||
#define WS2811_DMA_TC_FLAG DMA1_FLAG_TC2
|
#define WS2811_DMA_TC_FLAG DMA1_FLAG_TC2
|
||||||
#define WS2811_DMA_HANDLER_IDENTIFER DMA1_CH2_HANDLER
|
#define WS2811_DMA_HANDLER_IDENTIFER DMA1_CH2_HANDLER
|
||||||
|
|
||||||
|
#define TRANSPONDER
|
||||||
|
#define TRANSPONDER_GPIO GPIOA
|
||||||
|
#define TRANSPONDER_GPIO_AHB_PERIPHERAL RCC_AHBPeriph_GPIOA
|
||||||
|
#define TRANSPONDER_GPIO_AF GPIO_AF_6
|
||||||
|
#define TRANSPONDER_PIN GPIO_Pin_8
|
||||||
|
#define TRANSPONDER_PIN_SOURCE GPIO_PinSource8
|
||||||
|
#define TRANSPONDER_TIMER TIM1
|
||||||
|
#define TRANSPONDER_TIMER_APB2_PERIPHERAL RCC_APB2Periph_TIM1
|
||||||
|
#define TRANSPONDER_DMA_CHANNEL DMA1_Channel2
|
||||||
|
#define TRANSPONDER_IRQ DMA1_Channel2_IRQn
|
||||||
|
#define TRANSPONDER_DMA_TC_FLAG DMA1_FLAG_TC2
|
||||||
|
#define TRANSPONDER_DMA_HANDLER_IDENTIFER DMA1_CH2_HANDLER
|
||||||
|
|
||||||
//#define TRANSPONDER
|
#define REDUCE_TRANSPONDER_CURRENT_DRAW_WHEN_USB_CABLE_PRESENT
|
||||||
//#define TRANSPONDER_GPIO GPIOA
|
|
||||||
//#define TRANSPONDER_GPIO_AHB_PERIPHERAL RCC_AHBPeriph_GPIOA
|
|
||||||
//#define TRANSPONDER_GPIO_AF GPIO_AF_6
|
|
||||||
//#define TRANSPONDER_PIN GPIO_Pin_8
|
|
||||||
//#define TRANSPONDER_PIN_SOURCE GPIO_PinSource8
|
|
||||||
//#define TRANSPONDER_TIMER TIM1
|
|
||||||
//#define TRANSPONDER_TIMER_APB2_PERIPHERAL RCC_APB2Periph_TIM1
|
|
||||||
//#define TRANSPONDER_DMA_CHANNEL DMA1_Channel2
|
|
||||||
//#define TRANSPONDER_IRQ DMA1_Channel2_IRQn
|
|
||||||
//#define TRANSPONDER_DMA_TC_FLAG DMA1_FLAG_TC2
|
|
||||||
//#define TRANSPONDER_DMA_HANDLER_IDENTIFER DMA1_CH2_HANDLER
|
|
||||||
|
|
||||||
//#define REDUCE_TRANSPONDER_CURRENT_DRAW_WHEN_USB_CABLE_PRESENT
|
|
||||||
|
|
||||||
#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT
|
#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT
|
||||||
#define DEFAULT_RX_FEATURE FEATURE_RX_PPM
|
#define DEFAULT_RX_FEATURE FEATURE_RX_PPM
|
||||||
#define DEFAULT_FEATURES FEATURE_BLACKBOX
|
#define DEFAULT_FEATURES (FEATURE_VBAT | FEATURE_CURRENT_METER | FEATURE_BLACKBOX | FEATURE_ONESHOT125)
|
||||||
|
|
||||||
#define BUTTONS
|
#define BUTTONS
|
||||||
#define BUTTON_A_PORT GPIOB
|
#define BUTTON_A_PORT GPIOB
|
||||||
|
@ -201,7 +193,3 @@
|
||||||
#define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4))
|
#define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4))
|
||||||
|
|
||||||
#define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15))
|
#define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15))
|
||||||
|
|
||||||
#define TIMER_APB1_PERIPHERALS (RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3 | RCC_APB1Periph_TIM4)
|
|
||||||
#define TIMER_APB2_PERIPHERALS (RCC_APB2Periph_TIM1 | RCC_APB2Periph_TIM15)
|
|
||||||
#define TIMER_AHB_PERIPHERALS (RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB)
|
|
||||||
|
|
|
@ -3,15 +3,14 @@ FEATURES = VCP SDCARD
|
||||||
|
|
||||||
TARGET_SRC = \
|
TARGET_SRC = \
|
||||||
drivers/accgyro_mpu.c \
|
drivers/accgyro_mpu.c \
|
||||||
drivers/accgyro_mpu6500.c \
|
drivers/accgyro_spi_mpu6000.c \
|
||||||
drivers/barometer_bmp280.c \
|
drivers/barometer_bmp280.c \
|
||||||
drivers/compass_ak8975.c \
|
drivers/barometer_spi_bmp280.c \
|
||||||
drivers/compass_hmc5883l.c \
|
|
||||||
drivers/flash_m25p16.c \
|
|
||||||
drivers/light_ws2811strip.c \
|
drivers/light_ws2811strip.c \
|
||||||
drivers/light_ws2811strip_stm32f30x.c \
|
drivers/light_ws2811strip_stm32f30x.c \
|
||||||
drivers/serial_softserial.c \
|
|
||||||
drivers/serial_usb_vcp.c \
|
drivers/serial_usb_vcp.c \
|
||||||
drivers/sonar_hcsr04.c \
|
drivers/transponder_ir.c \
|
||||||
|
drivers/transponder_ir_stm32f30x.c \
|
||||||
|
io/transponder_ir.c \
|
||||||
drivers/max7456.c \
|
drivers/max7456.c \
|
||||||
io/osd.c
|
io/osd.c
|
||||||
|
|
|
@ -27,7 +27,9 @@
|
||||||
|
|
||||||
#define LED0 PC14
|
#define LED0 PC14
|
||||||
#define LED1 PC13
|
#define LED1 PC13
|
||||||
|
|
||||||
#define BEEPER PC13
|
#define BEEPER PC13
|
||||||
|
|
||||||
#define INVERTER PC15
|
#define INVERTER PC15
|
||||||
#define INVERTER_USART USART2 //Sbus on USART 2 of nano.
|
#define INVERTER_USART USART2 //Sbus on USART 2 of nano.
|
||||||
|
|
||||||
|
@ -96,6 +98,5 @@
|
||||||
#define TARGET_IO_PORTB 0xffff
|
#define TARGET_IO_PORTB 0xffff
|
||||||
#define TARGET_IO_PORTC 0xffff
|
#define TARGET_IO_PORTC 0xffff
|
||||||
|
|
||||||
|
|
||||||
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) )
|
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) )
|
||||||
|
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
#define M25P16_CS_PIN PB12
|
#define M25P16_CS_PIN PB12
|
||||||
#define M25P16_SPI_INSTANCE SPI2
|
#define M25P16_SPI_INSTANCE SPI2
|
||||||
|
|
||||||
#define USE_ADC
|
|
||||||
#define BOARD_HAS_VOLTAGE_DIVIDER
|
#define BOARD_HAS_VOLTAGE_DIVIDER
|
||||||
|
#define USE_ADC
|
||||||
#define ADC_INSTANCE ADC2
|
#define ADC_INSTANCE ADC2
|
||||||
#define VBAT_ADC_PIN PA4
|
#define VBAT_ADC_PIN PA4
|
||||||
#define CURRENT_METER_ADC_PIN PA5
|
#define CURRENT_METER_ADC_PIN PA5
|
||||||
|
|
|
@ -38,12 +38,10 @@
|
||||||
// MPU 9150 INT connected to PA15, pulled up to VCC by 10K Resistor, contains MPU6050 and AK8975 in single component.
|
// MPU 9150 INT connected to PA15, pulled up to VCC by 10K Resistor, contains MPU6050 and AK8975 in single component.
|
||||||
#define GYRO
|
#define GYRO
|
||||||
#define USE_GYRO_MPU6050
|
#define USE_GYRO_MPU6050
|
||||||
|
|
||||||
#define GYRO_MPU6050_ALIGN CW270_DEG
|
#define GYRO_MPU6050_ALIGN CW270_DEG
|
||||||
|
|
||||||
#define ACC
|
#define ACC
|
||||||
#define USE_ACC_MPU6050
|
#define USE_ACC_MPU6050
|
||||||
|
|
||||||
#define ACC_MPU6050_ALIGN CW270_DEG
|
#define ACC_MPU6050_ALIGN CW270_DEG
|
||||||
|
|
||||||
#define BARO
|
#define BARO
|
||||||
|
@ -61,11 +59,11 @@
|
||||||
#define USE_UART3 // Servo out - 10/RX (PB11) 11/TX (PB10)
|
#define USE_UART3 // Servo out - 10/RX (PB11) 11/TX (PB10)
|
||||||
#define SERIAL_PORT_COUNT 4
|
#define SERIAL_PORT_COUNT 4
|
||||||
|
|
||||||
#define UART1_TX_PIN PB6 // PB6
|
#define UART1_TX_PIN PB6
|
||||||
#define UART1_RX_PIN PB7 // PB7
|
#define UART1_RX_PIN PB7
|
||||||
|
|
||||||
#define UART2_TX_PIN PA2 // PA2 - Clashes with PWM6 input.
|
#define UART2_TX_PIN PA2 // PA2 - Clashes with PWM6 input.
|
||||||
#define UART2_RX_PIN PA3 // PA3
|
#define UART2_RX_PIN PA3
|
||||||
|
|
||||||
#define UART3_TX_PIN PB10 // PB10 (AF7)
|
#define UART3_TX_PIN PB10 // PB10 (AF7)
|
||||||
#define UART3_RX_PIN PB11 // PB11 (AF7)
|
#define UART3_RX_PIN PB11 // PB11 (AF7)
|
||||||
|
@ -129,7 +127,5 @@
|
||||||
#define TARGET_IO_PORTB (BIT(0)|BIT(1)|BIT(6)|BIT(10)|BIT(11)|BIT(14)|BIT(15)|BIT(3)|BIT(4)|BIT(5)|BIT(6)|BIT(7)|BIT(8)|BIT(9)|BIT(12)|BIT(13))
|
#define TARGET_IO_PORTB (BIT(0)|BIT(1)|BIT(6)|BIT(10)|BIT(11)|BIT(14)|BIT(15)|BIT(3)|BIT(4)|BIT(5)|BIT(6)|BIT(7)|BIT(8)|BIT(9)|BIT(12)|BIT(13))
|
||||||
#define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4))
|
#define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4))
|
||||||
|
|
||||||
|
|
||||||
#define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(15) | TIM_N(17))
|
#define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(15) | TIM_N(17))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -72,11 +72,11 @@
|
||||||
#define USE_SOFTSERIAL2
|
#define USE_SOFTSERIAL2
|
||||||
#define SERIAL_PORT_COUNT 5
|
#define SERIAL_PORT_COUNT 5
|
||||||
|
|
||||||
#define UART1_TX_PIN PA9 // PA9
|
#define UART1_TX_PIN PA9
|
||||||
#define UART1_RX_PIN PA10 // PA10
|
#define UART1_RX_PIN PA10
|
||||||
|
|
||||||
#define UART2_TX_PIN PA14 // PA14 / SWCLK
|
#define UART2_TX_PIN PA14 // PA14 / SWCLK
|
||||||
#define UART2_RX_PIN PA15 // PA15
|
#define UART2_RX_PIN PA15
|
||||||
|
|
||||||
#define UART3_TX_PIN PB10 // PB10 (AF7)
|
#define UART3_TX_PIN PB10 // PB10 (AF7)
|
||||||
#define UART3_RX_PIN PB11 // PB11 (AF7)
|
#define UART3_RX_PIN PB11 // PB11 (AF7)
|
||||||
|
@ -97,8 +97,8 @@
|
||||||
#define M25P16_CS_PIN PB12
|
#define M25P16_CS_PIN PB12
|
||||||
#define M25P16_SPI_INSTANCE SPI2
|
#define M25P16_SPI_INSTANCE SPI2
|
||||||
|
|
||||||
#define USE_ADC
|
|
||||||
#define BOARD_HAS_VOLTAGE_DIVIDER
|
#define BOARD_HAS_VOLTAGE_DIVIDER
|
||||||
|
#define USE_ADC
|
||||||
#define ADC_INSTANCE ADC2
|
#define ADC_INSTANCE ADC2
|
||||||
#define VBAT_ADC_PIN PA4
|
#define VBAT_ADC_PIN PA4
|
||||||
#define CURRENT_METER_ADC_PIN PA5
|
#define CURRENT_METER_ADC_PIN PA5
|
||||||
|
@ -133,4 +133,3 @@
|
||||||
|
|
||||||
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15) | TIM_N(16) | TIM_N(17) )
|
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15) | TIM_N(16) | TIM_N(17) )
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -117,9 +117,8 @@
|
||||||
#define MPU6500_CS_PIN PB9
|
#define MPU6500_CS_PIN PB9
|
||||||
#define MPU6500_SPI_INSTANCE SPI1
|
#define MPU6500_SPI_INSTANCE SPI1
|
||||||
|
|
||||||
#define USE_ADC
|
|
||||||
#define BOARD_HAS_VOLTAGE_DIVIDER
|
#define BOARD_HAS_VOLTAGE_DIVIDER
|
||||||
|
#define USE_ADC
|
||||||
#define ADC_INSTANCE ADC2
|
#define ADC_INSTANCE ADC2
|
||||||
#define VBAT_ADC_PIN PA4
|
#define VBAT_ADC_PIN PA4
|
||||||
#define CURRENT_METER_ADC_PIN PA5
|
#define CURRENT_METER_ADC_PIN PA5
|
||||||
|
|
|
@ -153,7 +153,6 @@
|
||||||
#define WS2811_DMA_TC_FLAG DMA1_FLAG_TC3
|
#define WS2811_DMA_TC_FLAG DMA1_FLAG_TC3
|
||||||
#define WS2811_DMA_HANDLER_IDENTIFER DMA1_CH3_HANDLER
|
#define WS2811_DMA_HANDLER_IDENTIFER DMA1_CH3_HANDLER
|
||||||
|
|
||||||
#define LED_STRIP
|
|
||||||
#define LED_STRIP_TIMER TIM16
|
#define LED_STRIP_TIMER TIM16
|
||||||
|
|
||||||
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
|
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
|
||||||
|
|
|
@ -223,6 +223,8 @@ static uint32_t rxPackets = 0;
|
||||||
|
|
||||||
static uint16_t VCP_DataRx(uint8_t* Buf, uint32_t Len)
|
static uint16_t VCP_DataRx(uint8_t* Buf, uint32_t Len)
|
||||||
{
|
{
|
||||||
|
__disable_irq();
|
||||||
|
|
||||||
rxPackets++;
|
rxPackets++;
|
||||||
|
|
||||||
for (uint32_t i = 0; i < Len; i++) {
|
for (uint32_t i = 0; i < Len; i++) {
|
||||||
|
@ -232,6 +234,7 @@ static uint16_t VCP_DataRx(uint8_t* Buf, uint32_t Len)
|
||||||
rxTotalBytes++;
|
rxTotalBytes++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__enable_irq();
|
||||||
if(receiveLength > (USB_RX_BUFSIZE-1))
|
if(receiveLength > (USB_RX_BUFSIZE-1))
|
||||||
return USBD_FAIL;
|
return USBD_FAIL;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue