mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-26 08:22:43 +08:00
[fix] fix some DMA issues and motor pins for DShot on Tawaki (#2450)
also: - activate the mag ahrs update by default - use board not rotated by default
This commit is contained in:
committed by
GitHub
parent
096209b787
commit
7b2050a56f
@@ -20,14 +20,15 @@
|
||||
<define name="IMU_MPU_ACCEL_RANGE" value="MPU60X0_ACCEL_RANGE_8G"/>
|
||||
<configure name="IMU_MPU_SPI_DEV" value="spi4" case="upper|lower"/>
|
||||
<configure name="IMU_MPU_SPI_SLAVE_IDX" value="SPI_SLAVE5"/>
|
||||
<define name="IMU_MPU_CHAN_X" value="1" cond="ifneq (,$(findstring $(BOARD_TAWAKI_ROTATED),0 FALSE))"/>
|
||||
<define name="IMU_MPU_CHAN_Y" value="0" cond="ifneq (,$(findstring $(BOARD_TAWAKI_ROTATED),0 FALSE))"/>
|
||||
<define name="IMU_MPU_Y_SIGN" value="-1" cond="ifneq (,$(findstring $(BOARD_TAWAKI_ROTATED),0 FALSE))"/>
|
||||
<define name="IMU_MPU_CHAN_X" value="1" cond="ifeq (,$(findstring $(BOARD_TAWAKI_ROTATED),1 TRUE))"/>
|
||||
<define name="IMU_MPU_CHAN_Y" value="0" cond="ifeq (,$(findstring $(BOARD_TAWAKI_ROTATED),1 TRUE))"/>
|
||||
<define name="IMU_MPU_Y_SIGN" value="-1" cond="ifeq (,$(findstring $(BOARD_TAWAKI_ROTATED),1 TRUE))"/>
|
||||
<configure name="BMP3_I2C_DEV" value="i2c4" case="upper|lower"/>
|
||||
<define name="BMP3_SLAVE_ADDR" value="BMP3_I2C_ADDR_ALT"/>
|
||||
<configure name="MAG_LIS3MDL_I2C_DEV" value="i2c4" case="upper|lower"/>
|
||||
<define name="LIS3MDL_CHAN_X" value="1" cond="ifneq (,$(findstring $(BOARD_TAWAKI_ROTATED),0 FALSE))"/>
|
||||
<define name="LIS3MDL_CHAN_Y" value="0" cond="ifneq (,$(findstring $(BOARD_TAWAKI_ROTATED),0 FALSE))"/>
|
||||
<define name="LIS3MDL_CHAN_X_SIGN" value="-" cond="ifneq (,$(findstring $(BOARD_TAWAKI_ROTATED),0 FALSE))"/>
|
||||
<define name="MODULE_LIS3MDL_UPDATE_AHRS"/>
|
||||
<define name="LIS3MDL_CHAN_X" value="1" cond="ifeq (,$(findstring $(BOARD_TAWAKI_ROTATED),1 TRUE))"/>
|
||||
<define name="LIS3MDL_CHAN_Y" value="0" cond="ifeq (,$(findstring $(BOARD_TAWAKI_ROTATED),1 TRUE))"/>
|
||||
<define name="LIS3MDL_CHAN_X_SIGN" value="-" cond="ifeq (,$(findstring $(BOARD_TAWAKI_ROTATED),1 TRUE))"/>
|
||||
</makefile>
|
||||
</module>
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "modules/actuators/actuators_dshot.h"
|
||||
#include "modules/actuators/esc_dshot.h"
|
||||
#include "mcu_periph/gpio.h"
|
||||
#include BOARD_CONFIG
|
||||
|
||||
uint16_t actuators_dshot_values[ACTUATORS_DSHOT_NB];
|
||||
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
//#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
|
||||
//#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
|
||||
#define STM32_I2C_I2C4_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
|
||||
#define STM32_I2C_I2C4_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) // FIXME check if 5 is really not possible
|
||||
#define STM32_I2C_I2C4_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
|
||||
#define STM32_I2C_I2C1_IRQ_PRIORITY 5
|
||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
||||
#define STM32_I2C_I2C3_IRQ_PRIORITY 5
|
||||
@@ -297,6 +297,11 @@
|
||||
#define STM32_PWM1_UP_DMA_IRQ_PRIORITY 6
|
||||
#define STM32_PWM1_UP_DMA_PRIORITY 2
|
||||
|
||||
#define STM32_PWM4_UP_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
|
||||
#define STM32_PWM4_UP_DMA_CHANNEL 2
|
||||
#define STM32_PWM4_UP_DMA_IRQ_PRIORITY 6
|
||||
#define STM32_PWM4_UP_DMA_PRIORITY 2
|
||||
|
||||
/*
|
||||
* SERIAL driver system settings.
|
||||
*/
|
||||
|
||||
@@ -319,38 +319,78 @@
|
||||
/**
|
||||
* DSHOT
|
||||
*/
|
||||
#define DSHOT_SERVO_1 0
|
||||
#define DSHOT_SERVO_1_GPIO GPIOE
|
||||
#define DSHOT_SERVO_1_PIN GPIO9
|
||||
#define DSHOT_SERVO_1_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_1_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_1_CHANNEL 0
|
||||
|
||||
#define DSHOT_SERVO_2 1
|
||||
#define DSHOT_SERVO_2_GPIO GPIOE
|
||||
#define DSHOT_SERVO_2_PIN GPIO11
|
||||
#define DSHOT_SERVO_2_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_2_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_2_CHANNEL 1
|
||||
|
||||
#define DSHOT_SERVO_3 2
|
||||
#define DSHOT_SERVO_3_GPIO GPIOE
|
||||
#define DSHOT_SERVO_3_PIN GPIO13
|
||||
#define DSHOT_SERVO_3_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_3_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_3_CHANNEL 2
|
||||
|
||||
#define DSHOT_SERVO_4 3
|
||||
#define DSHOT_SERVO_4_GPIO GPIOE
|
||||
#define DSHOT_SERVO_4_PIN GPIO14
|
||||
#define DSHOT_SERVO_4_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_4_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_4_CHANNEL 3
|
||||
|
||||
#ifndef DSHOT_TELEMETRY_DEV
|
||||
#define DSHOT_TELEMETRY_DEV NULL
|
||||
#endif
|
||||
|
||||
// Servo B1, B2, B3, B4 on TM4 are primary DSHOT connector
|
||||
#define DSHOT_SERVO_1 1
|
||||
#define DSHOT_SERVO_1_GPIO GPIOB
|
||||
#define DSHOT_SERVO_1_PIN GPIO6
|
||||
#define DSHOT_SERVO_1_AF GPIO_AF2
|
||||
#define DSHOT_SERVO_1_DRIVER DSHOTD4
|
||||
#define DSHOT_SERVO_1_CHANNEL 0
|
||||
|
||||
#define DSHOT_SERVO_2 2
|
||||
#define DSHOT_SERVO_2_GPIO GPIOB
|
||||
#define DSHOT_SERVO_2_PIN GPIO7
|
||||
#define DSHOT_SERVO_2_AF GPIO_AF2
|
||||
#define DSHOT_SERVO_2_DRIVER DSHOTD4
|
||||
#define DSHOT_SERVO_2_CHANNEL 1
|
||||
|
||||
#define DSHOT_SERVO_3 3
|
||||
#define DSHOT_SERVO_3_GPIO GPIOB
|
||||
#define DSHOT_SERVO_3_PIN GPIO8
|
||||
#define DSHOT_SERVO_3_AF GPIO_AF2
|
||||
#define DSHOT_SERVO_3_DRIVER DSHOTD4
|
||||
#define DSHOT_SERVO_3_CHANNEL 2
|
||||
|
||||
#define DSHOT_SERVO_4 4
|
||||
#define DSHOT_SERVO_4_GPIO GPIOB
|
||||
#define DSHOT_SERVO_4_PIN GPIO9
|
||||
#define DSHOT_SERVO_4_AF GPIO_AF2
|
||||
#define DSHOT_SERVO_4_DRIVER DSHOTD4
|
||||
#define DSHOT_SERVO_4_CHANNEL 3
|
||||
|
||||
#define DSHOT_CONF_TIM4 1
|
||||
#define DSHOT_CONF4_DEF { \
|
||||
.dma_stream = STM32_PWM4_UP_DMA_STREAM, \
|
||||
.dma_channel = STM32_PWM4_UP_DMA_CHANNEL, \
|
||||
.pwmp = &PWMD4, \
|
||||
.tlm_sd = DSHOT_TELEMETRY_DEV \
|
||||
}
|
||||
|
||||
|
||||
#if USE_DSHOT_TIM1 // Servo A1, A2, A3, A4 on TIM1 only activated if needed
|
||||
|
||||
#define DSHOT_SERVO_5 5
|
||||
#define DSHOT_SERVO_5_GPIO GPIOE
|
||||
#define DSHOT_SERVO_5_PIN GPIO9
|
||||
#define DSHOT_SERVO_5_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_5_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_5_CHANNEL 0
|
||||
|
||||
#define DSHOT_SERVO_6 6
|
||||
#define DSHOT_SERVO_6_GPIO GPIOE
|
||||
#define DSHOT_SERVO_6_PIN GPIO11
|
||||
#define DSHOT_SERVO_6_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_6_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_6_CHANNEL 1
|
||||
|
||||
#define DSHOT_SERVO_7 7
|
||||
#define DSHOT_SERVO_7_GPIO GPIOE
|
||||
#define DSHOT_SERVO_7_PIN GPIO13
|
||||
#define DSHOT_SERVO_7_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_7_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_7_CHANNEL 2
|
||||
|
||||
#define DSHOT_SERVO_8 8
|
||||
#define DSHOT_SERVO_8_GPIO GPIOE
|
||||
#define DSHOT_SERVO_8_PIN GPIO14
|
||||
#define DSHOT_SERVO_8_AF GPIO_AF1
|
||||
#define DSHOT_SERVO_8_DRIVER DSHOTD1
|
||||
#define DSHOT_SERVO_8_CHANNEL 3
|
||||
|
||||
#define DSHOT_CONF_TIM1 1
|
||||
#define DSHOT_CONF1_DEF { \
|
||||
.dma_stream = STM32_PWM1_UP_DMA_STREAM, \
|
||||
@@ -359,6 +399,8 @@
|
||||
.tlm_sd = DSHOT_TELEMETRY_DEV \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* UART2 (Modem with optional flow control on AUXa disabled by default)
|
||||
*/
|
||||
|
||||
@@ -39,10 +39,11 @@
|
||||
#endif
|
||||
|
||||
/** Maxnum number of DSHOT commands
|
||||
* This should be large enough for max applications
|
||||
* This should be large enough for max applications:
|
||||
* 8 motors +1 in case motor count starts at 1 and not 0
|
||||
*/
|
||||
#ifndef ACTUATORS_DSHOT_NB
|
||||
#define ACTUATORS_DSHOT_NB 8
|
||||
#define ACTUATORS_DSHOT_NB (8+1)
|
||||
#endif
|
||||
|
||||
extern uint16_t actuators_dshot_values[ACTUATORS_DSHOT_NB];
|
||||
|
||||
Reference in New Issue
Block a user