Skip to content

Commit

Permalink
[pwm] use different names to activate PWM drivers in chibios and pprz
Browse files Browse the repository at this point in the history
ChibiOS PWM driver is required for DShot driver, but activating it
should not result in an activation of the PWM driver by paparazzi.
Otherwise, the last driver to be called at init will set the
parameters and eventually overwrite the correct values.
  • Loading branch information
gautierhattenberger committed Nov 30, 2023
1 parent 8751466 commit 30fe4b2
Show file tree
Hide file tree
Showing 20 changed files with 297 additions and 31 deletions.
60 changes: 30 additions & 30 deletions sw/airborne/arch/chibios/modules/actuators/actuators_pwm_arch.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ int32_t actuators_pwm_values[ACTUATORS_PWM_NB];
*/
__attribute__((unused)) static void pwmpcb(PWMDriver *pwmp __attribute__((unused))) {}

#if STM32_PWM_USE_TIM1
#if USE_PWM_TIM1
static PWMConfig pwmcfg1 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM1_SERVO_HZ,
Expand All @@ -111,14 +111,14 @@ static PWMConfig pwmcfg1 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM2
#if USE_PWM_TIM2
static PWMConfig pwmcfg2 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM2_SERVO_HZ,
Expand All @@ -127,14 +127,14 @@ static PWMConfig pwmcfg2 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM3
#if USE_PWM_TIM3
static PWMConfig pwmcfg3 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM3_SERVO_HZ,
Expand All @@ -143,14 +143,14 @@ static PWMConfig pwmcfg3 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM4
#if USE_PWM_TIM4
static PWMConfig pwmcfg4 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM4_SERVO_HZ,
Expand All @@ -159,14 +159,14 @@ static PWMConfig pwmcfg4 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM5
#if USE_PWM_TIM5
static PWMConfig pwmcfg5 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM5_SERVO_HZ,
Expand All @@ -175,14 +175,14 @@ static PWMConfig pwmcfg5 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM8
#if USE_PWM_TIM8
static PWMConfig pwmcfg8 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM8_SERVO_HZ,
Expand All @@ -191,14 +191,14 @@ static PWMConfig pwmcfg8 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM9
#if USE_PWM_TIM9
static PWMConfig pwmcfg9 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM9_SERVO_HZ,
Expand All @@ -207,14 +207,14 @@ static PWMConfig pwmcfg9 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM10
#if USE_PWM_TIM10
static PWMConfig pwmcfg10 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM10_SERVO_HZ,
Expand All @@ -223,14 +223,14 @@ static PWMConfig pwmcfg10 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM11
#if USE_PWM_TIM11
static PWMConfig pwmcfg11 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM11_SERVO_HZ,
Expand All @@ -239,14 +239,14 @@ static PWMConfig pwmcfg11 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
.dier = 0
};
#endif
#if STM32_PWM_USE_TIM12
#if USE_PWM_TIM12
static PWMConfig pwmcfg12 = {
.frequency = PWM_FREQUENCY,
.period = PWM_FREQUENCY/TIM12_SERVO_HZ,
Expand All @@ -255,7 +255,7 @@ static PWMConfig pwmcfg12 = {
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
{ PWM_OUTPUT_DISABLED, NULL },
},
.cr2 = 0,
.bdtr = 0,
Expand Down Expand Up @@ -341,34 +341,34 @@ void actuators_pwm_arch_init(void)
/*---------------
* Configure PWM
*---------------*/
#if STM32_PWM_USE_TIM1
#if USE_PWM_TIM1
pwmStart(&PWMD1, &pwmcfg1);
#endif
#if STM32_PWM_USE_TIM2
#if USE_PWM_TIM2
pwmStart(&PWMD2, &pwmcfg2);
#endif
#if STM32_PWM_USE_TIM3
#if USE_PWM_TIM3
pwmStart(&PWMD3, &pwmcfg3);
#endif
#if STM32_PWM_USE_TIM4
#if USE_PWM_TIM4
pwmStart(&PWMD4, &pwmcfg4);
#endif
#if STM32_PWM_USE_TIM5
#if USE_PWM_TIM5
pwmStart(&PWMD5, &pwmcfg5);
#endif
#if STM32_PWM_USE_TIM8
#if USE_PWM_TIM8
pwmStart(&PWMD8, &pwmcfg8);
#endif
#if STM32_PWM_USE_TIM9
#if USE_PWM_TIM9
pwmStart(&PWMD9, &pwmcfg9);
#endif
#if STM32_PWM_USE_TIM10
#if USE_PWM_TIM10
pwmStart(&PWMD10, &pwmcfg10);
#endif
#if STM32_PWM_USE_TIM11
#if USE_PWM_TIM11
pwmStart(&PWMD11, &pwmcfg11);
#endif
#if STM32_PWM_USE_TIM12
#if USE_PWM_TIM12
pwmStart(&PWMD12, &pwmcfg12);
#endif
}
Expand Down
12 changes: 12 additions & 0 deletions sw/airborne/boards/apogee/chibios/v1.0/board.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,18 @@ HEADER
#define DefaultVoltageOfAdc(adc) (0.006185*adc)
/*
* PWM TIM defines
* enable TIM2 and TIM3 by default
*/
#ifndef USE_PWM_TIM2
#define USE_PWM_TIM2 1
#endif
#ifndef USE_PWM_TIM3
#define USE_PWM_TIM3 1
#endif
/*
* PWM defines
*/
Expand Down
12 changes: 12 additions & 0 deletions sw/airborne/boards/apogee/chibios/v1.0/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,18 @@

#define DefaultVoltageOfAdc(adc) (0.006185*adc)

/*
* PWM TIM defines
* enable TIM2 and TIM3 by default
*/
#ifndef USE_PWM_TIM2
#define USE_PWM_TIM2 1
#endif

#ifndef USE_PWM_TIM3
#define USE_PWM_TIM3 1
#endif

/*
* PWM defines
*/
Expand Down
11 changes: 10 additions & 1 deletion sw/airborne/boards/chimera/chibios/v1.0/chimera.h
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,17 @@
//TODO configure DAC (ADC_1)

/*
* PWM defines
* PWM TIM defines
* enable TIM3 and TIM4 by default
*/
#ifndef USE_PWM_TIM3
#define USE_PWM_TIM3 1
#endif

#ifndef USE_PWM_TIM4
#define USE_PWM_TIM4 1
#endif

/*
* PWM defines
*/
Expand Down
12 changes: 12 additions & 0 deletions sw/airborne/boards/crazyflie/chibios/v2.1/crazyflie.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,18 @@
// TODO for AUX
// No VBAT monitoring ?

/*
* PWM TIM defines
* enable TIM2 and TIM4 by default
*/
#ifndef USE_PWM_TIM2
#define USE_PWM_TIM2 1
#endif

#ifndef USE_PWM_TIM4
#define USE_PWM_TIM4 1
#endif

/*
* PWM defines
*/
Expand Down
12 changes: 12 additions & 0 deletions sw/airborne/boards/cube/orange/board.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,18 @@ HEADER
#define SDLOG_BAT_ADC ADCD1
#define SDLOG_BAT_CHAN AD1_1_CHANNEL

/*
* PWM TIM defines
* enable TIM1 and TIM4 by default
*/
#ifndef USE_PWM_TIM1
#define USE_PWM_TIM1 1
#endif

#ifndef USE_PWM_TIM4
#define USE_PWM_TIM4 1
#endif

CONFIG


Expand Down
12 changes: 12 additions & 0 deletions sw/airborne/boards/cube/orange/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,18 @@
#define SDLOG_BAT_ADC ADCD1
#define SDLOG_BAT_CHAN AD1_1_CHANNEL

/*
* PWM TIM defines
* enable TIM1 and TIM4 by default
*/
#ifndef USE_PWM_TIM1
#define USE_PWM_TIM1 1
#endif

#ifndef USE_PWM_TIM4
#define USE_PWM_TIM4 1
#endif

/*
* IO pins assignments.
*/
Expand Down
24 changes: 24 additions & 0 deletions sw/airborne/boards/holybro/kakute_f7/holybro_kakute_f7.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,30 @@
*/
#define DefaultMilliAmpereOfAdc(adc) ((40000.f*3.3f/4096.f)*adc)

/*
* PWM TIM defines
* enable TIM 1, 3, 4, 5, 8 by default
*/
#ifndef USE_PWM_TIM1
#define USE_PWM_TIM1 1
#endif

#ifndef USE_PWM_TIM3
#define USE_PWM_TIM3 1
#endif

#ifndef USE_PWM_TIM4
#define USE_PWM_TIM4 1
#endif

#ifndef USE_PWM_TIM5
#define USE_PWM_TIM5 1
#endif

#ifndef USE_PWM_TIM8
#define USE_PWM_TIM8 1
#endif

/*
* PWM defines
*/
Expand Down
12 changes: 12 additions & 0 deletions sw/airborne/boards/lia/chibios/v1.1/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,18 @@

#define DefaultVoltageOfAdc(adc) (0.004489*adc)

/*
* PWM TIM defines
* enable TIM3 and TIM5 by default
*/
#ifndef USE_PWM_TIM3
#define USE_PWM_TIM3 1
#endif

#ifndef USE_PWM_TIM5
#define USE_PWM_TIM5 1
#endif

/*
* PWM defines
*/
Expand Down

0 comments on commit 30fe4b2

Please sign in to comment.