Browse Source

onmibus-f4sd: add ADC support

sbg
Beat Küng 7 years ago
parent
commit
f8dd833a14
  1. 2
      ROMFS/px4fmu_common/init.d/rc.sensors
  2. 2
      cmake/configs/nuttx_omnibus-f4sd_default.cmake
  3. 14
      platforms/nuttx/nuttx-configs/omnibus-f4sd/nsh/defconfig
  4. 22
      src/drivers/boards/omnibus-f4sd/board_config.h
  5. 10
      src/drivers/boards/omnibus-f4sd/init.c

2
ROMFS/px4fmu_common/init.d/rc.sensors

@ -280,6 +280,8 @@ then @@ -280,6 +280,8 @@ then
hmc5883 -X start
bmp280 start
adc start
fi
if ver hwcmp PX4FMU_V4PRO

2
cmake/configs/nuttx_omnibus-f4sd_default.cmake

@ -22,7 +22,7 @@ set(config_module_list @@ -22,7 +22,7 @@ set(config_module_list
drivers/px4fmu
drivers/rgbled
drivers/stm32
#drivers/stm32/adc
drivers/stm32/adc
#drivers/stm32/tone_alarm
modules/sensors

14
platforms/nuttx/nuttx-configs/omnibus-f4sd/nsh/defconfig

@ -371,7 +371,7 @@ CONFIG_STM32_HAVE_TIM14=y @@ -371,7 +371,7 @@ CONFIG_STM32_HAVE_TIM14=y
CONFIG_STM32_HAVE_ADC2=y
CONFIG_STM32_HAVE_ADC3=y
# CONFIG_STM32_HAVE_ADC4 is not set
# CONFIG_STM32_HAVE_ADC1_DMA is not set
CONFIG_STM32_HAVE_ADC1_DMA=y
# CONFIG_STM32_HAVE_ADC2_DMA is not set
# CONFIG_STM32_HAVE_ADC3_DMA is not set
# CONFIG_STM32_HAVE_ADC4_DMA is not set
@ -408,7 +408,7 @@ CONFIG_STM32_HAVE_I2S3=y @@ -408,7 +408,7 @@ CONFIG_STM32_HAVE_I2S3=y
# CONFIG_STM32_HAVE_OPAMP2 is not set
# CONFIG_STM32_HAVE_OPAMP3 is not set
# CONFIG_STM32_HAVE_OPAMP4 is not set
# CONFIG_STM32_ADC1 is not set
CONFIG_STM32_ADC1=y
# CONFIG_STM32_ADC2 is not set
# CONFIG_STM32_ADC3 is not set
CONFIG_STM32_BKPSRAM=y
@ -460,6 +460,7 @@ CONFIG_STM32_UART4=y @@ -460,6 +460,7 @@ CONFIG_STM32_UART4=y
CONFIG_STM32_USART6=y
# CONFIG_STM32_IWDG is not set
CONFIG_STM32_WWDG=y
CONFIG_STM32_ADC=y
CONFIG_STM32_SPI=y
CONFIG_STM32_I2C=y
# CONFIG_STM32_NOEXT_VECTORS is not set
@ -488,6 +489,9 @@ CONFIG_STM32_DMACAPABLE=y @@ -488,6 +489,9 @@ CONFIG_STM32_DMACAPABLE=y
# CONFIG_STM32_TIM1_PWM is not set
# CONFIG_STM32_TIM3_PWM is not set
# CONFIG_STM32_TIM5_PWM is not set
# CONFIG_STM32_TIM1_ADC is not set
# CONFIG_STM32_TIM3_ADC is not set
# CONFIG_STM32_TIM5_ADC is not set
# CONFIG_STM32_TIM1_CAP is not set
# CONFIG_STM32_TIM3_CAP is not set
# CONFIG_STM32_TIM4_CAP is not set
@ -499,6 +503,12 @@ CONFIG_STM32_DMACAPABLE=y @@ -499,6 +503,12 @@ CONFIG_STM32_DMACAPABLE=y
# CONFIG_STM32_TIM12_CAP is not set
# CONFIG_STM32_TIM13_CAP is not set
# CONFIG_STM32_TIM14_CAP is not set
#
# ADC Configuration
#
# CONFIG_STM32_ADC_NO_STARTUP_CONV is not set
# CONFIG_STM32_ADC1_DMA is not set
CONFIG_STM32_USART=y
CONFIG_STM32_SERIALDRIVER=y

22
src/drivers/boards/omnibus-f4sd/board_config.h

@ -69,26 +69,16 @@ @@ -69,26 +69,16 @@
*
* These are the channel numbers of the ADCs of the microcontroller that can be used by the Px4 Firmware in the adc driver
*/
// TODO: ADCs, eg. pixracer
//#define ADC_CHANNELS (1 << 2) | (1 << 3) | (1 << 4) | (1 << 10) | (1 << 11) | (1 << 12) | (1 << 13) | (1 << 14)
#define ADC_CHANNELS (1 << 0) | (1 << 11) | (1 << 12)
// Placeholder
#define ADC_BATTERY_VOLTAGE_CHANNEL ((uint8_t)(-1))
#define ADC_BATTERY_CURRENT_CHANNEL ((uint8_t)(-1))
#define ADC_AIRSPEED_VOLTAGE_CHANNEL ((uint8_t)(-1))
// TODO: ADCs
//#define ADC_BATTERY_VOLTAGE_CHANNEL 2
//#define ADC_BATTERY_CURRENT_CHANNEL 3
//#define ADC_5V_RAIL_SENSE 4
//#define ADC_RC_RSSI_CHANNEL 11
#define ADC_BATTERY_VOLTAGE_CHANNEL 12
#define ADC_BATTERY_CURRENT_CHANNEL 11
#define ADC_RC_RSSI_CHANNEL 0
/* Define Battery 1 Voltage Divider and A per V
*/
// TODO:
//#define BOARD_BATTERY1_V_DIV (13.653333333f)
//#define BOARD_BATTERY1_A_PER_V (36.367515152f)
#define BOARD_BATTERY1_V_DIV (11.12f)
#define BOARD_BATTERY1_A_PER_V (31.f)
/* User GPIOs
*

10
src/drivers/boards/omnibus-f4sd/init.c

@ -185,12 +185,10 @@ stm32_boardinitialize(void) @@ -185,12 +185,10 @@ stm32_boardinitialize(void)
board_autoled_initialize();
//TODO: ADCs
///* configure ADC pins */
//stm32_configgpio(GPIO_ADC1_IN2); /* BATT_VOLTAGE_SENS */
//stm32_configgpio(GPIO_ADC1_IN3); /* BATT_CURRENT_SENS */
//stm32_configgpio(GPIO_ADC1_IN4); /* VDD_5V_SENS */
//stm32_configgpio(GPIO_ADC1_IN11); /* RSSI analog in */
/* configure ADC pins */
stm32_configgpio(GPIO_ADC1_IN12); /* BATT_VOLTAGE_SENS */
stm32_configgpio(GPIO_ADC1_IN11); /* BATT_CURRENT_SENS */
stm32_configgpio(GPIO_ADC1_IN0); /* RSSI analog in */
// TODO: power peripherals
///* configure power supply control/sense pins */

Loading…
Cancel
Save