mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-02-05 10:41:00 +08:00
Add betafpv AIO and tmotor AIO (#3413)
Some checks are pending
Doxygen / build (push) Waiting to run
Some checks are pending
Doxygen / build (push) Waiting to run
--------- Co-authored-by: Florian Sansou <florian.sansou@enac.fr>
This commit is contained in:
@@ -62,7 +62,7 @@
|
|||||||
telemetry="telemetry/default_rotorcraft.xml"
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
flight_plan="flight_plans/competitions/IMAV2023_dynamic.xml"
|
flight_plan="flight_plans/competitions/IMAV2023_dynamic.xml"
|
||||||
settings="settings/rotorcraft_basic.xml"
|
settings="settings/rotorcraft_basic.xml"
|
||||||
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/jevois.xml modules/logger_sd_chibios.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml modules/switch_servo.xml modules/tag_tracking.xml"
|
settings_modules="modules/electrical.xml modules/gps.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/jevois.xml modules/logger_sd_chibios.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml modules/switch_servo.xml modules/tag_tracking.xml"
|
||||||
gui_color="#c6d33e3ef958"
|
gui_color="#c6d33e3ef958"
|
||||||
/>
|
/>
|
||||||
<aircraft
|
<aircraft
|
||||||
@@ -87,4 +87,26 @@
|
|||||||
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/e_identification_fr.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
|
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/e_identification_fr.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
|
||||||
gui_color="#ffff7d7d0000"
|
gui_color="#ffff7d7d0000"
|
||||||
/>
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="CROW"
|
||||||
|
ac_id="5"
|
||||||
|
airframe="airframes/ENAC/quadrotor/crow_indoor.xml"
|
||||||
|
radio="radios/FrSky_X-Lite.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/ENAC/ENAC_stadium.xml"
|
||||||
|
settings=""
|
||||||
|
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/electrical.xml modules/gps.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="GOOSE"
|
||||||
|
ac_id="7"
|
||||||
|
airframe="airframes/ENAC/quadrotor/goose.xml"
|
||||||
|
radio="radios/FrSky_X-Lite.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/ENAC/ENAC_stadium.xml"
|
||||||
|
settings=""
|
||||||
|
settings_modules="modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
</conf>
|
</conf>
|
||||||
|
|||||||
240
conf/airframes/ENAC/quadrotor/crow_indoor.xml
Normal file
240
conf/airframes/ENAC/quadrotor/crow_indoor.xml
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
|
||||||
|
|
||||||
|
<airframe name="Crow">
|
||||||
|
|
||||||
|
<description>
|
||||||
|
* Autopilot: BetaFPV AIO 35A
|
||||||
|
* Telemetry: ESP 32 dronebridge
|
||||||
|
* GPS: datalink
|
||||||
|
* RC: SBUS
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<configure name="PERIODIC_FREQUENCY" value="500"/>
|
||||||
|
<!-- <configure name="AHRS_PROPAGATE_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/> -->
|
||||||
|
<configure name="RTOS_DEBUG" value="TRUE" />
|
||||||
|
|
||||||
|
<target name="ap" board="betafpv_aiof7">
|
||||||
|
<module name="radio_control" type="sbus"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
|
||||||
|
<!-- <define name="INS_EKF2_OPTITRACK" value="TRUE"/> -->
|
||||||
|
<configure name="USE_MAGNETOMETER" value="FALSE"/>
|
||||||
|
<define name="USE_GPS"/>
|
||||||
|
<define name="AHRS_USE_GPS_HEADING" value="TRUE" />
|
||||||
|
</target>
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<module name="fdm" type="jsbsim"/>
|
||||||
|
<module name="radio_control" type="ppm"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<module name="telemetry" type="xbee_api">
|
||||||
|
<configure name="MODEM_PORT" value="UART2" />
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<!-- <module name="telemetry" type="transparent">
|
||||||
|
<configure name="MODEM_PORT" value="usb_serial" />
|
||||||
|
</module> -->
|
||||||
|
<!-- <configure name="MODEM_PORT" value="UART2" /> -->
|
||||||
|
|
||||||
|
<!-- DroneBridge -->
|
||||||
|
<!-- <module name="telemetry" type="transparent">
|
||||||
|
<configure name="MODEM_PORT" value="UART6" />
|
||||||
|
<configure name="MODEM_BAUD" value="B115200" />
|
||||||
|
</module> -->
|
||||||
|
|
||||||
|
|
||||||
|
<module name="actuators" type="dshot">
|
||||||
|
<define name="DSHOT_SPEED" value="600"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<!-- <module name="actuators" type="pwm">
|
||||||
|
<define name="SERVO_HZ" value="400"/>
|
||||||
|
<define name="USE_PWM1"/>
|
||||||
|
<define name="USE_PWM2"/>
|
||||||
|
<define name="USE_PWM3"/>
|
||||||
|
<define name="USE_PWM4"/>
|
||||||
|
<define name="USE_DSHOT_TIM3" value="0"></define>
|
||||||
|
<define name="USE_DSHOT_TIM4" value="0"></define>
|
||||||
|
<define name="USE_DSHOT_TIM5" value="0"></define>
|
||||||
|
</module> -->
|
||||||
|
|
||||||
|
|
||||||
|
<module name="board" type="betafpv_aiof7">
|
||||||
|
</module>
|
||||||
|
<!-- <configure name="IMU_ODR" value="1KHZ" /> -->
|
||||||
|
<!-- <configure name="GYRO_RANGE" value="500DPS" /> -->
|
||||||
|
|
||||||
|
<module name="gps" type="optitrack"/>
|
||||||
|
|
||||||
|
<module name="stabilization" type="indi"/>
|
||||||
|
<module name="guidance" type="indi"/>
|
||||||
|
|
||||||
|
<module name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<!-- <module name="ahrs" type="float_dcm"/> -->
|
||||||
|
<module name="ins" type="gps_passthrough"/>
|
||||||
|
<!-- <module name="ins"/> -->
|
||||||
|
<!-- <module name="ins" type="ekf2"/> -->
|
||||||
|
<!-- <module name="preflight_checks"/> -->
|
||||||
|
|
||||||
|
<!-- <module name="flight_recorder"/> -->
|
||||||
|
<module name="sys_mon"></module>
|
||||||
|
<module name="shell">
|
||||||
|
<configure name="SHELL_PORT" value="usb_serial_debug"/>
|
||||||
|
</module>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<servos driver="DShot">
|
||||||
|
<servo name="BR" no="1" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="BL" no="2" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FR" no="3" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FL" no="4" min="0" neutral="100" max="2000"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<!-- <servos driver="Pwm">
|
||||||
|
<servo name="BR" no="1" min="1000" neutral="1100" max="2000"/>
|
||||||
|
<servo name="BL" no="2" min="1000" neutral="1100" max="2000"/>
|
||||||
|
<servo name="FR" no="3" min="1000" neutral="1100" max="2000"/>
|
||||||
|
<servo name="FL" no="4" min="1000" neutral="1100" max="2000"/>
|
||||||
|
</servos> -->
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<set servo="FR" value="autopilot_get_motors_on() ? actuators_pprz[0] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BR" value="autopilot_get_motors_on() ? actuators_pprz[1] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BL" value="autopilot_get_motors_on() ? actuators_pprz[2] : -MAX_PPRZ"/>
|
||||||
|
<set servo="FL" value="autopilot_get_motors_on() ? actuators_pprz[3] : -MAX_PPRZ"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="IMU_ACCEL_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="24"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="true"/>
|
||||||
|
<field name="scale" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field name="neutral" value="-9,1,75" type="int[]"/>
|
||||||
|
<field name="scale" value="{{23855,47132,18064},{9728,19217,7339}}"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
|
||||||
|
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
||||||
|
<!-- setpoint limits for attitude stabilization rc flight -->
|
||||||
|
<define name="SP_MAX_PHI" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_THETA" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_R" value="60" unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_A" value="0"/>
|
||||||
|
<define name="DEADBAND_E" value="0"/>
|
||||||
|
<define name="DEADBAND_R" value="50"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||||
|
<define name="NUM_ACT" value="4"/>
|
||||||
|
<!-- reference acceleration for attitude control -->
|
||||||
|
<define name="REF_ERR_P" value="120"/>
|
||||||
|
<define name="REF_ERR_Q" value="130"/>
|
||||||
|
<define name="REF_ERR_R" value="120"/>
|
||||||
|
<define name="REF_RATE_P" value="15"/>
|
||||||
|
<define name="REF_RATE_Q" value="15"/>
|
||||||
|
<define name="REF_RATE_R" value="10"/>
|
||||||
|
<define name="MAX_R" value="60" unit="deg/s"/>
|
||||||
|
|
||||||
|
<!-- second order filter parameters -->
|
||||||
|
<define name="FILT_CUTOFF" value="4.0"/>
|
||||||
|
<define name="FILT_CUTOFF_R" value="4.0"/>
|
||||||
|
|
||||||
|
<!-- Adaptive Learning Rate -->
|
||||||
|
<define name="USE_ADAPTIVE" value="FALSE"/>
|
||||||
|
<define name="ADAPTIVE_MU" value="0.0001"/>
|
||||||
|
|
||||||
|
<!-- Full INDI -->
|
||||||
|
<!-- control effectiveness -->
|
||||||
|
<define name="G1" type="matrix">
|
||||||
|
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||||
|
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||||
|
<field value="{ -3.0, 3.0, -3.0, 3.0 }"/>
|
||||||
|
<field value="{ -1.0, -1.0, -1.0, -1.0 }"/>
|
||||||
|
</define>
|
||||||
|
<!--Counter torque effect of spinning up a rotor-->
|
||||||
|
<define name="G2" value="{ -80, 80, -80, 80.0 }"/>
|
||||||
|
<!-- first order actuator dynamics -->
|
||||||
|
<define name="ACT_FREQ" value="{10.10, 10.10, 10.10, 10.10}"/>
|
||||||
|
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
|
||||||
|
<!--Priority for each axis (roll, pitch, yaw and thrust)-->
|
||||||
|
<define name="ALLOCATION_PSEUDO_INVERSE" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||||
|
<define name="REF_MIN_ZDD" value="-0.4*9.81"/>
|
||||||
|
<define name="REF_MAX_ZDD" value=" 0.4*9.81"/>
|
||||||
|
<define name="REF_MIN_ZD" value="-2."/>
|
||||||
|
<define name="REF_MAX_ZD" value=" 2."/>
|
||||||
|
<define name="NOMINAL_HOVER_THROTTLE" value="0.35"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="MAX_BANK" value="30" unit="deg"/>
|
||||||
|
<define name="REF_MAX_SPEED" value="0.5"/>
|
||||||
|
<define name="REF_MAX_ACCEL" value="2."/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_INDI" prefix="GUIDANCE_INDI_">
|
||||||
|
<define name="SPECIFIC_FORCE_GAIN" value="-500.0"/>
|
||||||
|
<define name="THRUST_DYNAMICS_FREQ" value="25.64"/>
|
||||||
|
<define name="RC_DEBUG" value="FALSE"/>
|
||||||
|
<define name="SPEED_GAINZ" value="2.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="NAV">
|
||||||
|
<define name="ARRIVED_AT_WAYPOINT" value="0.25"/>
|
||||||
|
<define name="NAV_CLIMB_VSPEED" value="0.8"/>
|
||||||
|
<define name="NAV_DESCEND_VSPEED" value="-0.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="CRITIC_BAT_LEVEL" value="7.45" unit="V"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="7.37" unit="V"/>
|
||||||
|
<define name="BAT_NB_CELLS" value="2"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
|
||||||
|
<define name="FAILSAFE_FIXED_THROTTLE" value="0.4"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- <section name="MISC">
|
||||||
|
<define name="INS_EKF2_GPS_COURSE_YAW" value="TRUE"/>
|
||||||
|
</section> -->
|
||||||
|
|
||||||
|
|
||||||
|
<section name="GCS">
|
||||||
|
<define name="ALT_SHIFT_PLUS_PLUS" value="2"/>
|
||||||
|
<define name="ALT_SHIFT_PLUS" value="1"/>
|
||||||
|
<define name="ALT_SHIFT_MINUS" value="-0.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
|
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
|
||||||
|
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
|
||||||
|
<define name="COMMANDS_NB" value="4"/>
|
||||||
|
<define name="NO_MOTOR_MIXING" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
272
conf/airframes/ENAC/quadrotor/goose.xml
Normal file
272
conf/airframes/ENAC/quadrotor/goose.xml
Normal file
@@ -0,0 +1,272 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../../airframe.dtd">
|
||||||
|
|
||||||
|
<airframe name="Goose">
|
||||||
|
|
||||||
|
<description>
|
||||||
|
* Autopilot: TMOTOR AIO 35A
|
||||||
|
* Telemetry: ESP 32 dronebridge
|
||||||
|
* GPS: datalink
|
||||||
|
* RC: SBUS
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<configure name="PERIODIC_FREQUENCY" value="500"/>
|
||||||
|
<!-- <configure name="AHRS_PROPAGATE_FREQUENCY" value="$(PERIODIC_FREQUENCY)"/> -->
|
||||||
|
<configure name="RTOS_DEBUG" value="FALSE" />
|
||||||
|
<!-- <define name="BMP280_SYNC_SEND"/> -->
|
||||||
|
|
||||||
|
<target name="ap" board="tmotor_aiof7">
|
||||||
|
<module name="radio_control" type="sbus"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
|
||||||
|
<!-- <define name="INS_EKF2_OPTITRACK" value="TRUE"/> -->
|
||||||
|
</target>
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<module name="fdm" type="jsbsim"/>
|
||||||
|
<module name="radio_control" type="ppm"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<!-- <module name="telemetry" type="xbee_api">
|
||||||
|
</module> -->
|
||||||
|
|
||||||
|
<!-- <module name="telemetry" type="transparent">
|
||||||
|
<configure name="MODEM_PORT" value="usb_serial" />
|
||||||
|
</module> -->
|
||||||
|
<!-- <configure name="MODEM_PORT" value="UART2" /> -->
|
||||||
|
|
||||||
|
<module name="telemetry" type="transparent">
|
||||||
|
<configure name="MODEM_PORT" value="UART5" />
|
||||||
|
<configure name="MODEM_BAUD" value="B115200" />
|
||||||
|
</module>
|
||||||
|
|
||||||
|
|
||||||
|
<module name="actuators" type="dshot">
|
||||||
|
<define name="DSHOT_SPEED" value="600"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<!-- <module name="actuators" type="pwm">
|
||||||
|
<define name="SERVO_HZ" value="400"/>
|
||||||
|
<define name="USE_PWM1"/>
|
||||||
|
<define name="USE_PWM2"/>
|
||||||
|
<define name="USE_PWM3"/>
|
||||||
|
<define name="USE_PWM4"/>
|
||||||
|
<define name="USE_DSHOT_TIM3" value="0"></define>
|
||||||
|
<define name="USE_DSHOT_TIM4" value="0"></define>
|
||||||
|
<define name="USE_DSHOT_TIM5" value="0"></define>
|
||||||
|
</module> -->
|
||||||
|
|
||||||
|
|
||||||
|
<module name="board" type="tmotor_aiof7">
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<module name="gps" type="ublox">
|
||||||
|
<configure name="GPS_BAUD" value="B115200"/>
|
||||||
|
<configure name="GPS_PORT" value="UART4"/>
|
||||||
|
</module>
|
||||||
|
<module name="mag" type="hmc59xx">
|
||||||
|
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c2"/>
|
||||||
|
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="TRUE"/>
|
||||||
|
<define name="MODULE_HMC58XX_SYNC_SEND" value="FALSE"/>
|
||||||
|
<define name="USE_I2C2"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<module name="stabilization" type="indi"/>
|
||||||
|
<module name="guidance" type="indi"/>
|
||||||
|
|
||||||
|
<!-- <module name="ahrs" type="int_cmpl_quat"/> -->
|
||||||
|
<!-- <module name="ahrs" type="float_dcm"/> -->
|
||||||
|
<!-- <module name="ins" type="gps_passthrough"/> -->
|
||||||
|
<!-- <module name="ins"/> -->
|
||||||
|
<module name="ins" type="ekf2"/>
|
||||||
|
<!-- <module name="preflight_checks"/> -->
|
||||||
|
|
||||||
|
<!-- <module name="flight_recorder"/> -->
|
||||||
|
<!-- <module name="sys_mon"></module>
|
||||||
|
<module name="shell">
|
||||||
|
<configure name="SHELL_PORT" value="usb_serial_debug"/>
|
||||||
|
</module> -->
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<servos driver="DShot">
|
||||||
|
<servo name="BL" no="1" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="BR" no="2" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FL" no="3" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FR" no="4" min="0" neutral="100" max="2000"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<!-- <servos driver="Pwm">
|
||||||
|
<servo name="BR" no="1" min="1000" neutral="1100" max="2000"/>
|
||||||
|
<servo name="BL" no="2" min="1000" neutral="1100" max="2000"/>
|
||||||
|
<servo name="FR" no="3" min="1000" neutral="1100" max="2000"/>
|
||||||
|
<servo name="FL" no="4" min="1000" neutral="1100" max="2000"/>
|
||||||
|
</servos> -->
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<set servo="FR" value="autopilot_get_motors_on() ? actuators_pprz[0] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BR" value="autopilot_get_motors_on() ? actuators_pprz[1] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BL" value="autopilot_get_motors_on() ? actuators_pprz[2] : -MAX_PPRZ"/>
|
||||||
|
<set servo="FL" value="autopilot_get_motors_on() ? actuators_pprz[3] : -MAX_PPRZ"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="ACCEL_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="9"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="true"/>
|
||||||
|
<field name="scale" value="true"/>
|
||||||
|
<field name="rotation" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field name="neutral" value="46,23,6" type="int[]"/>
|
||||||
|
<field name="scale" value="{{1753,57088,52129},{357,11657,10783}}"/>
|
||||||
|
<field value="TMOTOR_AIO_IMU_ROT"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
<define name="GYRO_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="9"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="false"/>
|
||||||
|
<field name="scale" value="false"/>
|
||||||
|
<field name="rotation" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field value="TMOTOR_AIO_IMU_ROT"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
<define name="MAG_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="2"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="true"/>
|
||||||
|
<field name="scale" value="true"/>
|
||||||
|
<field name="rotation" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field name="neutral" value="-73,-128,17" type="int[]"/>
|
||||||
|
<field name="scale" value="{{610,13504,52135},{163,3657,14546}}"/>
|
||||||
|
<field value="TMOTOR_AIO_MAG_ROT"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
||||||
|
<!-- setpoint limits for attitude stabilization rc flight -->
|
||||||
|
<define name="SP_MAX_PHI" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_THETA" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_R" value="60" unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_A" value="0"/>
|
||||||
|
<define name="DEADBAND_E" value="0"/>
|
||||||
|
<define name="DEADBAND_R" value="50"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||||
|
<define name="NUM_ACT" value="4"/>
|
||||||
|
<!-- reference acceleration for attitude control -->
|
||||||
|
<define name="REF_ERR_P" value="120"/>
|
||||||
|
<define name="REF_ERR_Q" value="130"/>
|
||||||
|
<define name="REF_ERR_R" value="120"/>
|
||||||
|
<define name="REF_RATE_P" value="15"/>
|
||||||
|
<define name="REF_RATE_Q" value="15"/>
|
||||||
|
<define name="REF_RATE_R" value="10"/>
|
||||||
|
<define name="MAX_R" value="60" unit="deg/s"/>
|
||||||
|
|
||||||
|
<!-- second order filter parameters -->
|
||||||
|
<define name="FILT_CUTOFF" value="4.0"/>
|
||||||
|
<define name="FILT_CUTOFF_R" value="4.0"/>
|
||||||
|
|
||||||
|
<!-- Adaptive Learning Rate -->
|
||||||
|
<define name="USE_ADAPTIVE" value="FALSE"/>
|
||||||
|
<define name="ADAPTIVE_MU" value="0.0001"/>
|
||||||
|
|
||||||
|
<!-- Full INDI -->
|
||||||
|
<!-- control effectiveness -->
|
||||||
|
<define name="G1" type="matrix">
|
||||||
|
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||||
|
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||||
|
<field value="{ -3.0, 3.0, -3.0, 3.0 }"/>
|
||||||
|
<field value="{ -1.0, -1.0, -1.0, -1.0 }"/>
|
||||||
|
</define>
|
||||||
|
<!--Counter torque effect of spinning up a rotor-->
|
||||||
|
<define name="G2" value="{ -80, 80, -80, 80.0 }"/>
|
||||||
|
<!-- first order actuator dynamics -->
|
||||||
|
<define name="ACT_FREQ" value="{10.10, 10.10, 10.10, 10.10}"/>
|
||||||
|
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
|
||||||
|
<!--Priority for each axis (roll, pitch, yaw and thrust)-->
|
||||||
|
<define name="ALLOCATION_PSEUDO_INVERSE" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||||
|
<define name="REF_MIN_ZDD" value="-0.4*9.81"/>
|
||||||
|
<define name="REF_MAX_ZDD" value=" 0.4*9.81"/>
|
||||||
|
<define name="REF_MIN_ZD" value="-2."/>
|
||||||
|
<define name="REF_MAX_ZD" value=" 2."/>
|
||||||
|
<define name="NOMINAL_HOVER_THROTTLE" value="0.35"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="MAX_BANK" value="30" unit="deg"/>
|
||||||
|
<define name="REF_MAX_SPEED" value="0.5"/>
|
||||||
|
<define name="REF_MAX_ACCEL" value="2."/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_INDI" prefix="GUIDANCE_INDI_">
|
||||||
|
<define name="SPECIFIC_FORCE_GAIN" value="-500.0"/>
|
||||||
|
<define name="THRUST_DYNAMICS_FREQ" value="25.64"/>
|
||||||
|
<define name="RC_DEBUG" value="FALSE"/>
|
||||||
|
<define name="SPEED_GAINZ" value="2.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="NAV">
|
||||||
|
<define name="ARRIVED_AT_WAYPOINT" value="2."/>
|
||||||
|
<define name="NAV_CLIMB_VSPEED" value="2.5"/>
|
||||||
|
<define name="NAV_DESCEND_VSPEED" value="-1.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MAX_BAT_LEVEL" value="8.4" unit="V"/>
|
||||||
|
<define name="LOW_BAT_LEVEL" value="7.1" unit="V"/>
|
||||||
|
<define name="CRITIC_BAT_LEVEL" value="6.5" unit="V"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="6" unit="V"/>
|
||||||
|
<define name="BAT_NB_CELLS" value="2"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
|
||||||
|
<define name="FAILSAFE_FIXED_THROTTLE" value="0.4"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<!--muret-->
|
||||||
|
<define name="H_X" value="0.5180"/>
|
||||||
|
<define name="H_Y" value="-0.0071"/>
|
||||||
|
<define name="H_Z" value="0.8554"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="GCS">
|
||||||
|
<define name="ALT_SHIFT_PLUS_PLUS" value="2"/>
|
||||||
|
<define name="ALT_SHIFT_PLUS" value="1"/>
|
||||||
|
<define name="ALT_SHIFT_MINUS" value="-0.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
|
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
|
||||||
|
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
|
||||||
|
<define name="COMMANDS_NB" value="4"/>
|
||||||
|
<define name="NO_MOTOR_MIXING" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
189
conf/airframes/test_boards/aiof7_betafpv.xml
Normal file
189
conf/airframes/test_boards/aiof7_betafpv.xml
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||||
|
|
||||||
|
<airframe name="AIO F7 Test File">
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<configure name="PERIODIC_FREQUENCY" value="500"/>
|
||||||
|
<configure name="RTOS_DEBUG" value="TRUE" />
|
||||||
|
|
||||||
|
<target name="ap" board="betafpv_aiof7">
|
||||||
|
<module name="radio_control" type="sbus"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
|
||||||
|
<configure name="USE_MAGNETOMETER" value="FALSE"/>
|
||||||
|
<define name="USE_GPS"/>
|
||||||
|
<define name="AHRS_USE_GPS_HEADING" value="TRUE" />
|
||||||
|
</target>
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<module name="fdm" type="jsbsim"/>
|
||||||
|
<module name="radio_control" type="ppm"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<module name="telemetry" type="xbee_api">
|
||||||
|
<configure name="MODEM_PORT" value="UART2" />
|
||||||
|
</module>
|
||||||
|
|
||||||
|
|
||||||
|
<module name="actuators" type="dshot">
|
||||||
|
<define name="DSHOT_SPEED" value="600"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<module name="board" type="betafpv_aiof7">
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<module name="gps" type="optitrack"/>
|
||||||
|
|
||||||
|
<module name="stabilization" type="indi"/>
|
||||||
|
<module name="guidance" type="indi"/>
|
||||||
|
|
||||||
|
<module name="ahrs" type="int_cmpl_quat"/>
|
||||||
|
<module name="ins" type="gps_passthrough"/>
|
||||||
|
|
||||||
|
<module name="sys_mon"></module>
|
||||||
|
<module name="shell">
|
||||||
|
<configure name="SHELL_PORT" value="usb_serial_debug"/>
|
||||||
|
</module>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<servos driver="DShot">
|
||||||
|
<servo name="BR" no="1" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="BL" no="2" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FR" no="3" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FL" no="4" min="0" neutral="100" max="2000"/>
|
||||||
|
</servos>
|
||||||
|
|
||||||
|
<commands>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<set servo="FR" value="autopilot_get_motors_on() ? actuators_pprz[0] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BR" value="autopilot_get_motors_on() ? actuators_pprz[1] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BL" value="autopilot_get_motors_on() ? actuators_pprz[2] : -MAX_PPRZ"/>
|
||||||
|
<set servo="FL" value="autopilot_get_motors_on() ? actuators_pprz[3] : -MAX_PPRZ"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="IMU_ACCEL_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="24"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="true"/>
|
||||||
|
<field name="scale" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field name="neutral" value="-9,1,75" type="int[]"/>
|
||||||
|
<field name="scale" value="{{23855,47132,18064},{9728,19217,7339}}"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
|
||||||
|
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
||||||
|
<!-- setpoint limits for attitude stabilization rc flight -->
|
||||||
|
<define name="SP_MAX_PHI" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_THETA" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_R" value="60" unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_A" value="0"/>
|
||||||
|
<define name="DEADBAND_E" value="0"/>
|
||||||
|
<define name="DEADBAND_R" value="50"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||||
|
<define name="NUM_ACT" value="4"/>
|
||||||
|
<!-- reference acceleration for attitude control -->
|
||||||
|
<define name="REF_ERR_P" value="120"/>
|
||||||
|
<define name="REF_ERR_Q" value="130"/>
|
||||||
|
<define name="REF_ERR_R" value="120"/>
|
||||||
|
<define name="REF_RATE_P" value="15"/>
|
||||||
|
<define name="REF_RATE_Q" value="15"/>
|
||||||
|
<define name="REF_RATE_R" value="10"/>
|
||||||
|
<define name="MAX_R" value="60" unit="deg/s"/>
|
||||||
|
|
||||||
|
<!-- second order filter parameters -->
|
||||||
|
<define name="FILT_CUTOFF" value="4.0"/>
|
||||||
|
<define name="FILT_CUTOFF_R" value="4.0"/>
|
||||||
|
|
||||||
|
<!-- Adaptive Learning Rate -->
|
||||||
|
<define name="USE_ADAPTIVE" value="FALSE"/>
|
||||||
|
<define name="ADAPTIVE_MU" value="0.0001"/>
|
||||||
|
|
||||||
|
<!-- Full INDI -->
|
||||||
|
<!-- control effectiveness -->
|
||||||
|
<define name="G1" type="matrix">
|
||||||
|
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||||
|
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||||
|
<field value="{ -3.0, 3.0, -3.0, 3.0 }"/>
|
||||||
|
<field value="{ -1.0, -1.0, -1.0, -1.0 }"/>
|
||||||
|
</define>
|
||||||
|
<!--Counter torque effect of spinning up a rotor-->
|
||||||
|
<define name="G2" value="{ -80, 80, -80, 80.0 }"/>
|
||||||
|
<!-- first order actuator dynamics -->
|
||||||
|
<define name="ACT_FREQ" value="{10.10, 10.10, 10.10, 10.10}"/>
|
||||||
|
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
|
||||||
|
<!--Priority for each axis (roll, pitch, yaw and thrust)-->
|
||||||
|
<define name="ALLOCATION_PSEUDO_INVERSE" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||||
|
<define name="REF_MIN_ZDD" value="-0.4*9.81"/>
|
||||||
|
<define name="REF_MAX_ZDD" value=" 0.4*9.81"/>
|
||||||
|
<define name="REF_MIN_ZD" value="-2."/>
|
||||||
|
<define name="REF_MAX_ZD" value=" 2."/>
|
||||||
|
<define name="NOMINAL_HOVER_THROTTLE" value="0.35"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="MAX_BANK" value="30" unit="deg"/>
|
||||||
|
<define name="REF_MAX_SPEED" value="0.5"/>
|
||||||
|
<define name="REF_MAX_ACCEL" value="2."/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_INDI" prefix="GUIDANCE_INDI_">
|
||||||
|
<define name="SPECIFIC_FORCE_GAIN" value="-500.0"/>
|
||||||
|
<define name="THRUST_DYNAMICS_FREQ" value="25.64"/>
|
||||||
|
<define name="RC_DEBUG" value="FALSE"/>
|
||||||
|
<define name="SPEED_GAINZ" value="2.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="NAV">
|
||||||
|
<define name="ARRIVED_AT_WAYPOINT" value="0.25"/>
|
||||||
|
<define name="NAV_CLIMB_VSPEED" value="0.8"/>
|
||||||
|
<define name="NAV_DESCEND_VSPEED" value="-0.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="CRITIC_BAT_LEVEL" value="7.45" unit="V"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="7.37" unit="V"/>
|
||||||
|
<define name="BAT_NB_CELLS" value="2"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
|
||||||
|
<define name="FAILSAFE_FIXED_THROTTLE" value="0.4"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GCS">
|
||||||
|
<define name="ALT_SHIFT_PLUS_PLUS" value="2"/>
|
||||||
|
<define name="ALT_SHIFT_PLUS" value="1"/>
|
||||||
|
<define name="ALT_SHIFT_MINUS" value="-0.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
|
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
|
||||||
|
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
|
||||||
|
<define name="COMMANDS_NB" value="4"/>
|
||||||
|
<define name="NO_MOTOR_MIXING" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
225
conf/airframes/test_boards/aiof7_tmotor.xml
Normal file
225
conf/airframes/test_boards/aiof7_tmotor.xml
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||||
|
|
||||||
|
<airframe name="AIO F7 Test File">
|
||||||
|
|
||||||
|
<firmware name="rotorcraft">
|
||||||
|
<configure name="PERIODIC_FREQUENCY" value="500"/>
|
||||||
|
<configure name="RTOS_DEBUG" value="FALSE" />
|
||||||
|
|
||||||
|
<target name="ap" board="tmotor_aiof7">
|
||||||
|
<module name="radio_control" type="sbus"/>
|
||||||
|
<define name="RADIO_KILL_SWITCH" value="RADIO_GAIN1"/>
|
||||||
|
</target>
|
||||||
|
<target name="nps" board="pc">
|
||||||
|
<module name="fdm" type="jsbsim"/>
|
||||||
|
<module name="radio_control" type="ppm"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<module name="telemetry" type="transparent">
|
||||||
|
<configure name="MODEM_PORT" value="UART5" />
|
||||||
|
<configure name="MODEM_BAUD" value="B115200" />
|
||||||
|
</module>
|
||||||
|
|
||||||
|
|
||||||
|
<module name="actuators" type="dshot">
|
||||||
|
<define name="DSHOT_SPEED" value="600"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
|
||||||
|
<module name="board" type="tmotor_aiof7">
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<module name="gps" type="ublox">
|
||||||
|
<configure name="GPS_BAUD" value="B115200"/>
|
||||||
|
<configure name="GPS_PORT" value="UART4"/>
|
||||||
|
</module>
|
||||||
|
<module name="mag" type="hmc59xx">
|
||||||
|
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c2"/>
|
||||||
|
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="TRUE"/>
|
||||||
|
<define name="MODULE_HMC58XX_SYNC_SEND" value="FALSE"/>
|
||||||
|
<define name="USE_I2C2"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
<module name="stabilization" type="indi"/>
|
||||||
|
<module name="guidance" type="indi"/>
|
||||||
|
|
||||||
|
<module name="ins" type="ekf2"/>
|
||||||
|
</firmware>
|
||||||
|
|
||||||
|
<servos driver="DShot">
|
||||||
|
<servo name="BL" no="1" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="BR" no="2" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FL" no="3" min="0" neutral="100" max="2000"/>
|
||||||
|
<servo name="FR" no="4" min="0" neutral="100" max="2000"/>
|
||||||
|
</servos>
|
||||||
|
<commands>
|
||||||
|
<axis name="ROLL" failsafe_value="0"/>
|
||||||
|
<axis name="PITCH" failsafe_value="0"/>
|
||||||
|
<axis name="YAW" failsafe_value="0"/>
|
||||||
|
<axis name="THRUST" failsafe_value="0"/>
|
||||||
|
</commands>
|
||||||
|
|
||||||
|
<command_laws>
|
||||||
|
<set servo="FR" value="autopilot_get_motors_on() ? actuators_pprz[0] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BR" value="autopilot_get_motors_on() ? actuators_pprz[1] : -MAX_PPRZ"/>
|
||||||
|
<set servo="BL" value="autopilot_get_motors_on() ? actuators_pprz[2] : -MAX_PPRZ"/>
|
||||||
|
<set servo="FL" value="autopilot_get_motors_on() ? actuators_pprz[3] : -MAX_PPRZ"/>
|
||||||
|
</command_laws>
|
||||||
|
|
||||||
|
<section name="IMU" prefix="IMU_">
|
||||||
|
<define name="ACCEL_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="9"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="true"/>
|
||||||
|
<field name="scale" value="true"/>
|
||||||
|
<field name="rotation" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field name="neutral" value="46,23,6" type="int[]"/>
|
||||||
|
<field name="scale" value="{{1753,57088,52129},{357,11657,10783}}"/>
|
||||||
|
<field value="TMOTOR_AIO_IMU_ROT"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
<define name="GYRO_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="9"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="false"/>
|
||||||
|
<field name="scale" value="false"/>
|
||||||
|
<field name="rotation" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field value="TMOTOR_AIO_IMU_ROT"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
<define name="MAG_CALIB" type="array">
|
||||||
|
<field type="struct">
|
||||||
|
<field name="abi_id" value="2"/>
|
||||||
|
<field name="calibrated" type="struct">
|
||||||
|
<field name="neutral" value="true"/>
|
||||||
|
<field name="scale" value="true"/>
|
||||||
|
<field name="rotation" value="true"/>
|
||||||
|
</field>
|
||||||
|
<field name="neutral" value="-73,-128,17" type="int[]"/>
|
||||||
|
<field name="scale" value="{{610,13504,52135},{163,3657,14546}}"/>
|
||||||
|
<field value="TMOTOR_AIO_MAG_ROT"/>
|
||||||
|
</field>
|
||||||
|
</define>
|
||||||
|
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||||
|
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
||||||
|
<!-- setpoint limits for attitude stabilization rc flight -->
|
||||||
|
<define name="SP_MAX_PHI" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_THETA" value="45" unit="deg"/>
|
||||||
|
<define name="SP_MAX_R" value="60" unit="deg/s"/>
|
||||||
|
<define name="DEADBAND_A" value="0"/>
|
||||||
|
<define name="DEADBAND_E" value="0"/>
|
||||||
|
<define name="DEADBAND_R" value="50"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||||
|
<define name="NUM_ACT" value="4"/>
|
||||||
|
<!-- reference acceleration for attitude control -->
|
||||||
|
<define name="REF_ERR_P" value="120"/>
|
||||||
|
<define name="REF_ERR_Q" value="130"/>
|
||||||
|
<define name="REF_ERR_R" value="120"/>
|
||||||
|
<define name="REF_RATE_P" value="15"/>
|
||||||
|
<define name="REF_RATE_Q" value="15"/>
|
||||||
|
<define name="REF_RATE_R" value="10"/>
|
||||||
|
<define name="MAX_R" value="60" unit="deg/s"/>
|
||||||
|
|
||||||
|
<!-- second order filter parameters -->
|
||||||
|
<define name="FILT_CUTOFF" value="4.0"/>
|
||||||
|
<define name="FILT_CUTOFF_R" value="4.0"/>
|
||||||
|
|
||||||
|
<!-- Adaptive Learning Rate -->
|
||||||
|
<define name="USE_ADAPTIVE" value="FALSE"/>
|
||||||
|
<define name="ADAPTIVE_MU" value="0.0001"/>
|
||||||
|
|
||||||
|
<!-- Full INDI -->
|
||||||
|
<!-- control effectiveness -->
|
||||||
|
<define name="G1" type="matrix">
|
||||||
|
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||||
|
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||||
|
<field value="{ -3.0, 3.0, -3.0, 3.0 }"/>
|
||||||
|
<field value="{ -1.0, -1.0, -1.0, -1.0 }"/>
|
||||||
|
</define>
|
||||||
|
<!--Counter torque effect of spinning up a rotor-->
|
||||||
|
<define name="G2" value="{ -80, 80, -80, 80.0 }"/>
|
||||||
|
<!-- first order actuator dynamics -->
|
||||||
|
<define name="ACT_FREQ" value="{10.10, 10.10, 10.10, 10.10}"/>
|
||||||
|
<define name="ESTIMATION_FILT_CUTOFF" value="4.0"/>
|
||||||
|
<!--Priority for each axis (roll, pitch, yaw and thrust)-->
|
||||||
|
<define name="ALLOCATION_PSEUDO_INVERSE" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||||
|
<define name="REF_MIN_ZDD" value="-0.4*9.81"/>
|
||||||
|
<define name="REF_MAX_ZDD" value=" 0.4*9.81"/>
|
||||||
|
<define name="REF_MIN_ZD" value="-2."/>
|
||||||
|
<define name="REF_MAX_ZD" value=" 2."/>
|
||||||
|
<define name="NOMINAL_HOVER_THROTTLE" value="0.35"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||||
|
<define name="MAX_BANK" value="30" unit="deg"/>
|
||||||
|
<define name="REF_MAX_SPEED" value="0.5"/>
|
||||||
|
<define name="REF_MAX_ACCEL" value="2."/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="GUIDANCE_INDI" prefix="GUIDANCE_INDI_">
|
||||||
|
<define name="SPECIFIC_FORCE_GAIN" value="-500.0"/>
|
||||||
|
<define name="THRUST_DYNAMICS_FREQ" value="25.64"/>
|
||||||
|
<define name="RC_DEBUG" value="FALSE"/>
|
||||||
|
<define name="SPEED_GAINZ" value="2.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="NAV">
|
||||||
|
<define name="ARRIVED_AT_WAYPOINT" value="2."/>
|
||||||
|
<define name="NAV_CLIMB_VSPEED" value="2.5"/>
|
||||||
|
<define name="NAV_DESCEND_VSPEED" value="-1.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="BAT">
|
||||||
|
<define name="MAX_BAT_LEVEL" value="8.4" unit="V"/>
|
||||||
|
<define name="LOW_BAT_LEVEL" value="7.1" unit="V"/>
|
||||||
|
<define name="CRITIC_BAT_LEVEL" value="6.5" unit="V"/>
|
||||||
|
<define name="CATASTROPHIC_BAT_LEVEL" value="6" unit="V"/>
|
||||||
|
<define name="BAT_NB_CELLS" value="2"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="AUTOPILOT">
|
||||||
|
<define name="MODE_STARTUP" value="AP_MODE_NAV"/>
|
||||||
|
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT"/>
|
||||||
|
<define name="MODE_AUTO1" value="AP_MODE_ATTITUDE_Z_HOLD"/>
|
||||||
|
<define name="MODE_AUTO2" value="AP_MODE_NAV"/>
|
||||||
|
<define name="FAILSAFE_FIXED_THROTTLE" value="0.4"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="INS" prefix="INS_">
|
||||||
|
<!--muret-->
|
||||||
|
<define name="H_X" value="0.5180"/>
|
||||||
|
<define name="H_Y" value="-0.0071"/>
|
||||||
|
<define name="H_Z" value="0.8554"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section name="GCS">
|
||||||
|
<define name="ALT_SHIFT_PLUS_PLUS" value="2"/>
|
||||||
|
<define name="ALT_SHIFT_PLUS" value="1"/>
|
||||||
|
<define name="ALT_SHIFT_MINUS" value="-0.5"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section name="SIMULATOR" prefix="NPS_">
|
||||||
|
<define name="ACTUATOR_NAMES" value="ne_motor, se_motor, sw_motor, nw_motor" type="string[]"/>
|
||||||
|
<define name="JSBSIM_MODEL" value="simple_x_quad_ccw" type="string"/>
|
||||||
|
<define name="COMMANDS_NB" value="4"/>
|
||||||
|
<define name="NO_MOTOR_MIXING" value="TRUE"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</airframe>
|
||||||
@@ -65,6 +65,17 @@
|
|||||||
settings_modules="modules/ahrs_float_cmpl_quat.xml modules/ahrs_float_dcm.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
|
settings_modules="modules/ahrs_float_cmpl_quat.xml modules/ahrs_float_dcm.xml modules/air_data.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/logger_sd_chibios.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
|
||||||
gui_color="blue"
|
gui_color="blue"
|
||||||
/>
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="AIOF7BETAFPV"
|
||||||
|
ac_id="20"
|
||||||
|
airframe="airframes/test_boards/aiof7_betafpv.xml"
|
||||||
|
radio="radios/FrSky_X-Lite.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_optitrack.xml"
|
||||||
|
settings=""
|
||||||
|
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/electrical.xml modules/gps.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
<aircraft
|
<aircraft
|
||||||
name="MATEK_H743"
|
name="MATEK_H743"
|
||||||
ac_id="9"
|
ac_id="9"
|
||||||
@@ -87,4 +98,15 @@
|
|||||||
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
|
settings_modules="modules/ahrs_float_dcm.xml modules/air_data.xml modules/airspeed_ms45xx_i2c.xml modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/gps_ubx_ucenter.xml modules/guidance_full_pid_fw.xml modules/imu_common.xml modules/nav_basic_fw.xml modules/stabilization_adaptive_fw.xml"
|
||||||
gui_color="blue"
|
gui_color="blue"
|
||||||
/>
|
/>
|
||||||
|
<aircraft
|
||||||
|
name="AIOTMOTORF7"
|
||||||
|
ac_id="6"
|
||||||
|
airframe="airframes/test_boards/aiof7_tmotor.xml"
|
||||||
|
radio="radios/cockpitSX.xml"
|
||||||
|
telemetry="telemetry/default_rotorcraft.xml"
|
||||||
|
flight_plan="flight_plans/rotorcraft_optitrack.xml"
|
||||||
|
settings=""
|
||||||
|
settings_modules="modules/electrical.xml modules/gps.xml modules/gps_ublox.xml modules/guidance_indi.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_ekf2.xml modules/nav_rotorcraft.xml modules/stabilization_indi.xml"
|
||||||
|
gui_color="red"
|
||||||
|
/>
|
||||||
</conf>
|
</conf>
|
||||||
|
|||||||
96
conf/boards/betafpv_aiof7.makefile
Normal file
96
conf/boards/betafpv_aiof7.makefile
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
# Hey Emacs, this is a -*- makefile -*-
|
||||||
|
#
|
||||||
|
# betafpv_aiof7.makefile
|
||||||
|
#
|
||||||
|
# based on STM32F7
|
||||||
|
# only compatible with ChibiOS
|
||||||
|
#
|
||||||
|
MANUFACTURER=betafpv
|
||||||
|
BOARD=aiof7
|
||||||
|
BOARD_VERSION=2
|
||||||
|
|
||||||
|
BOARD_DIR=$(MANUFACTURER)/$(BOARD)/v$(BOARD_VERSION)
|
||||||
|
BOARD_CFG=\"arch/chibios/common_board.h\"
|
||||||
|
|
||||||
|
ARCH=chibios
|
||||||
|
$(TARGET).ARCHDIR = $(ARCH)
|
||||||
|
|
||||||
|
RTOS=chibios
|
||||||
|
MCU=cortex-m7
|
||||||
|
|
||||||
|
## FPU on F7
|
||||||
|
USE_FPU=softfp
|
||||||
|
USE_FPU_OPT= -mfpu=fpv5-sp-d16
|
||||||
|
|
||||||
|
USE_LTO ?= yes
|
||||||
|
|
||||||
|
$(TARGET).CFLAGS += -DPPRZLINK_ENABLE_FD -DDSHOT_CHANNEL_FIRST_INDEX=1U
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Architecture or project specific options
|
||||||
|
#
|
||||||
|
# Define project name here (target)
|
||||||
|
PROJECT = $(TARGET)
|
||||||
|
|
||||||
|
# Project specific files and paths (see Makefile.chibios for details)
|
||||||
|
CHIBIOS_BOARD_PLATFORM = STM32F7xx/platform.mk
|
||||||
|
CHIBIOS_BOARD_LINKER = STM32F722xE.ld
|
||||||
|
CHIBIOS_BOARD_STARTUP = startup_stm32f7xx.mk
|
||||||
|
|
||||||
|
# ITCM flash is a special flash that allow faster operations
|
||||||
|
# At the moment it is not possible to flash the code in this mode using dfu-util
|
||||||
|
# but it should work with the BlackMagicProbe or STLINK
|
||||||
|
# By default, normal flash is used
|
||||||
|
ifeq ($(USE_ITCM),1)
|
||||||
|
$(TARGET).CFLAGS += -DUSE_ITCM=1
|
||||||
|
DFU_ADDR = 0x00200000
|
||||||
|
else
|
||||||
|
$(TARGET).CFLAGS += -DUSE_ITCM=0
|
||||||
|
DFU_ADDR = 0x08000000
|
||||||
|
endif
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Compiler settings
|
||||||
|
#
|
||||||
|
|
||||||
|
# default flash mode is via usb dfu bootloader
|
||||||
|
# possibilities: DFU-UTIL, SWD, STLINK
|
||||||
|
FLASH_MODE ?= DFU-UTIL
|
||||||
|
|
||||||
|
HAS_LUFTBOOT = FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# default LED configuration
|
||||||
|
#
|
||||||
|
RADIO_CONTROL_LED ?= none
|
||||||
|
BARO_LED ?= none
|
||||||
|
AHRS_ALIGNER_LED ?= none
|
||||||
|
GPS_LED ?= none
|
||||||
|
SYS_TIME_LED ?= 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# default UART configuration (modem, gps, spektrum)
|
||||||
|
#
|
||||||
|
|
||||||
|
MODEM_PORT ?= UART6
|
||||||
|
MODEM_BAUD ?= B57600
|
||||||
|
|
||||||
|
GPS_PORT ?= UART1
|
||||||
|
GPS_BAUD ?= B57600
|
||||||
|
|
||||||
|
RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT ?= UART3
|
||||||
|
|
||||||
|
# single mode
|
||||||
|
SBUS_PORT ?= UART3
|
||||||
|
|
||||||
|
#
|
||||||
|
# default actuator configuration
|
||||||
|
#
|
||||||
|
# you can use different actuators by adding a configure option to your firmware section
|
||||||
|
# e.g. <configure name="ACTUATORS" value="actuators_ppm/>
|
||||||
|
# and by setting the correct "driver" attribute in servo section
|
||||||
|
# e.g. <servo driver="Ppm">
|
||||||
|
#
|
||||||
|
ACTUATORS ?= actuators_pwm
|
||||||
|
|
||||||
|
|
||||||
97
conf/boards/tmotor_aiof7.makefile
Normal file
97
conf/boards/tmotor_aiof7.makefile
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
# Hey Emacs, this is a -*- makefile -*-
|
||||||
|
#
|
||||||
|
# tmotor_aiof7.makefile
|
||||||
|
#
|
||||||
|
# based on STM32F7
|
||||||
|
# only compatible with ChibiOS
|
||||||
|
#
|
||||||
|
MANUFACTURER=tmotor
|
||||||
|
BOARD=aiof7
|
||||||
|
BOARD_VERSION=1
|
||||||
|
|
||||||
|
BOARD_DIR=$(MANUFACTURER)/$(BOARD)/v$(BOARD_VERSION)
|
||||||
|
BOARD_CFG=\"arch/chibios/common_board.h\"
|
||||||
|
# BOARD_CFG=\"boards/$(BOARD_DIR)/$(BOARD)$(MANUFACTURER).h\"
|
||||||
|
|
||||||
|
ARCH=chibios
|
||||||
|
$(TARGET).ARCHDIR = $(ARCH)
|
||||||
|
|
||||||
|
RTOS=chibios
|
||||||
|
MCU=cortex-m7
|
||||||
|
|
||||||
|
## FPU on F7
|
||||||
|
USE_FPU=softfp
|
||||||
|
USE_FPU_OPT= -mfpu=fpv5-sp-d16
|
||||||
|
|
||||||
|
USE_LTO ?= yes
|
||||||
|
|
||||||
|
$(TARGET).CFLAGS += -DPPRZLINK_ENABLE_FD -DDSHOT_CHANNEL_FIRST_INDEX=1U
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Architecture or project specific options
|
||||||
|
#
|
||||||
|
# Define project name here (target)
|
||||||
|
PROJECT = $(TARGET)
|
||||||
|
|
||||||
|
# Project specific files and paths (see Makefile.chibios for details)
|
||||||
|
CHIBIOS_BOARD_PLATFORM = STM32F7xx/platform.mk
|
||||||
|
CHIBIOS_BOARD_LINKER = STM32F722xE.ld
|
||||||
|
CHIBIOS_BOARD_STARTUP = startup_stm32f7xx.mk
|
||||||
|
|
||||||
|
# ITCM flash is a special flash that allow faster operations
|
||||||
|
# At the moment it is not possible to flash the code in this mode using dfu-util
|
||||||
|
# but it should work with the BlackMagicProbe or STLINK
|
||||||
|
# By default, normal flash is used
|
||||||
|
ifeq ($(USE_ITCM),1)
|
||||||
|
$(TARGET).CFLAGS += -DUSE_ITCM=1
|
||||||
|
DFU_ADDR = 0x00200000
|
||||||
|
else
|
||||||
|
$(TARGET).CFLAGS += -DUSE_ITCM=0
|
||||||
|
DFU_ADDR = 0x08000000
|
||||||
|
endif
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Compiler settings
|
||||||
|
#
|
||||||
|
|
||||||
|
# default flash mode is via usb dfu bootloader
|
||||||
|
# possibilities: DFU-UTIL, SWD, STLINK
|
||||||
|
FLASH_MODE ?= DFU-UTIL
|
||||||
|
|
||||||
|
HAS_LUFTBOOT = FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# default LED configuration
|
||||||
|
#
|
||||||
|
RADIO_CONTROL_LED ?= none
|
||||||
|
BARO_LED ?= none
|
||||||
|
AHRS_ALIGNER_LED ?= none
|
||||||
|
GPS_LED ?= none
|
||||||
|
SYS_TIME_LED ?= 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# default UART configuration (modem, gps, spektrum)
|
||||||
|
#
|
||||||
|
|
||||||
|
MODEM_PORT ?= UART5
|
||||||
|
MODEM_BAUD ?= B57600
|
||||||
|
|
||||||
|
GPS_PORT ?= UART4
|
||||||
|
GPS_BAUD ?= B57600
|
||||||
|
|
||||||
|
RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT ?= UART1
|
||||||
|
|
||||||
|
# single mode
|
||||||
|
SBUS_PORT ?= UART1
|
||||||
|
|
||||||
|
#
|
||||||
|
# default actuator configuration
|
||||||
|
#
|
||||||
|
# you can use different actuators by adding a configure option to your firmware section
|
||||||
|
# e.g. <configure name="ACTUATORS" value="actuators_ppm/>
|
||||||
|
# and by setting the correct "driver" attribute in servo section
|
||||||
|
# e.g. <servo driver="Ppm">
|
||||||
|
#
|
||||||
|
ACTUATORS ?= actuators_pwm
|
||||||
|
|
||||||
|
|
||||||
@@ -34,6 +34,8 @@
|
|||||||
<board name="nucleo.*"/>
|
<board name="nucleo.*"/>
|
||||||
<board name="matek_.*"/>
|
<board name="matek_.*"/>
|
||||||
<board name="holybro_.*"/>
|
<board name="holybro_.*"/>
|
||||||
|
<board name="tmotor_aiof7"/>
|
||||||
|
<board name="betafpv_aiof7"/>
|
||||||
</boards>
|
</boards>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name="USB CubeProgrammer">
|
<mode name="USB CubeProgrammer">
|
||||||
@@ -50,6 +52,8 @@
|
|||||||
<board name="nucleo.*"/>
|
<board name="nucleo.*"/>
|
||||||
<board name="matek_.*"/>
|
<board name="matek_.*"/>
|
||||||
<board name="holybro_.*"/>
|
<board name="holybro_.*"/>
|
||||||
|
<board name="tmotor_aiof7"/>
|
||||||
|
<board name="betafpv_aiof7"/>
|
||||||
</boards>
|
</boards>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name="STLink (SWD)">
|
<mode name="STLink (SWD)">
|
||||||
@@ -91,6 +95,8 @@
|
|||||||
<board name="matek_.*"/>
|
<board name="matek_.*"/>
|
||||||
<board name="holybro_.*"/>
|
<board name="holybro_.*"/>
|
||||||
<board name="cube_.*"/>
|
<board name="cube_.*"/>
|
||||||
|
<board name="betafpv_aiof7"/>
|
||||||
|
<board name="tmotor_aiof7"/>
|
||||||
</boards>
|
</boards>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name="BlackMagic Probe (SWD_NOPWR)">
|
<mode name="BlackMagic Probe (SWD_NOPWR)">
|
||||||
|
|||||||
19
conf/modules/board_betafpv_aiof7.xml
Normal file
19
conf/modules/board_betafpv_aiof7.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<!DOCTYPE module SYSTEM "module.dtd">
|
||||||
|
|
||||||
|
<module name="board_betafpv_aiof7" dir="boards">
|
||||||
|
<doc>
|
||||||
|
<description>
|
||||||
|
Autoload several onboard sensors for the betafpv aiof7 board with proper configuration
|
||||||
|
- IMU (ICM42688)
|
||||||
|
- Baro (Externe)
|
||||||
|
- Mag (Externe)
|
||||||
|
</description>
|
||||||
|
</doc>
|
||||||
|
<dep>
|
||||||
|
<depends>imu_icm42688</depends>
|
||||||
|
</dep>
|
||||||
|
<makefile target="!sim|nps|fbw">
|
||||||
|
<configure name="IMU_SPI_DEV" value="spi1" case="upper|lower"/>
|
||||||
|
<configure name="IMU_SPI_SLAVE_IDX" value="SPI_SLAVE0"/>
|
||||||
|
</makefile>
|
||||||
|
</module>
|
||||||
25
conf/modules/board_tmotor_aiof7.xml
Normal file
25
conf/modules/board_tmotor_aiof7.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<!DOCTYPE module SYSTEM "module.dtd">
|
||||||
|
|
||||||
|
<module name="board_tmotor_aiof7" dir="boards">
|
||||||
|
<doc>
|
||||||
|
<description>
|
||||||
|
Autoload several onboard sensors for the T-Motor aiof7 board with proper configuration
|
||||||
|
- IMU (MPU6500)
|
||||||
|
- Baro (BMP280 SPI)
|
||||||
|
- Mag (Externe)
|
||||||
|
</description>
|
||||||
|
</doc>
|
||||||
|
<dep>
|
||||||
|
<depends>imu_mpu6000,baro_bmp280</depends>
|
||||||
|
</dep>
|
||||||
|
<makefile target="!sim|nps|fbw">
|
||||||
|
<configure name="IMU_SPI_DEV" value="spi1" case="upper|lower"/>
|
||||||
|
<configure name="IMU_SPI_SLAVE_IDX" value="SPI_SLAVE0"/>
|
||||||
|
<define name="TMOTOR_AIO_IMU_ROT" value=".body_to_sensor={{16383,0,0,0,-16383,0,0,0,-16382}}"/>
|
||||||
|
<define name="TMOTOR_AIO_MAG_ROT" value=".body_to_sensor={{11585,11585,0,-11585,11585,0,0,0,16382}}"/>
|
||||||
|
|
||||||
|
<configure name="BMP280_USE_SPI" value="TRUE"/>
|
||||||
|
<configure name="BMP280_DEV" value="spi3"/>
|
||||||
|
<configure name="BMP280_SLAVE_IDX" value="SPI_SLAVE3"/>
|
||||||
|
</makefile>
|
||||||
|
</module>
|
||||||
13
conf/modules/boards/betafpv_aiof7.xml
Normal file
13
conf/modules/boards/betafpv_aiof7.xml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE module SYSTEM "../module.dtd">
|
||||||
|
|
||||||
|
<module name="betafpv_aiof7" dir="boards">
|
||||||
|
<doc>
|
||||||
|
<description>
|
||||||
|
Specific configuration for betafpv AIO F7
|
||||||
|
</description>
|
||||||
|
</doc>
|
||||||
|
<dep>
|
||||||
|
<depends>hard_fault_recovery</depends>
|
||||||
|
</dep>
|
||||||
|
<makefile target="!sim|nps|fbw"/>
|
||||||
|
</module>
|
||||||
13
conf/modules/boards/tmotor_aiof7.xml
Normal file
13
conf/modules/boards/tmotor_aiof7.xml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE module SYSTEM "../module.dtd">
|
||||||
|
|
||||||
|
<module name="tmotor_aiof7" dir="boards">
|
||||||
|
<doc>
|
||||||
|
<description>
|
||||||
|
Specific configuration for T-Motor AIO F7
|
||||||
|
</description>
|
||||||
|
</doc>
|
||||||
|
<dep>
|
||||||
|
<depends>hard_fault_recovery</depends>
|
||||||
|
</dep>
|
||||||
|
<makefile target="!sim|nps|fbw"/>
|
||||||
|
</module>
|
||||||
136
sw/airborne/arch/chibios/STM32F722xE.ld
Normal file
136
sw/airborne/arch/chibios/STM32F722xE.ld
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
/*
|
||||||
|
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ST32F722xE generic setup.
|
||||||
|
*
|
||||||
|
* RAM0 - Data, Heap.
|
||||||
|
* RAM3 - Main Stack, Process Stack, BSS, NOCACHE, ETH.
|
||||||
|
*
|
||||||
|
* Notes:
|
||||||
|
* BSS is placed in DTCM RAM in order to simplify DMA buffers management.
|
||||||
|
*/
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
flash0 (rx) : org = 0x08000000, len = 1M /* Flash as AXIM (writable) */
|
||||||
|
flash1 (rx) : org = 0x00200000, len = 1M /* Flash as ITCM */
|
||||||
|
flash2 (rx) : org = 0x00000000, len = 0
|
||||||
|
flash3 (rx) : org = 0x00000000, len = 0
|
||||||
|
flash4 (rx) : org = 0x00000000, len = 0
|
||||||
|
flash5 (rx) : org = 0x00000000, len = 0
|
||||||
|
flash6 (rx) : org = 0x00000000, len = 0
|
||||||
|
flash7 (rx) : org = 0x00000000, len = 0
|
||||||
|
ram0 (wx) : org = 0x20010000, len = 192k /* SRAM1 + SRAM2 */
|
||||||
|
ram1 (wx) : org = 0x20010000, len = 176k /* SRAM1 */
|
||||||
|
ram2 (wx) : org = 0x2003C000, len = 16k /* SRAM2 */
|
||||||
|
ram3 (wx) : org = 0x20000000, len = 64k /* DTCM-RAM */
|
||||||
|
ram4 (wx) : org = 0x00000000, len = 16k /* ITCM-RAM */
|
||||||
|
ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */
|
||||||
|
ram6 (wx) : org = 0x00000000, len = 0
|
||||||
|
ram7 (wx) : org = 0x00000000, len = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For each data/text section two region are defined, a virtual region
|
||||||
|
and a load region (_LMA suffix).*/
|
||||||
|
|
||||||
|
/* Flash region to be used for exception vectors.*/
|
||||||
|
REGION_ALIAS("VECTORS_FLASH", flash1);
|
||||||
|
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
|
||||||
|
|
||||||
|
/* Flash region to be used for constructors and destructors.*/
|
||||||
|
REGION_ALIAS("XTORS_FLASH", flash1);
|
||||||
|
REGION_ALIAS("XTORS_FLASH_LMA", flash0);
|
||||||
|
|
||||||
|
/* Flash region to be used for code text.*/
|
||||||
|
REGION_ALIAS("TEXT_FLASH", flash1);
|
||||||
|
REGION_ALIAS("TEXT_FLASH_LMA", flash0);
|
||||||
|
|
||||||
|
/* Flash region to be used for read only data.*/
|
||||||
|
REGION_ALIAS("RODATA_FLASH", flash0);
|
||||||
|
REGION_ALIAS("RODATA_FLASH_LMA", flash0);
|
||||||
|
|
||||||
|
/* Flash region to be used for various.*/
|
||||||
|
REGION_ALIAS("VARIOUS_FLASH", flash1);
|
||||||
|
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
|
||||||
|
|
||||||
|
/* Flash region to be used for RAM(n) initialization data.*/
|
||||||
|
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
|
||||||
|
|
||||||
|
/* RAM region to be used for Main stack. This stack accommodates the processing
|
||||||
|
of all exceptions and interrupts.*/
|
||||||
|
REGION_ALIAS("MAIN_STACK_RAM", ram3);
|
||||||
|
|
||||||
|
/* RAM region to be used for the process stack. This is the stack used by
|
||||||
|
the main() function.*/
|
||||||
|
REGION_ALIAS("PROCESS_STACK_RAM", ram3);
|
||||||
|
|
||||||
|
/* RAM region to be used for data segment.*/
|
||||||
|
REGION_ALIAS("DATA_RAM", ram0);
|
||||||
|
REGION_ALIAS("DATA_RAM_LMA", flash0);
|
||||||
|
|
||||||
|
/* RAM region to be used for BSS segment.*/
|
||||||
|
REGION_ALIAS("BSS_RAM", ram3);
|
||||||
|
|
||||||
|
/* RAM region to be used for the default heap.*/
|
||||||
|
REGION_ALIAS("HEAP_RAM", ram0);
|
||||||
|
|
||||||
|
/* Stack rules inclusion.*/
|
||||||
|
INCLUDE rules_stacks.ld
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Custom sections for STM32F7xx. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/* RAM region to be used for nocache segment.*/
|
||||||
|
REGION_ALIAS("NOCACHE_RAM", ram3);
|
||||||
|
|
||||||
|
/* RAM region to be used for eth segment.*/
|
||||||
|
REGION_ALIAS("ETH_RAM", ram3);
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* Special section for non cache-able areas.*/
|
||||||
|
.nocache (NOLOAD) : ALIGN(4)
|
||||||
|
{
|
||||||
|
__nocache_base__ = .;
|
||||||
|
*(.nocache)
|
||||||
|
*(.nocache.*)
|
||||||
|
*(.bss.__nocache_*)
|
||||||
|
. = ALIGN(4);
|
||||||
|
__nocache_end__ = .;
|
||||||
|
} > NOCACHE_RAM
|
||||||
|
|
||||||
|
/* Special section for Ethernet DMA non cache-able areas.*/
|
||||||
|
.eth (NOLOAD) : ALIGN(4)
|
||||||
|
{
|
||||||
|
__eth_base__ = .;
|
||||||
|
*(.eth)
|
||||||
|
*(.eth.*)
|
||||||
|
*(.bss.__eth_*)
|
||||||
|
. = ALIGN(4);
|
||||||
|
__eth_end__ = .;
|
||||||
|
} > ETH_RAM
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code rules inclusion.*/
|
||||||
|
INCLUDE rules_code.ld
|
||||||
|
|
||||||
|
/* Data rules inclusion.*/
|
||||||
|
INCLUDE rules_data.ld
|
||||||
|
|
||||||
|
/* Memory rules inclusion.*/
|
||||||
|
INCLUDE rules_memory.ld
|
||||||
|
|
||||||
9
sw/airborne/boards/betafpv/aiof7/v2/Makefile
Normal file
9
sw/airborne/boards/betafpv/aiof7/v2/Makefile
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# file board.h is generated from file board.cfg by a script which is hosted here :
|
||||||
|
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/boardGen.pl
|
||||||
|
|
||||||
|
# documentation is here :
|
||||||
|
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/DOC/boardGen.pdf
|
||||||
|
|
||||||
|
board.h: aiof7.cfg Makefile
|
||||||
|
boardGen.pl --no-pp-line $< $@
|
||||||
|
|
||||||
260
sw/airborne/boards/betafpv/aiof7/v2/aiof7.cfg
Normal file
260
sw/airborne/boards/betafpv/aiof7/v2/aiof7.cfg
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
MCU_MODEL = STM32F722R(C-E)Tx
|
||||||
|
CHIBIOS_VERSION = 3.0
|
||||||
|
|
||||||
|
HEADER
|
||||||
|
/*
|
||||||
|
* Board identifier.
|
||||||
|
*/
|
||||||
|
#define BOARD_AIOF7
|
||||||
|
#define BOARD_NAME "AIO F7"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Board oscillators-related settings.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_LSECLK)
|
||||||
|
#define STM32_LSECLK 32768U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STM32_LSEDRV (3U << 3U)
|
||||||
|
|
||||||
|
#if !defined(STM32_HSECLK)
|
||||||
|
#define STM32_HSECLK 8000000U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Board voltages.
|
||||||
|
* Required for performance limits calculation.
|
||||||
|
*/
|
||||||
|
#define STM32_VDD 300U
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MCU type as defined in the ST header.
|
||||||
|
*/
|
||||||
|
#define STM32F722xx
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DSHOT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define DSHOT_TIM3_TELEMETRY_DEV NULL
|
||||||
|
#define DSHOT_TIM4_TELEMETRY_DEV NULL
|
||||||
|
#define DSHOT_TIM5_TELEMETRY_DEV NULL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef USE_DSHOT_TIM3
|
||||||
|
#define USE_DSHOT_TIM3 1 // SERVO1 SERVO2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_DSHOT_TIM4
|
||||||
|
#define USE_DSHOT_TIM4 1 // SERVO5 SERVO6
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_DSHOT_TIM5
|
||||||
|
#define USE_DSHOT_TIM5 1 // SERVO3 SERVO4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_DSHOT_TIM3 // SERVO1 SERVO2 on TIM3
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_1 1
|
||||||
|
#define DSHOT_SERVO_1_GPIO PAL_PORT(LINE_SERVO1)
|
||||||
|
#define DSHOT_SERVO_1_PIN PAL_PAD(LINE_SERVO1)
|
||||||
|
#define DSHOT_SERVO_1_AF AF_LINE_SERVO1
|
||||||
|
#define DSHOT_SERVO_1_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO1_TIM)
|
||||||
|
#define DSHOT_SERVO_1_CHANNEL SERVO1_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_2 2
|
||||||
|
#define DSHOT_SERVO_2_GPIO PAL_PORT(LINE_SERVO2)
|
||||||
|
#define DSHOT_SERVO_2_PIN PAL_PAD(LINE_SERVO2)
|
||||||
|
#define DSHOT_SERVO_2_AF AF_LINE_SERVO2
|
||||||
|
#define DSHOT_SERVO_2_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO2_TIM)
|
||||||
|
#define DSHOT_SERVO_2_CHANNEL SERVO2_TIM_CH
|
||||||
|
|
||||||
|
|
||||||
|
#define DSHOT_CONF_TIM3 1
|
||||||
|
#define DSHOT_CONF3_DEF { \
|
||||||
|
.dma_stream = STM32_PWM3_UP_DMA_STREAM, \
|
||||||
|
.dma_channel = STM32_PWM3_UP_DMA_CHANNEL, \
|
||||||
|
.pwmp = &PWMD3, \
|
||||||
|
.tlm_sd = DSHOT_TIM3_TELEMETRY_DEV, \
|
||||||
|
.dma_buf = &dshot3DmaBuffer, \
|
||||||
|
.dcache_memory_in_use = false \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if USE_DSHOT_TIM4 // SERVO5 SERVO6 on TIM4
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_5 5
|
||||||
|
#define DSHOT_SERVO_5_GPIO PAL_PORT(LINE_SERVO5)
|
||||||
|
#define DSHOT_SERVO_5_PIN PAL_PAD(LINE_SERVO5)
|
||||||
|
#define DSHOT_SERVO_5_AF AF_LINE_SERVO5
|
||||||
|
#define DSHOT_SERVO_5_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO5_TIM)
|
||||||
|
#define DSHOT_SERVO_5_CHANNEL SERVO5_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_6 6
|
||||||
|
#define DSHOT_SERVO_6_GPIO PAL_PORT(LINE_SERVO6)
|
||||||
|
#define DSHOT_SERVO_6_PIN PAL_PAD(LINE_SERVO6)
|
||||||
|
#define DSHOT_SERVO_6_AF AF_LINE_SERVO6
|
||||||
|
#define DSHOT_SERVO_6_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO6_TIM)
|
||||||
|
#define DSHOT_SERVO_6_CHANNEL SERVO6_TIM_CH
|
||||||
|
|
||||||
|
|
||||||
|
#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_TIM4_TELEMETRY_DEV, \
|
||||||
|
.dma_buf = &dshot4DmaBuffer, \
|
||||||
|
.dcache_memory_in_use = false \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_DSHOT_TIM5 // SERVO3 SERVO4 on TIM5
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_3 3
|
||||||
|
#define DSHOT_SERVO_3_GPIO PAL_PORT(LINE_SERVO3)
|
||||||
|
#define DSHOT_SERVO_3_PIN PAL_PAD(LINE_SERVO3)
|
||||||
|
#define DSHOT_SERVO_3_AF AF_LINE_SERVO3
|
||||||
|
#define DSHOT_SERVO_3_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO3_TIM)
|
||||||
|
#define DSHOT_SERVO_3_CHANNEL SERVO3_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_4 4
|
||||||
|
#define DSHOT_SERVO_4_GPIO PAL_PORT(LINE_SERVO4)
|
||||||
|
#define DSHOT_SERVO_4_PIN PAL_PAD(LINE_SERVO4)
|
||||||
|
#define DSHOT_SERVO_4_AF AF_LINE_SERVO4
|
||||||
|
#define DSHOT_SERVO_4_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO4_TIM)
|
||||||
|
#define DSHOT_SERVO_4_CHANNEL SERVO4_TIM_CH
|
||||||
|
|
||||||
|
|
||||||
|
#define DSHOT_CONF_TIM5 1
|
||||||
|
#define DSHOT_CONF5_DEF { \
|
||||||
|
.dma_stream = STM32_PWM5_UP_DMA_STREAM, \
|
||||||
|
.dma_channel = STM32_PWM5_UP_DMA_CHANNEL, \
|
||||||
|
.pwmp = &PWMD5, \
|
||||||
|
.tlm_sd = DSHOT_TIM5_TELEMETRY_DEV, \
|
||||||
|
.dma_buf = &dshot5DmaBuffer, \
|
||||||
|
.dcache_memory_in_use = false \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* enable TIM5, TIM3, TIM4 by default
|
||||||
|
*/
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
|
||||||
|
#ifndef ADC_CHANNEL_VSUPPLY
|
||||||
|
#define ADC_CHANNEL_VSUPPLY ADC_1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DefaultVoltageOfAdc(adc) ((3.3f/4096.0f)*10.91*adc)
|
||||||
|
CONFIG
|
||||||
|
|
||||||
|
|
||||||
|
# PIN NAME PERIPH_TYPE AF_NUMBER or
|
||||||
|
# PIN NAME FUNCTION PP_or_OPENDRAIN PIN_SPEED PULL_RESISTOR INITIAL_LEVEL AF_NUMBER
|
||||||
|
# SPEED : SPEED_VERYLOW, SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH
|
||||||
|
#
|
||||||
|
# DEFAULT AND SYS
|
||||||
|
#
|
||||||
|
# 'SYS' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'ADC' => ['ANALOG', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
|
||||||
|
# 'PWM' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
|
||||||
|
# 'ICU' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'I2C' => ['ALTERNATE', 'OPENDRAIN', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||||
|
# 'SPI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'UART' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||||
|
# 'OTG' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'ETH' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'FSMC' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'SDIO' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||||
|
# 'SDIOCK' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'CAN' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'DCMI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'LED' => ['OUTPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW'],
|
||||||
|
# 'PASSIVE' => ['INPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW']);
|
||||||
|
#
|
||||||
|
# SYSTEM
|
||||||
|
A13 SWDIO SYS AF:SYS_JTMS-SWDIO
|
||||||
|
A14 SWCLK SYS AF:SYS_JTCK-SWCLK
|
||||||
|
# C14 OSC32_IN SYS AF0
|
||||||
|
# C15 OSC32_OUT SYS AF0
|
||||||
|
H00 OSC_IN SYS AF0
|
||||||
|
H01 OSC_OUT SYS AF0
|
||||||
|
|
||||||
|
#DEFAULT
|
||||||
|
DEFAULT INPUT PUSHPULL SPEED_VERYLOW PULLDOWN LEVEL_LOW AF0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ACTIVE PINS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PA00 SERVO4 PWM AF:TIM5_CH1 ()
|
||||||
|
PA01 SERVO3 PWM AF:TIM5_CH2 ()
|
||||||
|
PA02 UART2_TX UART AF:USART2_TX
|
||||||
|
PA03 UART2_RX UART AF:USART2_RX
|
||||||
|
PA04 SPI_SLAVE0 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # GYRO1_EXT_CS
|
||||||
|
PA05 SPI1_CLK SPI AF:SPI1_SCK
|
||||||
|
PA06 SPI1_MISO SPI AF:SPI1_MISO
|
||||||
|
PA07 SPI1_MOSI SPI AF:SPI1_MOSI
|
||||||
|
PA08 AUX PWM AF:TIM1_CH1 ()
|
||||||
|
PA09 UART1_TX UART AF:USART1_TX
|
||||||
|
PA10 UART1_RX UART AF:USART1_RX
|
||||||
|
PA11 OTG_FS_DM OTG AF:USB_OTG_FS_DM
|
||||||
|
PA12 OTG_FS_DP OTG AF:USB_OTG_FS_DP
|
||||||
|
PA15 SPI_SLAVE1 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # OSD_EXT_CS
|
||||||
|
|
||||||
|
PB00 SERVO1 PWM AF:TIM3_CH3 ()
|
||||||
|
PB01 SERVO2 PWM AF:TIM3_CH4 ()
|
||||||
|
PB02 GYRO_EXTI_2 INPUT PULLUP
|
||||||
|
PB03 SPI3_CLK SPI AF:SPI3_SCK
|
||||||
|
PB04 SPI3_MISO SPI AF:SPI3_MISO
|
||||||
|
PB05 SPI3_MOSI SPI AF:SPI3_MOSI
|
||||||
|
PB06 SERVO5 PWM AF:TIM4_CH1 ()
|
||||||
|
PB07 SERVO6 PWM AF:TIM4_CH2 ()
|
||||||
|
PB08 I2C1_SCL I2C AF:I2C1_SCL
|
||||||
|
PB09 I2C1_SDA I2C AF:I2C1_SDA
|
||||||
|
PB10 UART3_TX UART AF:USART3_TX
|
||||||
|
PB11 RC1 UART AF:USART3_RX ()
|
||||||
|
PB12 SPI_SLAVE2 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # FLASH_EXT_CS
|
||||||
|
PB13 SPI2_CLK SPI AF:SPI2_SCK
|
||||||
|
PB14 SPI2_MISO SPI AF:SPI2_MISO
|
||||||
|
PB15 SPI2_MOSI SPI AF:SPI2_MOSI
|
||||||
|
|
||||||
|
PC00 ADC1 ADC ADC1_IN10 ()
|
||||||
|
PC03 SPI_SLAVE3 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # GYRO2_EXT_CS
|
||||||
|
PC04 GYRO_EXTI_1 INPUT PULLUP
|
||||||
|
PC06 UART6_TX UART AF:USART6_TX
|
||||||
|
PC07 UART6_RX UART AF:USART6_RX
|
||||||
|
PC10 UART4_TX UART AF:UART4_TX
|
||||||
|
PC11 UART4_RX UART AF:UART4_RX
|
||||||
|
PC12 UART5_TX UART AF:UART5_TX
|
||||||
|
PC13 SPI_SLAVE4 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # BARO_EXT_CS
|
||||||
|
PC14 BEEPER OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_LOW
|
||||||
|
PC15 LED1 LED
|
||||||
|
|
||||||
|
PD02 UART5_RX UART AF:UART5_RX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# GROUPS
|
||||||
|
GROUP ENERGY_SAVE_INPUT %NAME=~/^AUX_[A-B][0-9]+|LED[0-9]+|.*_CS$/
|
||||||
1718
sw/airborne/boards/betafpv/aiof7/v2/board.h
Normal file
1718
sw/airborne/boards/betafpv/aiof7/v2/board.h
Normal file
File diff suppressed because it is too large
Load Diff
499
sw/airborne/boards/betafpv/aiof7/v2/mcuconf_board.h
Normal file
499
sw/airborne/boards/betafpv/aiof7/v2/mcuconf_board.h
Normal file
@@ -0,0 +1,499 @@
|
|||||||
|
/*
|
||||||
|
ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MCUCONF_H
|
||||||
|
#define MCUCONF_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* STM32F7xx drivers configuration.
|
||||||
|
* The following settings override the default settings present in
|
||||||
|
* the various device driver implementation headers.
|
||||||
|
* Note that the settings for each driver only have effect if the whole
|
||||||
|
* driver is enabled in halconf.h.
|
||||||
|
*
|
||||||
|
* IRQ priorities:
|
||||||
|
* 15...0 Lowest...Highest.
|
||||||
|
*
|
||||||
|
* DMA priorities:
|
||||||
|
* 0...3 Lowest...Highest.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STM32F7xx_MCUCONF
|
||||||
|
#define STM32F722_MCUCONF
|
||||||
|
#define STM32F732_MCUCONF
|
||||||
|
#define STM32F723_MCUCONF
|
||||||
|
#define STM32F733_MCUCONF
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Memory attributes settings.
|
||||||
|
*/
|
||||||
|
// #define STM32_NOCACHE_ENABLE FALSE
|
||||||
|
// #define STM32_NOCACHE_MPU_REGION MPU_REGION_6
|
||||||
|
// #define STM32_NOCACHE_RBAR 0x2004C000U
|
||||||
|
// #define STM32_NOCACHE_RASR MPU_RASR_SIZE_16K
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HAL driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_NO_INIT FALSE
|
||||||
|
#define STM32_PVD_ENABLE FALSE
|
||||||
|
#define STM32_PLS STM32_PLS_LEV0
|
||||||
|
#define STM32_BKPRAM_ENABLE FALSE
|
||||||
|
#define STM32_HSI_ENABLED TRUE
|
||||||
|
#define STM32_LSI_ENABLED TRUE
|
||||||
|
#define STM32_HSE_ENABLED TRUE
|
||||||
|
#define STM32_LSE_ENABLED FALSE
|
||||||
|
#define STM32_CLOCK48_REQUIRED TRUE
|
||||||
|
#define STM32_SW STM32_SW_PLL
|
||||||
|
#define STM32_PLLSRC STM32_PLLSRC_HSE
|
||||||
|
#define STM32_PLLM_VALUE 8
|
||||||
|
#define STM32_PLLN_VALUE 432
|
||||||
|
#define STM32_PLLP_VALUE 4
|
||||||
|
#define STM32_PLLQ_VALUE 9
|
||||||
|
#define STM32_HPRE STM32_HPRE_DIV1
|
||||||
|
#define STM32_PPRE1 STM32_PPRE1_DIV4
|
||||||
|
#define STM32_PPRE2 STM32_PPRE2_DIV2
|
||||||
|
#if HAL_USE_RTC
|
||||||
|
#define STM32_RTCSEL STM32_RTCSEL_LSI
|
||||||
|
#else
|
||||||
|
#define STM32_RTCSEL STM32_RTCSEL_NOCLOCK
|
||||||
|
#endif
|
||||||
|
#define STM32_RTCPRE_VALUE 8 // 25
|
||||||
|
#define STM32_MCO1SEL STM32_MCO1SEL_HSI
|
||||||
|
#define STM32_MCO1PRE STM32_MCO1PRE_DIV1
|
||||||
|
#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
|
||||||
|
#define STM32_MCO2PRE STM32_MCO2PRE_DIV1
|
||||||
|
#define STM32_TIMPRE_ENABLE FALSE
|
||||||
|
#define STM32_I2SSRC STM32_I2SSRC_OFF
|
||||||
|
#define STM32_PLLI2SN_VALUE 192
|
||||||
|
#define STM32_PLLI2SP_VALUE 4
|
||||||
|
#define STM32_PLLI2SQ_VALUE 4
|
||||||
|
#define STM32_PLLI2SR_VALUE 4
|
||||||
|
#define STM32_PLLI2SDIVQ_VALUE 1
|
||||||
|
#define STM32_PLLSAIN_VALUE 192
|
||||||
|
#define STM32_PLLSAIP_VALUE 4
|
||||||
|
#define STM32_PLLSAIQ_VALUE 4
|
||||||
|
#define STM32_PLLSAIR_VALUE 4
|
||||||
|
#define STM32_PLLSAIDIVQ_VALUE 1
|
||||||
|
#define STM32_PLLSAIDIVR_VALUE 2
|
||||||
|
#define STM32_SAI1SEL STM32_SAI1SEL_OFF
|
||||||
|
#define STM32_SAI2SEL STM32_SAI2SEL_OFF
|
||||||
|
#define STM32_LCDTFT_REQUIRED FALSE
|
||||||
|
#define STM32_USART1SEL STM32_USART1SEL_PCLK2
|
||||||
|
#define STM32_USART2SEL STM32_USART2SEL_PCLK1
|
||||||
|
#define STM32_USART3SEL STM32_USART3SEL_PCLK1
|
||||||
|
#define STM32_UART4SEL STM32_UART4SEL_PCLK1
|
||||||
|
#define STM32_UART5SEL STM32_UART5SEL_PCLK1
|
||||||
|
#define STM32_USART6SEL STM32_USART6SEL_PCLK2
|
||||||
|
#define STM32_UART7SEL STM32_UART7SEL_PCLK1
|
||||||
|
#define STM32_UART8SEL STM32_UART8SEL_PCLK1
|
||||||
|
#define STM32_I2C1SEL STM32_I2C1SEL_PCLK1
|
||||||
|
#define STM32_I2C2SEL STM32_I2C2SEL_PCLK1
|
||||||
|
#define STM32_I2C3SEL STM32_I2C3SEL_PCLK1
|
||||||
|
#define STM32_LPTIM1SEL STM32_LPTIM1SEL_PCLK1
|
||||||
|
#define STM32_CECSEL STM32_CECSEL_LSE //TAWAKI 1
|
||||||
|
#define STM32_CK48MSEL STM32_CK48MSEL_PLL
|
||||||
|
#define STM32_SDMMC1SEL STM32_SDMMC1SEL_PLL48CLK
|
||||||
|
#define STM32_SDMMC2SEL STM32_SDMMC2SEL_PLL48CLK
|
||||||
|
#define STM32_SRAM2_NOCACHE FALSE//TAWAKI 1
|
||||||
|
/*
|
||||||
|
* IRQ system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_IRQ_EXTI0_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI1_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI2_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI3_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI4_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI5_9_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI10_15_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI16_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI17_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI18_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI19_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI20_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI21_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI22_PRIORITY 6
|
||||||
|
#define STM32_IRQ_EXTI23_PRIORITY 6
|
||||||
|
|
||||||
|
#define STM32_IRQ_TIM1_BRK_TIM9_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM1_UP_TIM10_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM1_TRGCO_TIM11_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM1_CC_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM2_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM3_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM4_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM5_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM6_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM7_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM8_BRK_TIM12_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM8_UP_TIM13_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM8_TRGCO_TIM14_PRIORITY 7
|
||||||
|
#define STM32_IRQ_TIM8_CC_PRIORITY 7
|
||||||
|
|
||||||
|
#define STM32_IRQ_USART1_PRIORITY 12
|
||||||
|
#define STM32_IRQ_USART2_PRIORITY 12
|
||||||
|
#define STM32_IRQ_USART3_PRIORITY 12
|
||||||
|
#define STM32_IRQ_UART4_PRIORITY 12
|
||||||
|
#define STM32_IRQ_UART5_PRIORITY 12
|
||||||
|
#define STM32_IRQ_USART6_PRIORITY 12
|
||||||
|
#define STM32_IRQ_UART7_PRIORITY 12
|
||||||
|
#define STM32_IRQ_UART8_PRIORITY 12
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ADC driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV8
|
||||||
|
#define STM32_ADC_USE_ADC1 TRUE
|
||||||
|
#define STM32_ADC_USE_ADC2 FALSE
|
||||||
|
#define STM32_ADC_USE_ADC3 FALSE
|
||||||
|
#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
|
||||||
|
#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
|
||||||
|
#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 1)
|
||||||
|
#define STM32_ADC_ADC1_DMA_PRIORITY 2
|
||||||
|
#define STM32_ADC_ADC2_DMA_PRIORITY 2
|
||||||
|
#define STM32_ADC_ADC3_DMA_PRIORITY 2
|
||||||
|
#define STM32_ADC_IRQ_PRIORITY 6
|
||||||
|
#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6
|
||||||
|
#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 6
|
||||||
|
#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 6
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CAN driver system settings.
|
||||||
|
*/
|
||||||
|
#if USE_CAN1
|
||||||
|
#define STM32_CAN_USE_CAN1 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_CAN_USE_CAN1 FALSE
|
||||||
|
#endif
|
||||||
|
#define STM32_CAN_CAN1_IRQ_PRIORITY 11
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DAC driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_DAC_DUAL_MODE FALSE
|
||||||
|
#define STM32_DAC_USE_DAC1_CH1 FALSE
|
||||||
|
#define STM32_DAC_USE_DAC1_CH2 FALSE
|
||||||
|
#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
|
||||||
|
#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
|
||||||
|
#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
|
||||||
|
#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
|
||||||
|
#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
|
||||||
|
#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GPT driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_GPT_USE_TIM1 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM2 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM3 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM4 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM5 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM6 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM7 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM8 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM9 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM10 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM11 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM12 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM13 FALSE
|
||||||
|
#define STM32_GPT_USE_TIM14 FALSE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* I2C driver system settings.
|
||||||
|
*/
|
||||||
|
#if USE_I2C1
|
||||||
|
#define STM32_I2C_USE_I2C1 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_I2C_USE_I2C1 FALSE
|
||||||
|
#endif
|
||||||
|
#define STM32_I2C_USE_I2C2 FALSE
|
||||||
|
#define STM32_I2C_USE_I2C3 FALSE
|
||||||
|
#define STM32_I2C_BUSY_TIMEOUT 50
|
||||||
|
#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||||
|
#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
|
||||||
|
#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
|
||||||
|
#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 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_I2C1_IRQ_PRIORITY 5
|
||||||
|
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
||||||
|
#define STM32_I2C_I2C3_IRQ_PRIORITY 5
|
||||||
|
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
||||||
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
|
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
||||||
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ICU driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_ICU_USE_TIM1 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM2 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM3 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM4 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM5 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM8 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM9 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM10 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM11 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM12 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM13 FALSE
|
||||||
|
#define STM32_ICU_USE_TIM14 FALSE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PWM driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_PWM_USE_ADVANCED FALSE
|
||||||
|
#ifndef STM32_PWM_USE_TIM1
|
||||||
|
#define STM32_PWM_USE_TIM1 TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STM32_PWM_USE_TIM3
|
||||||
|
#define STM32_PWM_USE_TIM3 TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STM32_PWM_USE_TIM4
|
||||||
|
#define STM32_PWM_USE_TIM4 TRUE
|
||||||
|
#endif
|
||||||
|
#ifndef STM32_PWM_USE_TIM5
|
||||||
|
#define STM32_PWM_USE_TIM5 TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STM32_PWM_USE_TIM2 FALSE
|
||||||
|
#define STM32_PWM_USE_TIM8 FALSE
|
||||||
|
#define STM32_PWM_USE_TIM9 FALSE
|
||||||
|
#define STM32_PWM_USE_TIM10 FALSE
|
||||||
|
#define STM32_PWM_USE_TIM11 FALSE
|
||||||
|
#define STM32_PWM_USE_TIM12 FALSE
|
||||||
|
#define STM32_PWM_USE_TIM13 FALSE
|
||||||
|
#define STM32_PWM_USE_TIM14 FALSE
|
||||||
|
|
||||||
|
#define STM32_PWM3_UP_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
|
||||||
|
#define STM32_PWM3_UP_DMA_CHANNEL 5
|
||||||
|
#define STM32_PWM3_UP_DMA_IRQ_PRIORITY 6
|
||||||
|
#define STM32_PWM3_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
|
||||||
|
|
||||||
|
#define STM32_PWM5_UP_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||||
|
#define STM32_PWM5_UP_DMA_CHANNEL 6
|
||||||
|
#define STM32_PWM5_UP_DMA_IRQ_PRIORITY 6
|
||||||
|
#define STM32_PWM5_UP_DMA_PRIORITY 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* RTC driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_RTC_PRESA_VALUE 32
|
||||||
|
#define STM32_RTC_PRESS_VALUE 1024
|
||||||
|
#define STM32_RTC_CR_INIT 0
|
||||||
|
#define STM32_RTC_TAMPCR_INIT 0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDC driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_SDC_USE_SDMMC1 TRUE
|
||||||
|
#define STM32_SDC_USE_SDMMC2 FALSE
|
||||||
|
#define STM32_SDC_SDMMC_UNALIGNED_SUPPORT TRUE
|
||||||
|
#define STM32_SDC_SDMMC_WRITE_TIMEOUT 250
|
||||||
|
#define STM32_SDC_SDMMC_READ_TIMEOUT 25
|
||||||
|
#define STM32_SDC_SDMMC_CLOCK_DELAY 10
|
||||||
|
#define STM32_SDC_SDMMC_PWRSAV FALSE
|
||||||
|
#define STM32_SDC_SDMMC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 6)
|
||||||
|
#define STM32_SDC_SDMMC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
|
||||||
|
#define STM32_SDC_SDMMC1_DMA_PRIORITY 3
|
||||||
|
#define STM32_SDC_SDMMC2_DMA_PRIORITY 3
|
||||||
|
#define STM32_SDC_SDMMC1_IRQ_PRIORITY 9
|
||||||
|
#define STM32_SDC_SDMMC2_IRQ_PRIORITY 9
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SERIAL driver system settings.
|
||||||
|
*/
|
||||||
|
#ifndef STM32_SERIAL_USE_USART1
|
||||||
|
#if USE_UART1
|
||||||
|
#define STM32_SERIAL_USE_USART1 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SERIAL_USE_USART1 FALSE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STM32_SERIAL_USE_USART2
|
||||||
|
#if USE_UART2
|
||||||
|
#define STM32_SERIAL_USE_USART2 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SERIAL_USE_USART2 FALSE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STM32_SERIAL_USE_USART3
|
||||||
|
#if USE_UART3
|
||||||
|
#define STM32_SERIAL_USE_USART3 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SERIAL_USE_USART3 FALSE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STM32_SERIAL_USE_UART4
|
||||||
|
#if USE_UART4
|
||||||
|
#define STM32_SERIAL_USE_UART4 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SERIAL_USE_UART4 FALSE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STM32_SERIAL_USE_USART6
|
||||||
|
#if USE_UART6
|
||||||
|
#define STM32_SERIAL_USE_USART6 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SERIAL_USE_USART6 FALSE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SIO driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_SIO_USE_USART1 FALSE
|
||||||
|
#define STM32_SIO_USE_USART2 FALSE
|
||||||
|
#define STM32_SIO_USE_USART3 FALSE
|
||||||
|
#define STM32_SIO_USE_UART4 FALSE
|
||||||
|
#define STM32_SIO_USE_UART5 FALSE
|
||||||
|
#define STM32_SIO_USE_USART6 FALSE
|
||||||
|
#define STM32_SIO_USE_UART7 FALSE
|
||||||
|
#define STM32_SIO_USE_UART8 FALSE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SPI driver system settings.
|
||||||
|
*/
|
||||||
|
#if USE_SPI1
|
||||||
|
#define STM32_SPI_USE_SPI1 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SPI_USE_SPI1 FALSE
|
||||||
|
#endif
|
||||||
|
#if USE_SPI2
|
||||||
|
#define STM32_SPI_USE_SPI2 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SPI_USE_SPI2 FALSE
|
||||||
|
#endif
|
||||||
|
#if USE_SPI3
|
||||||
|
#define STM32_SPI_USE_SPI3 TRUE
|
||||||
|
#else
|
||||||
|
#define STM32_SPI_USE_SPI3 FALSE
|
||||||
|
#endif
|
||||||
|
#define STM32_SPI_USE_SPI4 FALSE
|
||||||
|
#define STM32_SPI_USE_SPI5 FALSE
|
||||||
|
#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
|
||||||
|
#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
|
||||||
|
#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
|
||||||
|
#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
|
||||||
|
#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||||
|
#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
|
||||||
|
#define STM32_SPI_SPI4_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
|
||||||
|
#define STM32_SPI_SPI4_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 1)
|
||||||
|
#define STM32_SPI_SPI5_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
|
||||||
|
#define STM32_SPI_SPI5_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
|
||||||
|
#define STM32_SPI_SPI1_DMA_PRIORITY 1
|
||||||
|
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
||||||
|
#define STM32_SPI_SPI3_DMA_PRIORITY 1
|
||||||
|
#define STM32_SPI_SPI4_DMA_PRIORITY 1
|
||||||
|
#define STM32_SPI_SPI5_DMA_PRIORITY 1
|
||||||
|
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
||||||
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||||
|
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
||||||
|
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
||||||
|
#define STM32_SPI_SPI5_IRQ_PRIORITY 10
|
||||||
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ST driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_ST_IRQ_PRIORITY 8
|
||||||
|
#define STM32_ST_USE_TIMER 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TRNG driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_TRNG_USE_RNG1 FALSE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* UART driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_UART_USE_USART1 FALSE
|
||||||
|
#define STM32_UART_USE_USART2 FALSE
|
||||||
|
#define STM32_UART_USE_USART3 FALSE
|
||||||
|
#define STM32_UART_USE_UART4 FALSE
|
||||||
|
#define STM32_UART_USE_UART5 FALSE
|
||||||
|
#define STM32_UART_USE_USART6 FALSE
|
||||||
|
#define STM32_UART_USE_UART7 FALSE
|
||||||
|
#define STM32_UART_USE_UART8 FALSE
|
||||||
|
#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
|
||||||
|
#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
|
||||||
|
#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
|
||||||
|
#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
|
||||||
|
#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
|
||||||
|
#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
|
||||||
|
#define STM32_UART_UART4_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
|
||||||
|
#define STM32_UART_UART4_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
|
||||||
|
#define STM32_UART_UART5_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||||
|
#define STM32_UART_UART5_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
|
||||||
|
#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
|
||||||
|
#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
|
||||||
|
#define STM32_UART_UART7_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
|
||||||
|
#define STM32_UART_UART7_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
|
||||||
|
#define STM32_UART_UART8_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
|
||||||
|
#define STM32_UART_UART8_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||||
|
#define STM32_UART_USART1_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_USART2_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_UART4_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_UART5_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_USART6_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_UART7_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_UART8_DMA_PRIORITY 0
|
||||||
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_USB_USE_OTG1 TRUE
|
||||||
|
#define STM32_USB_USE_OTG2 FALSE
|
||||||
|
#define STM32_USB_OTG1_IRQ_PRIORITY 14
|
||||||
|
#define STM32_USB_OTG2_IRQ_PRIORITY 14
|
||||||
|
#define STM32_USB_OTG1_RX_FIFO_SIZE 512
|
||||||
|
#define STM32_USB_OTG2_RX_FIFO_SIZE 1024
|
||||||
|
|
||||||
|
/*
|
||||||
|
* WDG driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_WDG_USE_IWDG FALSE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* WSPI driver system settings.
|
||||||
|
*/
|
||||||
|
#define STM32_WSPI_USE_QUADSPI1 FALSE
|
||||||
|
#define STM32_WSPI_QUADSPI1_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
|
||||||
|
|
||||||
|
/*
|
||||||
|
sdlog message buffer and queue configuration
|
||||||
|
*/
|
||||||
|
// #define SDLOG_QUEUE_BUCKETS 1024
|
||||||
|
// #define SDLOG_MAX_MESSAGE_LEN 300
|
||||||
|
// #define SDLOG_NUM_FILES 2
|
||||||
|
// #define SDLOG_ALL_BUFFERS_SIZE (SDLOG_NUM_FILES*16*1024)
|
||||||
|
|
||||||
|
#endif /* MCUCONF_H */
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
#if !defined(STM32_HSECLK)
|
#if !defined(STM32_HSECLK)
|
||||||
#define STM32_HSECLK 8000000U
|
#define STM32_HSECLK 8000000U
|
||||||
#define STM32_HSE_BYPASS TRUE
|
#define STM32_HSE_BYPASS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ HEADER
|
|||||||
|
|
||||||
#if !defined(STM32_HSECLK)
|
#if !defined(STM32_HSECLK)
|
||||||
#define STM32_HSECLK 8000000U
|
#define STM32_HSECLK 8000000U
|
||||||
#define STM32_HSE_BYPASS TRUE
|
#define STM32_HSE_BYPASS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
9
sw/airborne/boards/tmotor/aiof7/v1/Makefile
Normal file
9
sw/airborne/boards/tmotor/aiof7/v1/Makefile
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# file board.h is generated from file board.cfg by a script which is hosted here :
|
||||||
|
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/boardGen.pl
|
||||||
|
|
||||||
|
# documentation is here :
|
||||||
|
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/DOC/boardGen.pdf
|
||||||
|
|
||||||
|
board.h: aiof7tmotor.cfg Makefile
|
||||||
|
boardGen.pl --no-pp-line $< $@
|
||||||
|
|
||||||
287
sw/airborne/boards/tmotor/aiof7/v1/aiof7tmotor.cfg
Normal file
287
sw/airborne/boards/tmotor/aiof7/v1/aiof7tmotor.cfg
Normal file
@@ -0,0 +1,287 @@
|
|||||||
|
MCU_MODEL = STM32F722R(C-E)Tx
|
||||||
|
CHIBIOS_VERSION = 3.0
|
||||||
|
|
||||||
|
HEADER
|
||||||
|
/*
|
||||||
|
* Board identifier.
|
||||||
|
*/
|
||||||
|
#define BOARD_AIOF7TMOTOR
|
||||||
|
#define BOARD_NAME "AIO F7 TMOTOR"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Board oscillators-related settings.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_LSECLK)
|
||||||
|
#define STM32_LSECLK 32768U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STM32_LSEDRV (3U << 3U)
|
||||||
|
|
||||||
|
#if !defined(STM32_HSECLK)
|
||||||
|
#define STM32_HSECLK 8000000U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Board voltages.
|
||||||
|
* Required for performance limits calculation.
|
||||||
|
*/
|
||||||
|
#define STM32_VDD 300U
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MCU type as defined in the ST header.
|
||||||
|
*/
|
||||||
|
#define STM32F722xx
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DSHOT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define DSHOT_TIM3_TELEMETRY_DEV NULL
|
||||||
|
#define DSHOT_TIM4_TELEMETRY_DEV NULL
|
||||||
|
#define DSHOT_TIM8_TELEMETRY_DEV NULL
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef USE_DSHOT_TIM3
|
||||||
|
#define USE_DSHOT_TIM3 1 // SERVO1 SERVO2 SERVO3 SERVO4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_DSHOT_TIM4
|
||||||
|
#define USE_DSHOT_TIM4 0 // SERVO5 SERVO6 SERVO7
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef USE_DSHOT_TIM8
|
||||||
|
#define USE_DSHOT_TIM8 0 // SERVO8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if USE_DSHOT_TIM3 // SERVO1 SERVO2 SERVO3 SERVO4 on TIM3
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_1 1
|
||||||
|
#define DSHOT_SERVO_1_GPIO PAL_PORT(LINE_SERVO1)
|
||||||
|
#define DSHOT_SERVO_1_PIN PAL_PAD(LINE_SERVO1)
|
||||||
|
#define DSHOT_SERVO_1_AF AF_LINE_SERVO1
|
||||||
|
#define DSHOT_SERVO_1_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO1_TIM)
|
||||||
|
#define DSHOT_SERVO_1_CHANNEL SERVO1_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_2 2
|
||||||
|
#define DSHOT_SERVO_2_GPIO PAL_PORT(LINE_SERVO2)
|
||||||
|
#define DSHOT_SERVO_2_PIN PAL_PAD(LINE_SERVO2)
|
||||||
|
#define DSHOT_SERVO_2_AF AF_LINE_SERVO2
|
||||||
|
#define DSHOT_SERVO_2_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO2_TIM)
|
||||||
|
#define DSHOT_SERVO_2_CHANNEL SERVO2_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_3 3
|
||||||
|
#define DSHOT_SERVO_3_GPIO PAL_PORT(LINE_SERVO3)
|
||||||
|
#define DSHOT_SERVO_3_PIN PAL_PAD(LINE_SERVO3)
|
||||||
|
#define DSHOT_SERVO_3_AF AF_LINE_SERVO3
|
||||||
|
#define DSHOT_SERVO_3_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO3_TIM)
|
||||||
|
#define DSHOT_SERVO_3_CHANNEL SERVO3_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_4 4
|
||||||
|
#define DSHOT_SERVO_4_GPIO PAL_PORT(LINE_SERVO4)
|
||||||
|
#define DSHOT_SERVO_4_PIN PAL_PAD(LINE_SERVO4)
|
||||||
|
#define DSHOT_SERVO_4_AF AF_LINE_SERVO4
|
||||||
|
#define DSHOT_SERVO_4_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO4_TIM)
|
||||||
|
#define DSHOT_SERVO_4_CHANNEL SERVO4_TIM_CH
|
||||||
|
|
||||||
|
|
||||||
|
#define DSHOT_CONF_TIM3 1
|
||||||
|
#define DSHOT_CONF3_DEF { \
|
||||||
|
.dma_stream = STM32_PWM3_UP_DMA_STREAM, \
|
||||||
|
.dma_channel = STM32_PWM3_UP_DMA_CHANNEL, \
|
||||||
|
.pwmp = &PWMD3, \
|
||||||
|
.tlm_sd = DSHOT_TIM3_TELEMETRY_DEV, \
|
||||||
|
.dma_buf = &dshot3DmaBuffer, \
|
||||||
|
.dcache_memory_in_use = false \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if USE_DSHOT_TIM4 // SERVO5 SERVO6 SERVO7 on TIM4
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_5 5
|
||||||
|
#define DSHOT_SERVO_5_GPIO PAL_PORT(LINE_SERVO5)
|
||||||
|
#define DSHOT_SERVO_5_PIN PAL_PAD(LINE_SERVO5)
|
||||||
|
#define DSHOT_SERVO_5_AF AF_LINE_SERVO5
|
||||||
|
#define DSHOT_SERVO_5_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO5_TIM)
|
||||||
|
#define DSHOT_SERVO_5_CHANNEL SERVO5_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_6 6
|
||||||
|
#define DSHOT_SERVO_6_GPIO PAL_PORT(LINE_SERVO6)
|
||||||
|
#define DSHOT_SERVO_6_PIN PAL_PAD(LINE_SERVO6)
|
||||||
|
#define DSHOT_SERVO_6_AF AF_LINE_SERVO6
|
||||||
|
#define DSHOT_SERVO_6_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO6_TIM)
|
||||||
|
#define DSHOT_SERVO_6_CHANNEL SERVO6_TIM_CH
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_7 7
|
||||||
|
#define DSHOT_SERVO_7_GPIO PAL_PORT(LINE_SERVO7)
|
||||||
|
#define DSHOT_SERVO_7_PIN PAL_PAD(LINE_SERVO7)
|
||||||
|
#define DSHOT_SERVO_7_AF AF_LINE_SERVO7
|
||||||
|
#define DSHOT_SERVO_7_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO7_TIM)
|
||||||
|
#define DSHOT_SERVO_7_CHANNEL SERVO7_TIM_CH
|
||||||
|
|
||||||
|
#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_TIM4_TELEMETRY_DEV, \
|
||||||
|
.dma_buf = &dshot4DmaBuffer, \
|
||||||
|
.dcache_memory_in_use = false \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if USE_DSHOT_TIM8 // SERVO8
|
||||||
|
|
||||||
|
#define DSHOT_SERVO_8 8
|
||||||
|
#define DSHOT_SERVO_8_GPIO PAL_PORT(LINE_SERVO8)
|
||||||
|
#define DSHOT_SERVO_8_PIN PAL_PAD(LINE_SERVO8)
|
||||||
|
#define DSHOT_SERVO_8_AF AF_LINE_SERVO8
|
||||||
|
#define DSHOT_SERVO_8_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SERVO8_TIM)
|
||||||
|
#define DSHOT_SERVO_8_CHANNEL SERVO8_TIM_CH
|
||||||
|
|
||||||
|
|
||||||
|
#define DSHOT_CONF_TIM8 1
|
||||||
|
#define DSHOT_CONF8_DEF { \
|
||||||
|
.dma_stream = STM32_PWM8_UP_DMA_STREAM, \
|
||||||
|
.dma_channel = STM32_PWM8_UP_DMA_CHANNEL, \
|
||||||
|
.pwmp = &PWMD8, \
|
||||||
|
.tlm_sd = DSHOT_TIM8_TELEMETRY_DEV, \
|
||||||
|
.dma_buf = &dshot8DmaBuffer, \
|
||||||
|
.dcache_memory_in_use = false \
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* enable TIM1, TIM3, TIM4 by default
|
||||||
|
*/
|
||||||
|
#ifndef USE_PWM_TIM1
|
||||||
|
#define USE_PWM_TIM1 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_PWM_TIM3
|
||||||
|
#define USE_PWM_TIM3 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_PWM_TIM4
|
||||||
|
#define USE_PWM_TIM4 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_PWM_TIM8
|
||||||
|
#define USE_PWM_TIM8 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* allow to define ADC_CHANNEL_VSUPPLY in the airframe file*/
|
||||||
|
#ifndef ADC_CHANNEL_VSUPPLY
|
||||||
|
#define ADC_CHANNEL_VSUPPLY ADC_1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DefaultVoltageOfAdc(adc) ((3.3f/4096.0f)*10.91*adc)
|
||||||
|
|
||||||
|
CONFIG
|
||||||
|
|
||||||
|
|
||||||
|
# PIN NAME PERIPH_TYPE AF_NUMBER or
|
||||||
|
# PIN NAME FUNCTION PP_or_OPENDRAIN PIN_SPEED PULL_RESISTOR INITIAL_LEVEL AF_NUMBER
|
||||||
|
# SPEED : SPEED_VERYLOW, SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH
|
||||||
|
#
|
||||||
|
# DEFAULT AND SYS
|
||||||
|
#
|
||||||
|
# 'SYS' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'ADC' => ['ANALOG', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
|
||||||
|
# 'PWM' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
|
||||||
|
# 'ICU' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'I2C' => ['ALTERNATE', 'OPENDRAIN', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||||
|
# 'SPI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'UART' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||||
|
# 'OTG' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'ETH' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'FSMC' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'SDIO' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||||
|
# 'SDIOCK' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'CAN' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'DCMI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||||
|
# 'LED' => ['OUTPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW'],
|
||||||
|
# 'PASSIVE' => ['INPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW']);
|
||||||
|
#
|
||||||
|
# SYSTEM
|
||||||
|
A13 SWDIO SYS AF:SYS_JTMS-SWDIO
|
||||||
|
A14 SWCLK SYS AF:SYS_JTCK-SWCLK
|
||||||
|
# C14 OSC32_IN SYS AF0
|
||||||
|
# C15 OSC32_OUT SYS AF0
|
||||||
|
# H00 OSC_IN SYS AF0
|
||||||
|
# H01 OSC_OUT SYS AF0
|
||||||
|
H00 OSC_IN OSC
|
||||||
|
H01 OSC_OUT OSC
|
||||||
|
|
||||||
|
#DEFAULT
|
||||||
|
DEFAULT INPUT PUSHPULL SPEED_VERYLOW PULLDOWN LEVEL_LOW AF0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ACTIVE PINS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PA00 UART4_TX UART AF:UART4_TX
|
||||||
|
PA01 UART4_RX UART AF:UART4_RX
|
||||||
|
PA02 UART2_TX UART AF:USART2_TX
|
||||||
|
PA03 UART2_RX UART AF:USART2_RX
|
||||||
|
PA04 SPI_SLAVE0 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH #GYRO_CS
|
||||||
|
PA05 SPI1_CLK SPI AF:SPI1_SCK
|
||||||
|
PA06 SPI1_MISO SPI AF:SPI1_MISO
|
||||||
|
PA07 SPI1_MOSI SPI AF:SPI1_MOSI
|
||||||
|
PA08 AUX PWM AF:TIM1_CH1 ()
|
||||||
|
PA09 UART1_TX UART AF:USART1_TX
|
||||||
|
PA10 RC1 UART AF:USART1_RX ()
|
||||||
|
PA11 OTG_FS_DM OTG AF:USB_OTG_FS_DM
|
||||||
|
PA12 OTG_FS_DP OTG AF:USB_OTG_FS_DP
|
||||||
|
|
||||||
|
PB00 SERVO3 PWM AF:TIM3_CH3 ()
|
||||||
|
PB01 SERVO4 PWM AF:TIM3_CH4 ()
|
||||||
|
PB02 LED1 LED
|
||||||
|
PB03 SPI3_CLK SPI AF:SPI3_SCK
|
||||||
|
PB04 SPI3_MISO SPI AF:SPI3_MISO
|
||||||
|
PB05 SPI3_MOSI SPI AF:SPI3_MOSI
|
||||||
|
PB06 SERVO5 PWM AF:TIM4_CH1 ()
|
||||||
|
PB07 SERVO7 PWM AF:TIM4_CH2 ()
|
||||||
|
PB08 SERVO6 PWM AF:TIM4_CH3 ()
|
||||||
|
PB09 AUX2 PWM AF:TIM11_CH1 ()
|
||||||
|
PB10 I2C2_SCL I2C AF:I2C2_SCL
|
||||||
|
PB11 I2C2_SDA I2C AF:I2C2_SDA
|
||||||
|
PB12 SPI_SLAVE1 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH #OSD_CS
|
||||||
|
PB13 SPI2_CLK SPI AF:SPI2_SCK
|
||||||
|
PB14 SPI2_MISO SPI AF:SPI2_MISO
|
||||||
|
PB15 SPI2_MOSI SPI AF:SPI2_MOSI
|
||||||
|
|
||||||
|
# PC00
|
||||||
|
PC01 ADC1 ADC ADC1_IN11 () # VBAT_MEAS
|
||||||
|
PC02 ADC2 ADC ADC1_IN12 () # ADC_CURR
|
||||||
|
PC04 GYRO_EXTI_1 INPUT PULLUP
|
||||||
|
PC06 SERVO1 PWM AF:TIM3_CH1 ()
|
||||||
|
PC07 SERVO2 PWM AF:TIM3_CH2 ()
|
||||||
|
PC09 SERVO8 PWM AF:TIM8_CH4 ()
|
||||||
|
PC08 SPI_SLAVE2 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH #FLASH_CS
|
||||||
|
PC10 UART3_TX UART AF:USART3_TX
|
||||||
|
PC11 UART3_RX UART AF:USART3_RX
|
||||||
|
PC12 UART5_TX UART AF:UART5_TX
|
||||||
|
PC13 BEEPER OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_LOW
|
||||||
|
PC15 SPI_SLAVE3 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH #BARO_CS
|
||||||
|
|
||||||
|
PD02 UART5_RX UART AF:UART5_RX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# GROUPS
|
||||||
|
GROUP ENERGY_SAVE_INPUT %NAME=~/^AUX_[A-B][0-9]+|LED[0-9]+|.*_CS$/
|
||||||
1751
sw/airborne/boards/tmotor/aiof7/v1/board.h
Normal file
1751
sw/airborne/boards/tmotor/aiof7/v1/board.h
Normal file
File diff suppressed because it is too large
Load Diff
513
sw/airborne/boards/tmotor/aiof7/v1/mcuconf_board.h
Normal file
513
sw/airborne/boards/tmotor/aiof7/v1/mcuconf_board.h
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user