Browse Source

FMUv5: Support passive power controls

This ensures that FMU-side power controls are not interfering with IO-side power controls of DSM receivers if they happen to be OR-ed in the schematics
release/1.12
Lorenz Meier 4 years ago
parent
commit
cc34d4601d
  1. 3
      boards/px4/fmu-v5/src/board_config.h
  2. 9
      boards/px4/fmu-v5/src/init.c

3
boards/px4/fmu-v5/src/board_config.h

@ -264,6 +264,7 @@ @@ -264,6 +264,7 @@
#define GPIO_nVDD_5V_HIPOWER_EN /* PF12 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTF|GPIO_PIN12)
#define GPIO_nVDD_5V_HIPOWER_OC /* PG13 */ (GPIO_INPUT |GPIO_FLOAT|GPIO_PORTF|GPIO_PIN13)
#define GPIO_VDD_3V3_SPEKTRUM_POWER_EN /* PE4 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN4)
#define GPIO_VDD_3V3_SPEKTRUM_PASSIVE /* PE4 */ (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN4)
#define GPIO_VDD_5V_RC_EN /* PG5 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTG|GPIO_PIN5)
#define GPIO_VDD_5V_WIFI_EN /* PG6 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTG|GPIO_PIN5)
#define GPIO_VDD_3V3_SD_CARD_EN /* PG7 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTG|GPIO_PIN7)
@ -350,6 +351,8 @@ @@ -350,6 +351,8 @@
/* Power switch controls ******************************************************/
#define SPEKTRUM_POWER(_on_true) VDD_3V3_SPEKTRUM_POWER_EN(_on_true)
#define SPEKTRUM_POWER_PASSIVE() px4_arch_configgpio(GPIO_VDD_3V3_SPEKTRUM_PASSIVE)
#define SPEKTRUM_POWER_CONFIG() px4_arch_configgpio(GPIO_VDD_3V3_SPEKTRUM_POWER_EN)
/*
* FMUv5 has a separate RC_IN

9
boards/px4/fmu-v5/src/init.c

@ -211,6 +211,15 @@ __EXPORT int board_app_initialize(uintptr_t arg) @@ -211,6 +211,15 @@ __EXPORT int board_app_initialize(uintptr_t arg)
VDD_5V_PERIPH_EN(true);
VDD_5V_HIPOWER_EN(true);
board_control_spi_sensors_power(true, 0xffff);
#ifdef SPEKTRUM_POWER_PASSIVE
// Turn power controls to passive
SPEKTRUM_POWER_PASSIVE();
#endif
// TODO Historically Spektrum power defaulted to on
// newer board configurations should support enabling
// power once the RC interface gets switched on instead
// the unconditional power-on in the line below is
// kept in place for consistency.
VDD_3V3_SPEKTRUM_POWER_EN(true);
VDD_5V_RC_EN(true);
VDD_5V_WIFI_EN(true);

Loading…
Cancel
Save