1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-26 09:45:37 +03:00

Change selected F411 targets to use timer dshot instead of bitb… (#8978)

Change selected F411 targets to use timer dshot instead of bitbang dshot
This commit is contained in:
Michael Keller 2019-10-17 00:19:41 +13:00 committed by GitHub
commit c37a7c91a2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
57 changed files with 78 additions and 58 deletions

View file

@ -766,7 +766,7 @@ const clivalue_t valueTable[] = {
#ifdef USE_DSHOT
{ "dshot_idle_value", VAR_UINT16 | MASTER_VALUE, .config.minmaxUnsigned = { 0, 2000 }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, digitalIdleOffsetValue) },
#ifdef USE_DSHOT_DMAR
{ "dshot_burst", VAR_UINT8 | HARDWARE_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, dev.useBurstDshot) },
{ "dshot_burst", VAR_UINT8 | HARDWARE_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON_AUTO }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, dev.useBurstDshot) },
#endif
#ifdef USE_DSHOT_TELEMETRY
{ "dshot_bidir", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, dev.useDshotTelemetry) },

View file

@ -172,9 +172,8 @@ motorDevice_t *dshotPwmDevInit(const motorDevConfig_t *motorConfig, uint16_t idl
case PWM_TYPE_DSHOT150:
loadDmaBuffer = loadDmaBufferDshot;
#ifdef USE_DSHOT_DMAR
if (motorConfig->useBurstDshot) {
useBurstDshot = true;
}
useBurstDshot = motorConfig->useBurstDshot == DSHOT_DMAR_ON ||
(motorConfig->useBurstDshot == DSHOT_DMAR_AUTO && !motorConfig->useDshotTelemetry);
#endif
break;
}

View file

@ -510,7 +510,7 @@ static void validateAndFixConfig(void)
}
#if defined(USE_DSHOT_TELEMETRY)
if ((!usingDshotProtocol || (motorConfig()->dev.useDshotBitbang == DSHOT_BITBANG_OFF && motorConfig()->dev.useBurstDshot) || systemConfig()->schedulerOptimizeRate == SCHEDULER_OPTIMIZE_RATE_OFF)
if ((!usingDshotProtocol || (motorConfig()->dev.useDshotBitbang == DSHOT_BITBANG_OFF && motorConfig()->dev.useBurstDshot == DSHOT_DMAR_ON) || systemConfig()->schedulerOptimizeRate == SCHEDULER_OPTIMIZE_RATE_OFF)
&& motorConfig()->dev.useDshotTelemetry) {
motorConfigMutable()->dev.useDshotTelemetry = false;
}

View file

@ -31,6 +31,12 @@ typedef enum {
DSHOT_BITBANGED_TIMER_TIM8,
} dshotBitbangedTimer_e;
typedef enum {
DSHOT_DMAR_OFF,
DSHOT_DMAR_ON,
DSHOT_DMAR_AUTO
} dshotDmar_e;
typedef struct motorDevConfig_s {
uint16_t motorPwmRate; // The update rate of motor outputs (50-498Hz)
uint8_t motorPwmProtocol; // Pwm Protocol

View file

@ -32,7 +32,7 @@
#define USBD_PRODUCT_STRING "Asgard32 F7"
#endif
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// Note, beeper is on the LED pin
#define LED0_PIN PC13

View file

@ -28,7 +28,7 @@
#define BEEPER_PIN PB5
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define INVERTER_PIN_UART1 PC0

View file

@ -29,7 +29,7 @@
#define BEEPER_PIN PB0
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// *************** Gyro & ACC **********************
#define USE_SPI

View file

@ -29,7 +29,7 @@
#define BEEPER_PIN PB2
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_TARGET_CONFIG

View file

@ -30,7 +30,7 @@
#define BEEPER_INVERTED
// Tim_UP 1 (motors 1 & 2) conflicts with Tim 4 Ch 3 (LED_STRIP)
#define ENABLE_DSHOT_DMAR false
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_OFF
// ICM20689 interrupt
#define USE_EXTI

View file

@ -28,7 +28,7 @@
#define BEEPER_PIN PC15
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USABLE_TIMER_CHANNEL_COUNT 10

View file

@ -32,7 +32,7 @@
#define BEEPER_INVERTED
#define BEEPER_PWM_HZ 3800 // Beeper PWM frequency in Hz
#define ENABLE_DSHOT_DMAR false // Motors 3 / 4 conflict with LED_STRIP if enabled
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_OFF // Motors 3 / 4 conflict with LED_STRIP if enabled
#define INVERTER_PIN_UART1 PC0 // PC0 used as inverter select GPIO

View file

@ -23,7 +23,7 @@
#define USBD_PRODUCT_STRING "CLRACINGF7"
#define USE_TARGET_CONFIG
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PB0
#define USE_BEEPER

View file

@ -59,7 +59,7 @@
#undef USE_TELEMETRY_SRXL
#endif
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PB3
#define USE_BEEPER

View file

@ -139,7 +139,7 @@
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PA3

View file

@ -23,7 +23,7 @@
#define TARGET_BOARD_IDENTIFIER "DLF7"
#define USBD_PRODUCT_STRING "DALRCF722DUAL"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PC14
#define USE_BEEPER

View file

@ -121,7 +121,7 @@
#define SERIALRX_UART SERIAL_PORT_USART1
#define DEFAULT_MIXER MIXER_QUADX
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PB6

View file

@ -24,7 +24,7 @@
#define USBD_PRODUCT_STRING "EXF722DUAL"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PC4

View file

@ -30,7 +30,7 @@
#define TARGET_BOARD_IDENTIFIER "PIKO" // Furious FPV PIKOBLX
#endif
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define REMAP_TIM16_DMA

View file

@ -24,7 +24,7 @@
#define TARGET_BOARD_IDENTIFIER "FWF7"
#define USBD_PRODUCT_STRING "FLYWOOF7DUAL"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PC15

View file

@ -136,7 +136,7 @@
#define CURRENT_METER_SCALE_DEFAULT 166
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PA3

View file

@ -23,7 +23,7 @@
#define TARGET_BOARD_IDENTIFIER "FXF7"
#define USBD_PRODUCT_STRING "FOXEER722DUAL"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PC15
#define USE_BEEPER

View file

@ -139,7 +139,7 @@
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PA3

View file

@ -113,7 +113,7 @@
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_BEEPER
#define BEEPER_PIN PC14

View file

@ -85,7 +85,7 @@
#define FLASH_CS_PIN PB12
#define FLASH_SPI_INSTANCE SPI2
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_VCP

View file

@ -22,7 +22,7 @@
#define TARGET_BOARD_IDENTIFIER "IMF3"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PB7

View file

@ -25,7 +25,7 @@
#define TARGET_BOARD_IDENTIFIER "JH7D"
#define USBD_PRODUCT_STRING "JHEF7DUAL"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PA15

View file

@ -30,7 +30,7 @@
#define BEEPER_PIN PB0
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON

View file

@ -32,7 +32,8 @@
#define BEEPER_PIN PB2
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_AUTO
#define DSHOT_BITBANG_DEFAULT DSHOT_BITBANG_OFF
// ******* INVERTER PIN ********
@ -123,4 +124,4 @@
#define TARGET_IO_PORTD (BIT(2))
#define USABLE_TIMER_CHANNEL_COUNT 8
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(10) | TIM_N(11) )
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(10) | TIM_N(11) )

View file

@ -34,7 +34,7 @@
#define BEEPER_PIN PB2
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_PINIO
#define PINIO1_PIN PB0 // Bluetooth mode control, PB0 is connected to the 36 pin (P2.0) of the Bluetooth chip. Replace PB0 with the pin for your flight control and 36-pin connection
@ -157,4 +157,4 @@
#define TARGET_IO_PORTD (BIT(2))
#define USABLE_TIMER_CHANNEL_COUNT 7
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(4) | TIM_N(8) | TIM_N(11) )
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(4) | TIM_N(8) | TIM_N(11) )

View file

@ -30,7 +30,7 @@
#define BEEPER_PIN PC13
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// *************** Gyro & ACC **********************
#define USE_SPI

View file

@ -30,6 +30,9 @@
#define BEEPER_PIN PB2
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_AUTO
#define DSHOT_BITBANG_DEFAULT DSHOT_BITBANG_OFF
// *************** Gyro & ACC **********************
#define USE_SPI
#define USE_SPI_DEVICE_1
@ -122,4 +125,3 @@
#define USABLE_TIMER_CHANNEL_COUNT 10
#define USED_TIMERS ( TIM_N(1)|TIM_N(2)|TIM_N(3)|TIM_N(4)|TIM_N(5)|TIM_N(9) )

View file

@ -42,6 +42,9 @@
#define USE_SPI
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_AUTO
#define DSHOT_BITBANG_DEFAULT DSHOT_BITBANG_OFF
// *************** SPI1 Gyro & ACC **********************
#define USE_SPI_DEVICE_1
#define SPI1_SCK_PIN PA5

View file

@ -24,7 +24,7 @@
#define USBD_PRODUCT_STRING "MatekF7"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PB9
#define LED1_PIN PA14

View file

@ -25,7 +25,7 @@
#define TARGET_BOARD_IDENTIFIER "MF7S"
#define USBD_PRODUCT_STRING "MATEKF722SE"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PA14 //Blue SWCLK
#define LED1_PIN PA13 //Green SWDIO

View file

@ -140,7 +140,7 @@
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define CURRENT_METER_SCALE_DEFAULT 179
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PA3

View file

@ -140,7 +140,7 @@
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define CURRENT_METER_SCALE_DEFAULT 179
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PA3

View file

@ -62,7 +62,7 @@
#define BEEPER_INVERTED
#if defined(OMNIBUSF4SD) || defined(DYSF4PRO)
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#endif
#ifdef OMNIBUSF4SD

View file

@ -29,7 +29,7 @@
#define BEEPER_PIN PC5
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// *************** Gyro & ACC **********************
#define USE_SPI

View file

@ -29,7 +29,7 @@
#define BEEPER_PIN PB0
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// *************** Gyro & ACC **********************
#define USE_SPI

View file

@ -37,7 +37,7 @@
#define BEEPER_PIN PC13
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#ifdef OMNINXT4
#define USE_INVERTER

View file

@ -243,7 +243,7 @@
#define PINIO2_PIN PC14
#define DEFAULT_MIXER MIXER_QUADX
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_TARGET_CONFIG
#define SOFTSERIAL1_TX_PIN PC9
#define SOFTSERIAL2_RX_PIN PA8

View file

@ -39,7 +39,7 @@
#define USE_BEEPER
#define BEEPER_PIN PB4
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_TRANSPONDER

View file

@ -23,7 +23,7 @@
#define TARGET_BOARD_IDENTIFIER "RSF7"
#define USBD_PRODUCT_STRING "RUSHCORE7"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PC13
#define USE_BEEPER

View file

@ -25,7 +25,7 @@
#define USBD_PRODUCT_STRING "skyzone F405"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PC14

View file

@ -30,7 +30,7 @@
#define BEEPER_PIN PC13
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// *************** Gyro & ACC **********************
#define USE_SPI

View file

@ -30,7 +30,7 @@
#define BEEPER_PIN PC13
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// *************** Gyro & ACC **********************
#define USE_SPI

View file

@ -46,7 +46,7 @@
#define BEEPER_PIN PC15
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#if (SPRACINGF4NEO_REV >= 2)
#define INVERTER_PIN_UART2 PB2

View file

@ -33,7 +33,7 @@
//#define DEBUG_MODE DEBUG_DUAL_GYRO_DIFF
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PC4

View file

@ -31,7 +31,7 @@
#define BEEPER_PIN PC13
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_EXTI
#define USE_GYRO_EXTI

View file

@ -30,7 +30,7 @@
#define BEEPER_PIN PC13
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR false
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_OFF
#define USE_EXTI
#define USE_GYRO_EXTI

View file

@ -32,7 +32,7 @@
#define BEEPER_PIN PB5
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_PINIO
#define PINIO1_PIN PB6 //VTX Power Switch

View file

@ -26,7 +26,7 @@
#define USE_TARGET_CONFIG
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PA14

View file

@ -41,7 +41,7 @@
#define LED1_PIN PC14
#endif
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
//define camera control
#if defined(PIRXF4)

View file

@ -30,7 +30,7 @@
#define BEEPER_PIN PC5
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
// *************** Gyro & ACC **********************
#define USE_SPI

View file

@ -23,7 +23,7 @@
#define USBD_PRODUCT_STRING "YUPIF7"
#define ENABLE_DSHOT_DMAR true
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define LED0_PIN PB4

View file

@ -138,3 +138,12 @@
#if defined(USE_DMA_SPEC) && (defined(ADC1_DMA_STREAM) || defined(ADC2_DMA_STREAM) || defined(ADC3_DMA_STREAM))
#error "ADCx_DMA_STREAM defines cannot be used when USE_DMA_OPT is used."
#endif
#define DMARXCAT(s) DMARCAT(s)
#define DMARCAT(s) DMAR_##s
#define DMAR_true 1
#define DMAR_false 1
#if DMARXCAT(ENABLE_DSHOT_DMAR) == 1 || DMARXCAT(ENABLE_DSHOT_DMAR) == 1
#error "Use DSHOT_DMAR_ON or DSHOT_DMAR_OFF instead of boolean values for ENABLE_DSHOT_DMAR"
#endif

View file

@ -161,7 +161,7 @@
// Burst dshot to default off if not configured explicitly by target
#ifndef ENABLE_DSHOT_DMAR
#define ENABLE_DSHOT_DMAR false
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_OFF
#endif
// Some target doesn't define USE_ADC which USE_ADC_INTERNAL depends on