mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-24 05:45:59 +08:00
Pixhawk ADC 5 and ADC 6 (#2762)
* [actuators] Add randomness to UAVCan telemetry * [conf] Update Nederdrone * [boards] Add ADC5 and ADC6 for the pixhawk 4
This commit is contained in:
@@ -38,6 +38,10 @@
|
||||
<module name="flight_recorder"/>
|
||||
|
||||
<define name="ADC_CURRENT_DISABLE" value="TRUE"/>
|
||||
<module name="adc_generic">
|
||||
<configure name="ADC_CHANNEL_GENERIC1" value="ADC_5"/>
|
||||
<configure name="ADC_CHANNEL_GENERIC2" value="ADC_6"/>
|
||||
</module>
|
||||
|
||||
<define name="RADIO_TH_HOLD" value="RADIO_AUX1"/> <!-- Throttle hold in command laws -->
|
||||
<define name="RADIO_FMODE" value="RADIO_AUX2"/> <!-- Throttle curve select -->
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
</header>
|
||||
<makefile target="ap">
|
||||
<file name="actuators_uavcan.c" dir="subsystems/actuators"/>
|
||||
<file name="pprz_random.c" dir="math"/>
|
||||
</makefile>
|
||||
</module>
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
<message name="AHRS_BIAS" period="7.5"/>
|
||||
<message name="HOVER_LOOP" period="0.3"/>
|
||||
<message name="GUIDANCE_H_REF_INT" period="0.31"/>
|
||||
<message name="GUIDANCE_INDI_HYBRID" period="0.4"/>
|
||||
<message name="HYBRID_GUIDANCE" period="0.4"/>
|
||||
<message name="ESC" period="0.5"/>
|
||||
<!--message name="WINDTUNNEL_MEAS" period="0.1"/-->
|
||||
@@ -219,6 +220,7 @@
|
||||
<message name="AHRS_REF_QUAT" period="0.01"/>
|
||||
<message name="GUIDANCE_H_REF_INT" period="0.02"/>
|
||||
<message name="GUIDANCE_INDI_HYBRID" period="0.02"/>
|
||||
<message name="HYBRID_GUIDANCE" period="0.02"/>
|
||||
<message name="ESC" period="0.02"/>
|
||||
<message name="STAB_ATTITUDE_INDI" period="0.002"/>
|
||||
<message name="PPM" period="0.05"/>
|
||||
|
||||
@@ -288,12 +288,12 @@
|
||||
<aircraft
|
||||
name="Nederdrone4"
|
||||
ac_id="14"
|
||||
airframe="airframes/tudelft/nederdrone4_tem.xml"
|
||||
airframe="airframes/tudelft/nederdrone4.xml"
|
||||
radio="radios/crossfire_sbus.xml"
|
||||
telemetry="telemetry/highspeed_rotorcraft.xml"
|
||||
flight_plan="flight_plans/tudelft/nederdrone_cyberzoo.xml"
|
||||
flight_plan="flight_plans/tudelft/nederdrone_valkenburg.xml"
|
||||
settings="settings/rotorcraft_basic.xml"
|
||||
settings_modules="modules/air_data.xml modules/gps.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
|
||||
settings_modules="modules/air_data.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
|
||||
gui_color="blue"
|
||||
release="c52a0b7e581c74b42ecc9f9d712324e3ab1fcc5e"
|
||||
/>
|
||||
@@ -305,7 +305,7 @@
|
||||
telemetry="telemetry/highspeed_rotorcraft.xml"
|
||||
flight_plan="flight_plans/tudelft/nederdrone_valkenburg.xml"
|
||||
settings="settings/rotorcraft_basic.xml"
|
||||
settings_modules="modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
|
||||
settings_modules="modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_indi_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_basic_rotorcraft.xml modules/nav_survey_rectangle_rotorcraft.xml modules/scheduling_indi_simple.xml modules/stabilization_indi_simple.xml"
|
||||
gui_color="blue"
|
||||
release="c52a0b7e581c74b42ecc9f9d712324e3ab1fcc5e"
|
||||
/>
|
||||
|
||||
@@ -81,7 +81,7 @@ PA00 ADC1 ADC ADC1_IN0 # BAT1_V
|
||||
PA01 ADC2 ADC ADC1_IN1 # BAT1_I
|
||||
PA02 ADC3 ADC ADC1_IN2 # BAT2_V
|
||||
PA03 ADC4 ADC ADC1_IN3 # BAT2_I
|
||||
PA04 ADC1_SPARE2 ADC ADC1_IN4
|
||||
PA04 ADC5 ADC ADC1_IN4 # ADC1_SPARE2
|
||||
PA05 FMU_CAP1 PASSIVE
|
||||
PA06 SPI1_MISO SPI AF:SPI1_MISO
|
||||
PA07 HEATER PASSIVE
|
||||
@@ -112,7 +112,7 @@ PC00 SCALED_V5 ADC ADC1_IN10
|
||||
PC01 SCALED_3V3_SENSORS ADC ADC1_IN11
|
||||
PC02 HW_VER_SENSE ADC ADC1_IN12
|
||||
PC03 HW_REV_SENSE ADC ADC1_IN13
|
||||
PC04 ADC1_SPARE1 ADC ADC1_IN14
|
||||
PC04 ADC6 ADC ADC1_IN14
|
||||
PC05 DRDY4_ICM20602 PASSIVE
|
||||
PC06 LED2 LED # LED_GREEN
|
||||
PC07 LED3 LED # LED_BLUE
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
#define PA01_ADC2 1U
|
||||
#define PA02_ADC3 2U
|
||||
#define PA03_ADC4 3U
|
||||
#define PA04_ADC1_SPARE2 4U
|
||||
#define PA04_ADC5 4U
|
||||
#define PA05_FMU_CAP1 5U
|
||||
#define PA06_SPI1_MISO 6U
|
||||
#define PA07_HEATER 7U
|
||||
@@ -87,7 +87,7 @@
|
||||
#define PC01_SCALED_3V3_SENSORS 1U
|
||||
#define PC02_HW_VER_SENSE 2U
|
||||
#define PC03_HW_REV_SENSE 3U
|
||||
#define PC04_ADC1_SPARE1 4U
|
||||
#define PC04_ADC6 4U
|
||||
#define PC05_DRDY4_ICM20602 5U
|
||||
#define PC06_LED2 6U
|
||||
#define PC07_LED3 7U
|
||||
@@ -243,7 +243,7 @@
|
||||
#define LINE_ADC2 PAL_LINE(GPIOA, 1U)
|
||||
#define LINE_ADC3 PAL_LINE(GPIOA, 2U)
|
||||
#define LINE_ADC4 PAL_LINE(GPIOA, 3U)
|
||||
#define LINE_ADC1_SPARE2 PAL_LINE(GPIOA, 4U)
|
||||
#define LINE_ADC5 PAL_LINE(GPIOA, 4U)
|
||||
#define LINE_FMU_CAP1 PAL_LINE(GPIOA, 5U)
|
||||
#define LINE_SPI1_MISO PAL_LINE(GPIOA, 6U)
|
||||
#define LINE_HEATER PAL_LINE(GPIOA, 7U)
|
||||
@@ -276,7 +276,7 @@
|
||||
#define LINE_SCALED_3V3_SENSORS PAL_LINE(GPIOC, 1U)
|
||||
#define LINE_HW_VER_SENSE PAL_LINE(GPIOC, 2U)
|
||||
#define LINE_HW_REV_SENSE PAL_LINE(GPIOC, 3U)
|
||||
#define LINE_ADC1_SPARE1 PAL_LINE(GPIOC, 4U)
|
||||
#define LINE_ADC6 PAL_LINE(GPIOC, 4U)
|
||||
#define LINE_DRDY4_ICM20602 PAL_LINE(GPIOC, 5U)
|
||||
#define LINE_LED2 PAL_LINE(GPIOC, 6U)
|
||||
#define LINE_LED3 PAL_LINE(GPIOC, 7U)
|
||||
@@ -414,7 +414,7 @@
|
||||
PIN_MODE_ANALOG(PA01_ADC2) | \
|
||||
PIN_MODE_ANALOG(PA02_ADC3) | \
|
||||
PIN_MODE_ANALOG(PA03_ADC4) | \
|
||||
PIN_MODE_ANALOG(PA04_ADC1_SPARE2) | \
|
||||
PIN_MODE_ANALOG(PA04_ADC5) | \
|
||||
PIN_MODE_INPUT(PA05_FMU_CAP1) | \
|
||||
PIN_MODE_ALTERNATE(PA06_SPI1_MISO) | \
|
||||
PIN_MODE_INPUT(PA07_HEATER) | \
|
||||
@@ -431,7 +431,7 @@
|
||||
PIN_OTYPE_PUSHPULL(PA01_ADC2) | \
|
||||
PIN_OTYPE_PUSHPULL(PA02_ADC3) | \
|
||||
PIN_OTYPE_PUSHPULL(PA03_ADC4) | \
|
||||
PIN_OTYPE_PUSHPULL(PA04_ADC1_SPARE2) | \
|
||||
PIN_OTYPE_PUSHPULL(PA04_ADC5) | \
|
||||
PIN_OTYPE_OPENDRAIN(PA05_FMU_CAP1) | \
|
||||
PIN_OTYPE_PUSHPULL(PA06_SPI1_MISO) | \
|
||||
PIN_OTYPE_OPENDRAIN(PA07_HEATER) | \
|
||||
@@ -448,7 +448,7 @@
|
||||
PIN_OSPEED_SPEED_VERYLOW(PA01_ADC2) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PA02_ADC3) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PA03_ADC4) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PA04_ADC1_SPARE2) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PA04_ADC5) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PA05_FMU_CAP1) | \
|
||||
PIN_OSPEED_SPEED_HIGH(PA06_SPI1_MISO) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PA07_HEATER) | \
|
||||
@@ -465,7 +465,7 @@
|
||||
PIN_PUPDR_FLOATING(PA01_ADC2) | \
|
||||
PIN_PUPDR_FLOATING(PA02_ADC3) | \
|
||||
PIN_PUPDR_FLOATING(PA03_ADC4) | \
|
||||
PIN_PUPDR_FLOATING(PA04_ADC1_SPARE2) | \
|
||||
PIN_PUPDR_FLOATING(PA04_ADC5) | \
|
||||
PIN_PUPDR_PULLDOWN(PA05_FMU_CAP1) | \
|
||||
PIN_PUPDR_FLOATING(PA06_SPI1_MISO) | \
|
||||
PIN_PUPDR_PULLDOWN(PA07_HEATER) | \
|
||||
@@ -482,7 +482,7 @@
|
||||
PIN_ODR_LEVEL_LOW(PA01_ADC2) | \
|
||||
PIN_ODR_LEVEL_LOW(PA02_ADC3) | \
|
||||
PIN_ODR_LEVEL_LOW(PA03_ADC4) | \
|
||||
PIN_ODR_LEVEL_LOW(PA04_ADC1_SPARE2) | \
|
||||
PIN_ODR_LEVEL_LOW(PA04_ADC5) | \
|
||||
PIN_ODR_LEVEL_HIGH(PA05_FMU_CAP1) | \
|
||||
PIN_ODR_LEVEL_HIGH(PA06_SPI1_MISO) | \
|
||||
PIN_ODR_LEVEL_HIGH(PA07_HEATER) | \
|
||||
@@ -499,7 +499,7 @@
|
||||
PIN_AFIO_AF(PA01_ADC2, 0) | \
|
||||
PIN_AFIO_AF(PA02_ADC3, 0) | \
|
||||
PIN_AFIO_AF(PA03_ADC4, 0) | \
|
||||
PIN_AFIO_AF(PA04_ADC1_SPARE2, 0) | \
|
||||
PIN_AFIO_AF(PA04_ADC5, 0) | \
|
||||
PIN_AFIO_AF(PA05_FMU_CAP1, 0) | \
|
||||
PIN_AFIO_AF(PA06_SPI1_MISO, 5) | \
|
||||
PIN_AFIO_AF(PA07_HEATER, 0))
|
||||
@@ -620,7 +620,7 @@
|
||||
PIN_MODE_ANALOG(PC01_SCALED_3V3_SENSORS) | \
|
||||
PIN_MODE_ANALOG(PC02_HW_VER_SENSE) | \
|
||||
PIN_MODE_ANALOG(PC03_HW_REV_SENSE) | \
|
||||
PIN_MODE_ANALOG(PC04_ADC1_SPARE1) | \
|
||||
PIN_MODE_ANALOG(PC04_ADC6) | \
|
||||
PIN_MODE_INPUT(PC05_DRDY4_ICM20602) | \
|
||||
PIN_MODE_OUTPUT(PC06_LED2) | \
|
||||
PIN_MODE_OUTPUT(PC07_LED3) | \
|
||||
@@ -637,7 +637,7 @@
|
||||
PIN_OTYPE_PUSHPULL(PC01_SCALED_3V3_SENSORS) | \
|
||||
PIN_OTYPE_PUSHPULL(PC02_HW_VER_SENSE) | \
|
||||
PIN_OTYPE_PUSHPULL(PC03_HW_REV_SENSE) | \
|
||||
PIN_OTYPE_PUSHPULL(PC04_ADC1_SPARE1) | \
|
||||
PIN_OTYPE_PUSHPULL(PC04_ADC6) | \
|
||||
PIN_OTYPE_OPENDRAIN(PC05_DRDY4_ICM20602) | \
|
||||
PIN_OTYPE_PUSHPULL(PC06_LED2) | \
|
||||
PIN_OTYPE_PUSHPULL(PC07_LED3) | \
|
||||
@@ -654,7 +654,7 @@
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC01_SCALED_3V3_SENSORS) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC02_HW_VER_SENSE) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC03_HW_REV_SENSE) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC04_ADC1_SPARE1) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC04_ADC6) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC05_DRDY4_ICM20602) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC06_LED2) | \
|
||||
PIN_OSPEED_SPEED_VERYLOW(PC07_LED3) | \
|
||||
@@ -671,7 +671,7 @@
|
||||
PIN_PUPDR_FLOATING(PC01_SCALED_3V3_SENSORS) | \
|
||||
PIN_PUPDR_FLOATING(PC02_HW_VER_SENSE) | \
|
||||
PIN_PUPDR_FLOATING(PC03_HW_REV_SENSE) | \
|
||||
PIN_PUPDR_FLOATING(PC04_ADC1_SPARE1) | \
|
||||
PIN_PUPDR_FLOATING(PC04_ADC6) | \
|
||||
PIN_PUPDR_PULLDOWN(PC05_DRDY4_ICM20602) | \
|
||||
PIN_PUPDR_FLOATING(PC06_LED2) | \
|
||||
PIN_PUPDR_FLOATING(PC07_LED3) | \
|
||||
@@ -688,7 +688,7 @@
|
||||
PIN_ODR_LEVEL_LOW(PC01_SCALED_3V3_SENSORS) | \
|
||||
PIN_ODR_LEVEL_LOW(PC02_HW_VER_SENSE) | \
|
||||
PIN_ODR_LEVEL_LOW(PC03_HW_REV_SENSE) | \
|
||||
PIN_ODR_LEVEL_LOW(PC04_ADC1_SPARE1) | \
|
||||
PIN_ODR_LEVEL_LOW(PC04_ADC6) | \
|
||||
PIN_ODR_LEVEL_HIGH(PC05_DRDY4_ICM20602) | \
|
||||
PIN_ODR_LEVEL_LOW(PC06_LED2) | \
|
||||
PIN_ODR_LEVEL_LOW(PC07_LED3) | \
|
||||
@@ -705,7 +705,7 @@
|
||||
PIN_AFIO_AF(PC01_SCALED_3V3_SENSORS, 0) | \
|
||||
PIN_AFIO_AF(PC02_HW_VER_SENSE, 0) | \
|
||||
PIN_AFIO_AF(PC03_HW_REV_SENSE, 0) | \
|
||||
PIN_AFIO_AF(PC04_ADC1_SPARE1, 0) | \
|
||||
PIN_AFIO_AF(PC04_ADC6, 0) | \
|
||||
PIN_AFIO_AF(PC05_DRDY4_ICM20602, 0) | \
|
||||
PIN_AFIO_AF(PC06_LED2, 0) | \
|
||||
PIN_AFIO_AF(PC07_LED3, 0))
|
||||
|
||||
@@ -115,6 +115,24 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(LINE_ADC5)
|
||||
#if USE_ADC_5
|
||||
#define AD1_5_CHANNEL ADC_CHANNEL_IN4
|
||||
#define ADC_5 AD1_5
|
||||
#define ADC_5_GPIO_PORT PAL_PORT(LINE_ADC5)
|
||||
#define ADC_5_GPIO_PIN PAL_PAD(LINE_ADC5)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(LINE_ADC6)
|
||||
#if USE_ADC_6
|
||||
#define AD1_6_CHANNEL ADC_CHANNEL_IN14
|
||||
#define ADC_6 AD1_6
|
||||
#define ADC_6_GPIO_PORT PAL_PORT(LINE_ADC6)
|
||||
#define ADC_6_GPIO_PIN PAL_PAD(LINE_ADC6)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
|
||||
#ifndef ADC_CHANNEL_VSUPPLY
|
||||
#define ADC_CHANNEL_VSUPPLY ADC_1
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include "actuators_uavcan.h"
|
||||
#include "subsystems/electrical.h"
|
||||
#include "math/pprz_random.h"
|
||||
|
||||
/* By default enable the usage of the current sensing in the ESC telemetry */
|
||||
#ifndef UAVCAN_ACTUATORS_USE_CURRENT
|
||||
@@ -102,7 +103,11 @@ static void actuators_uavcan_send_esc(struct transport_tx *trans, struct link_de
|
||||
float energy = telem[i].energy;
|
||||
pprz_msg_send_ESC(trans, dev, AC_ID, &telem[i].current, &electrical.vsupply, &power,
|
||||
&rpm, &telem[i].voltage, &energy, &esc_idx);
|
||||
esc_idx++;
|
||||
|
||||
// Randomness added for multiple transport devices
|
||||
if (rand_uniform() > 0.05) {
|
||||
esc_idx++;
|
||||
}
|
||||
|
||||
if (esc_idx >= max_id) {
|
||||
esc_idx = 0;
|
||||
@@ -182,6 +187,9 @@ void actuators_uavcan_init(struct uavcan_iface_t *iface __attribute__((unused)))
|
||||
|
||||
// Set initialization
|
||||
actuators_uavcan_initialized = true;
|
||||
|
||||
// Initialize Random (for telemetry)
|
||||
init_random();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user