mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
[conf] drop support of XVert
never really worked it seems, and the frame is no longer available
This commit is contained in:
@@ -1,251 +0,0 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
|
||||
<airframe name="xvert">
|
||||
<description>
|
||||
* E-flite X-VERT VTOL (https://www.openuas.org/airframes/)
|
||||
+ Autopilot: Default STM32F3 based
|
||||
+ Actuators: Default servos, 2 PWM servo's, 2 escs through some proprietary atmega uart protocol
|
||||
+ GPS: Ublox M8N GNSS over I2C
|
||||
+ IMU: MPU6500 on mainboard and external HMC58XX on GNSS module
|
||||
+ TELEMETRY: Si10xx Chip based with full fledged multifreq firmware
|
||||
+ CURRENT: A standard Volt and Current sensor on the analog ports
|
||||
+ RANGER: {none yet}
|
||||
+ RC: RC over Datalink
|
||||
|
||||
NOTES:
|
||||
+ Hey, calibrate your magneto! Yes, you too ;), unit UKF auto works...
|
||||
+ Yeah.. and you Accelometer also... EKF2 will like you :)
|
||||
+ Flashing the firmware is done (For now..) via tiny SWD wires solderd on Main PCB, for Hardcore builder only ;)...
|
||||
WIP:
|
||||
+ Many thing to improve, e.g. RC and the Flashing method
|
||||
|
||||
</description>
|
||||
|
||||
<firmware name="rotorcraft">
|
||||
<target name="ap" board="xvert_1.0"/>
|
||||
|
||||
|
||||
<define name="BAT_CHECKER_DELAY" value="80" />
|
||||
<define name="CATASTROPHIC_BATTERY_KILL_DELAY" value="80" />
|
||||
|
||||
<!-- To fix the 32k ram limit issue:-->
|
||||
<!--<define name="PPRZ_TRIG_INT_USE_FLOAT"/>-->
|
||||
<define name="PPRZ_TRIG_CONST" value="const"/>
|
||||
<define name="THD_WORKING_AREA_MAIN" value="802"/>
|
||||
<define name="UART_THREAD_STACK_SIZE" value="190"/>
|
||||
<define name="I2C_THREAD_STACK_SIZE" value="190"/>
|
||||
|
||||
<configure name="USE_MAGNETOMETER" value="TRUE"/>
|
||||
|
||||
<module name="telemetry" type="transparent" >
|
||||
<define name="MODEM_BAUD" value="B57600"/>
|
||||
</module>
|
||||
|
||||
<module name="guidance" type="hybrid"/>
|
||||
<module name="motor_mixing"/>
|
||||
<!--<module name="sys_mon"/>-->
|
||||
<!--<module name="gps" type="ubx_ucenter"/>-->
|
||||
<module name="send_imu_mag_current"/>
|
||||
<module name="air_data"/>
|
||||
|
||||
<module name="imu" type="mpu9250_i2c">
|
||||
<configure name="IMU_MPU9250_I2C_DEV" value="i2c1"/>
|
||||
<define name="IMU_MPU9250_READ_MAG" value="FALSE"/>
|
||||
<define name="IMU_MPU9250_I2C_ADDR" value="MPU9250_ADDR"/>
|
||||
<define name="AHRS_ICQ_MAG_ID" value="MAG_HMC58XX_SENDER_ID" /> <!-- Meaning the external hmc-->
|
||||
</module>
|
||||
|
||||
<module name="stabilization" type="indi_simple" />
|
||||
|
||||
<module name="ahrs" type="float_cmpl_quat" >
|
||||
<define name="AHRS_USE_GPS_HEADING" value="FALSE"/>
|
||||
</module>
|
||||
|
||||
<module name="ins" type="float_invariant">
|
||||
<define name="INS_PROPAGATE_FREQUENCY" value="500"/>
|
||||
<define name="INS_FINV_MAG_ID" value="MAG_HMC58XX_SENDER_ID"/>
|
||||
</module>
|
||||
|
||||
<module name="actuators" type="xvert">
|
||||
<define name="SERVO_HZ" value="400" />
|
||||
</module>
|
||||
|
||||
<module name="radio_control" type="datalink"/>
|
||||
<module name="gps" type="ubx_i2c">
|
||||
<configure name="GPS_UBX_I2C_DEV" value="i2c2"/>
|
||||
</module>
|
||||
|
||||
<module name="mag" type="hmc58xx">
|
||||
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c2"/>
|
||||
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="TRUE"/>
|
||||
<define name="HMC58XX_CHAN_X" value="1"/>
|
||||
<define name="HMC58XX_CHAN_Y" value="0"/>
|
||||
<define name="HMC58XX_CHAN_Z" value="2"/>
|
||||
<define name="HMC58XX_CHAN_X_SIGN" value="-"/>
|
||||
<define name="HMC58XX_CHAN_Y_SIGN" value="+"/>
|
||||
<define name="HMC58XX_CHAN_Z_SIGN" value="+"/>
|
||||
</module>
|
||||
</firmware>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="H_X" value="0.5138"/>
|
||||
<define name="H_Y" value="0.00019"/>
|
||||
<define name="H_Z" value="0.8578"/>
|
||||
</section>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<!-- replace this with your own calibration -->
|
||||
<define name="MAG_X_NEUTRAL" value="30"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="127"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="140"/>
|
||||
<define name="MAG_X_SENS" value="7.11726808648" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="7.09366475279" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="6.84467824688" integer="16"/>
|
||||
|
||||
<define name="ACCEL_X_NEUTRAL" value="-52"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="-4"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="-7"/>
|
||||
<define name="ACCEL_X_SENS" value="2.45056441681" integer="16"/>
|
||||
<define name="ACCEL_Y_SENS" value="2.44991708802" integer="16"/>
|
||||
<define name="ACCEL_Z_SENS" value="2.44199722843" integer="16"/>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="90." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_PSI" value="90." unit="deg"/>
|
||||
</section>
|
||||
|
||||
<commands>
|
||||
<axis name="PITCH" failsafe_value="0"/>
|
||||
<axis name="ROLL" failsafe_value="0"/>
|
||||
<axis name="YAW" failsafe_value="0"/>
|
||||
<axis name="THRUST" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<servos driver="Xvert">
|
||||
<servo name="RM" no="0" min="1160" neutral="1200" max="1880"/>
|
||||
<servo name="LM" no="1" min="1160" neutral="1200" max="1880"/>
|
||||
<servo name="ELEVON_RIGHT" no="2" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="ELEVON_LEFT" no="3" min="1000" neutral="1500" max="2000"/>
|
||||
</servos>
|
||||
|
||||
<command_laws>
|
||||
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
|
||||
<set servo="RM" value="motor_mixing.commands[0]"/>
|
||||
<set servo="LM" value="motor_mixing.commands[1]"/>
|
||||
|
||||
<!-- Mode dependent actuator laws for the elevons. The elevons act different in rc attitude flight mode-->
|
||||
<!-- First the correct feedback is stored in variables -->
|
||||
<let var="aileron_feedback_left" value="@YAW"/>
|
||||
<let var="aileron_feedback_right" value="@YAW"/>
|
||||
|
||||
<let var="elevator_feedback_left" value="-@PITCH"/>
|
||||
<let var="elevator_feedback_right" value="+@PITCH"/>
|
||||
|
||||
<!-- if using PID with gain scheduling -->
|
||||
<let var="forward_left" value="$aileron_feedback_left + $elevator_feedback_left"/>
|
||||
<let var="forward_right" value="$aileron_feedback_right + $elevator_feedback_right"/>
|
||||
|
||||
<!-- This statement tells the autopilot to use the hover feedback if in mode attitude direct and to use the forward feedback in all other cases-->
|
||||
<set servo="ELEVON_LEFT" value="$forward_left" />
|
||||
<set servo="ELEVON_RIGHT" value="$forward_right" />
|
||||
</command_laws>
|
||||
|
||||
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||
<define name="TRIM_ROLL" value="0"/>
|
||||
<define name="TRIM_PITCH" value="0"/>
|
||||
<define name="TRIM_YAW" value="0"/>
|
||||
<define name="NB_MOTOR" value="2"/>
|
||||
<define name="SCALE" value="256"/>
|
||||
<define name="PITCH_COEF" value="{ 0, 0}"/>
|
||||
<define name="ROLL_COEF" value="{ -256, 256 }"/>
|
||||
<define name="YAW_COEF" value="{ 0, 0 }"/>
|
||||
<define name="THRUST_COEF" value="{ 256, 256 }"/>
|
||||
</section>
|
||||
|
||||
<section name="AIR_DATA" prefix="AIR_DATA_">
|
||||
<define name="CALC_AIRSPEED" value="FALSE" />
|
||||
<define name="CALC_TAS_FACTOR" value="FALSE" />
|
||||
<define name="CALC_AMSL_BARO" value="TRUE" />
|
||||
</section>
|
||||
|
||||
<section name="RC_SETPOINT" 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="300" 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_">
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_P" value="0.01292" />
|
||||
<define name="G1_Q" value="0.014867" />
|
||||
<define name="G1_R" value="0.012055" />
|
||||
<define name="G2_R" value="0.0" />
|
||||
<!-- For the bebop2 we need to filter the roll rate due to the dampers -->
|
||||
<define name="FILTER_ROLL_RATE" value="FALSE" />
|
||||
<define name="FILTER_PITCH_RATE" value="FALSE" />
|
||||
<define name="FILTER_YAW_RATE" value="FALSE" />
|
||||
<!-- reference acceleration for attitude control -->
|
||||
<define name="REF_ERR_P" value="100.0" />
|
||||
<define name="REF_ERR_Q" value="100.0" />
|
||||
<define name="REF_ERR_R" value="100.0" />
|
||||
<define name="REF_RATE_P" value="14.0" />
|
||||
<define name="REF_RATE_Q" value="14.0" />
|
||||
<define name="REF_RATE_R" value="14.0" />
|
||||
<!-- second order filter parameters -->
|
||||
<define name="FILT_CUTOFF" value="3.2"/>
|
||||
<define name="FILT_CUTOFF_R" value="3.2"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
<define name="ACT_DYN_P" value="0.04" />
|
||||
<define name="ACT_DYN_Q" value="0.04" />
|
||||
<define name="ACT_DYN_R" value="0.04" />
|
||||
<!-- Adaptive Learning Rate -->
|
||||
<define name="USE_ADAPTIVE" value="FALSE" />
|
||||
<define name="ADAPTIVE_MU" value="0.0001" />
|
||||
<!-- max rates (conservative) -->
|
||||
<define name="STABILIZATION_INDI_MAX_RATE" value="343.77" unit="deg/s"/>
|
||||
<define name="STABILIZATION_INDI_MAX_R" value="200" unit="deg/s"/> <!--Does not seem to be applied-->
|
||||
<define name="FULL_AUTHORITY" value="TRUE"/>
|
||||
</section>
|
||||
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||
<define name="HOVER_KP" value="350" />
|
||||
<define name="HOVER_KD" value="85" />
|
||||
<define name="HOVER_KI" value="20" />
|
||||
<define name="NOMINAL_HOVER_THROTTLE" value="0.6" />
|
||||
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE" />
|
||||
</section>
|
||||
|
||||
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||
<define name="MAX_BANK" value="30" unit="deg" />
|
||||
<define name="REF_MAX_SPEED" value="3" unit="m/s" />
|
||||
<define name="PGAIN" value="50" />
|
||||
<define name="DGAIN" value="100" />
|
||||
<define name="IGAIN" value="30" />
|
||||
</section>
|
||||
|
||||
<section name="NAVIGATION" prefix="NAV_">
|
||||
<define name="CLIMB_VSPEED" value="4.5" />
|
||||
<define name="DESCEND_VSPEED" value="-1.0" />
|
||||
</section>
|
||||
|
||||
<section name="AUTOPILOT">
|
||||
<define name="MODE_STARTUP" value="AP_MODE_ATTITUDE_DIRECT" />
|
||||
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT" />
|
||||
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD" />
|
||||
<define name="MODE_AUTO2" value="AP_MODE_RC_DIRECT" />
|
||||
<define name="NO_RC_THRUST_LIMIT" value="TRUE" />
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<!-- 2S LiPo with 950mAh -->
|
||||
<define name="LOW_BAT_LEVEL" value="7.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="7.3" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="7.0" unit="V"/>
|
||||
<define name="MAX_BAT_LEVEL" value="8.4" unit="V"/>
|
||||
</section>
|
||||
|
||||
</airframe>
|
||||
@@ -1,231 +0,0 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
|
||||
<airframe name="xvert">
|
||||
<description>
|
||||
E-flite X-VERT VTOL
|
||||
|
||||
* Autopilot: xvert
|
||||
* IMU: MPU6500 + external HMC58XX
|
||||
* Actuators: 2 PWM servo's, 2 escs through some proprietary atmega uart protocol
|
||||
* GPS: Ublox through I2C
|
||||
* RC: Datalink
|
||||
</description>
|
||||
|
||||
<firmware name="rotorcraft">
|
||||
<target name="ap" board="xvert_1.0"/>
|
||||
<define name="BAT_CHECKER_DELAY" value="80" />
|
||||
<!-- amount of time it take for the bat to check -->
|
||||
<!-- to avoid bat low spike detection when strong pullup withch draws short sudden power-->
|
||||
<define name="CATASTROPHIC_BATTERY_KILL_DELAY" value="80" />
|
||||
|
||||
<!-- To fix the 32k ram limit issue:-->
|
||||
<!--<define name="PPRZ_TRIG_INT_USE_FLOAT"/>-->
|
||||
<define name="PPRZ_TRIG_CONST" value="const"/>
|
||||
<define name="THD_WORKING_AREA_MAIN" value="1024"/>
|
||||
<define name="UART_THREAD_STACK_SIZE" value="240"/>
|
||||
<define name="I2C_THREAD_STACK_SIZE" value="240"/>
|
||||
|
||||
<configure name="USE_MAGNETOMETER" value="FALSE"/>
|
||||
|
||||
<!-- in seconds-->
|
||||
<module name="telemetry" type="transparent" >
|
||||
<define name="MODEM_BAUD" value="57600"/>
|
||||
</module>
|
||||
<module name="guidance" type="hybrid"/>
|
||||
<module name="motor_mixing"/>
|
||||
<module name="sys_mon"/>
|
||||
<module name="gps" type="ubx_ucenter"/>
|
||||
<module name="send_imu_mag_current"/>
|
||||
<module name="air_data"/>
|
||||
<module name="imu" type="mpu9250_i2c">
|
||||
<configure name="IMU_MPU9250_I2C_DEV" value="i2c1"/>
|
||||
<define name="IMU_MPU9250_READ_MAG" value="FALSE"/>
|
||||
<define name="IMU_MPU9250_I2C_ADDR" value="MPU9250_ADDR"/>
|
||||
<define name="AHRS_ICQ_MAG_ID" value="MAG_HMC58XX_SENDER_ID" /> <!-- Meaning the external hmc-->
|
||||
</module>
|
||||
<module name="stabilization" type="indi_simple" />
|
||||
<module name="ahrs" type="float_cmpl_quat" >
|
||||
<define name="AHRS_USE_GPS_HEADING" value="FALSE"/>
|
||||
</module>
|
||||
<module name="ins" type="float_invariant">
|
||||
<define name="INS_PROPAGATE_FREQUENCY" value="500"/>
|
||||
<define name="INS_FINV_MAG_ID" value="MAG_HMC58XX_SENDER_ID"/>
|
||||
</module>
|
||||
<module name="actuators" type="xvert">
|
||||
<define name="SERVO_HZ" value="400" />
|
||||
</module>
|
||||
<module name="radio_control" type="datalink"/>
|
||||
<module name="gps" type="ubx_i2c">
|
||||
<configure name="GPS_UBX_I2C_DEV" value="i2c2"/>
|
||||
</module>
|
||||
<module name="mag" type="hmc58xx">
|
||||
<configure name="MAG_HMC58XX_I2C_DEV" value="i2c2"/>
|
||||
<define name="MODULE_HMC58XX_UPDATE_AHRS" value="TRUE"/>
|
||||
<define name="HMC58XX_CHAN_X" value="1"/>
|
||||
<define name="HMC58XX_CHAN_Y" value="0"/>
|
||||
<define name="HMC58XX_CHAN_Z" value="2"/>
|
||||
<define name="HMC58XX_CHAN_X_SIGN" value="-"/>
|
||||
<define name="HMC58XX_CHAN_Y_SIGN" value="+"/>
|
||||
<define name="HMC58XX_CHAN_Z_SIGN" value="+"/>
|
||||
</module>
|
||||
</firmware>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="H_X" value="0.5138"/>
|
||||
<define name="H_Y" value="0.00019"/>
|
||||
<define name="H_Z" value="0.8578"/>
|
||||
</section>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<!-- replace this with your own calibration -->
|
||||
<define name="MAG_X_NEUTRAL" value="30"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="127"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="140"/>
|
||||
<define name="MAG_X_SENS" value="7.11726808648" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="7.09366475279" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="6.84467824688" integer="16"/>
|
||||
|
||||
<define name="ACCEL_X_NEUTRAL" value="-52"/>
|
||||
<define name="ACCEL_Y_NEUTRAL" value="-4"/>
|
||||
<define name="ACCEL_Z_NEUTRAL" value="-7"/>
|
||||
<define name="ACCEL_X_SENS" value="2.45056441681" integer="16"/>
|
||||
<define name="ACCEL_Y_SENS" value="2.44991708802" integer="16"/>
|
||||
<define name="ACCEL_Z_SENS" value="2.44199722843" integer="16"/>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="90." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_PSI" value="90." unit="deg"/>
|
||||
</section>
|
||||
<commands>
|
||||
<axis name="PITCH" failsafe_value="0"/>
|
||||
<axis name="ROLL" failsafe_value="0"/>
|
||||
<axis name="YAW" failsafe_value="0"/>
|
||||
<axis name="THRUST" failsafe_value="0"/>
|
||||
</commands>
|
||||
<servos driver="Xvert">
|
||||
<servo name="RM" no="0" min="1160" neutral="1200" max="1880"/>
|
||||
<servo name="LM" no="1" min="1160" neutral="1200" max="1880"/>
|
||||
<servo name="ELEVON_RIGHT" no="2" min="1000" neutral="1500" max="2000"/>
|
||||
<servo name="ELEVON_LEFT" no="3" min="1000" neutral="1500" max="2000"/>
|
||||
</servos>
|
||||
|
||||
<command_laws>
|
||||
<call fun="motor_mixing_run(autopilot_get_motors_on(),FALSE,values)"/>
|
||||
<set servo="RM" value="motor_mixing.commands[0]"/>
|
||||
<set servo="LM" value="motor_mixing.commands[1]"/>
|
||||
|
||||
<!-- Mode dependent actuator laws for the elevons. The elevons act different in rc attitude flight mode-->
|
||||
<!-- First the correct feedback is stored in variables -->
|
||||
<let var="aileron_feedback_left" value="@YAW"/>
|
||||
<let var="aileron_feedback_right" value="@YAW"/>
|
||||
|
||||
<let var="elevator_feedback_left" value="-@PITCH"/>
|
||||
<let var="elevator_feedback_right" value="+@PITCH"/>
|
||||
|
||||
<!-- if using PID with gain scheduling -->
|
||||
<let var="forward_left" value="$aileron_feedback_left + $elevator_feedback_left"/>
|
||||
<let var="forward_right" value="$aileron_feedback_right + $elevator_feedback_right"/>
|
||||
|
||||
<!-- This statement tells the autopilot to use the hover feedback if in mode attitude direct and to use the forward feedback in all other cases-->
|
||||
<set servo="ELEVON_LEFT" value="$forward_left" />
|
||||
<set servo="ELEVON_RIGHT" value="$forward_right" />
|
||||
</command_laws>
|
||||
|
||||
<section name="AIR_DATA" prefix="AIR_DATA_">
|
||||
<define name="CALC_AIRSPEED" value="FALSE" />
|
||||
<define name="CALC_TAS_FACTOR" value="FALSE" />
|
||||
<define name="CALC_AMSL_BARO" value="TRUE" />
|
||||
</section>
|
||||
|
||||
<section name="RC_SETPOINT" 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="300" 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_">
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_P" value="0.01292" />
|
||||
<define name="G1_Q" value="0.014867" />
|
||||
<define name="G1_R" value="0.012055" />
|
||||
<define name="G2_R" value="0.0" />
|
||||
<!-- For the bebop2 we need to filter the roll rate due to the dampers -->
|
||||
<define name="FILTER_ROLL_RATE" value="FALSE" />
|
||||
<define name="FILTER_PITCH_RATE" value="FALSE" />
|
||||
<define name="FILTER_YAW_RATE" value="FALSE" />
|
||||
<!-- reference acceleration for attitude control -->
|
||||
<define name="REF_ERR_P" value="100.0" />
|
||||
<define name="REF_ERR_Q" value="100.0" />
|
||||
<define name="REF_ERR_R" value="100.0" />
|
||||
<define name="REF_RATE_P" value="14.0" />
|
||||
<define name="REF_RATE_Q" value="14.0" />
|
||||
<define name="REF_RATE_R" value="14.0" />
|
||||
<!-- second order filter parameters -->
|
||||
<define name="FILT_CUTOFF" value="3.2"/>
|
||||
<define name="FILT_CUTOFF_R" value="3.2"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
<define name="ACT_DYN_P" value="0.04" />
|
||||
<define name="ACT_DYN_Q" value="0.04" />
|
||||
<define name="ACT_DYN_R" value="0.04" />
|
||||
<!-- Adaptive Learning Rate -->
|
||||
<define name="USE_ADAPTIVE" value="FALSE" />
|
||||
<define name="ADAPTIVE_MU" value="0.0001" />
|
||||
<!-- max rates (conservative) -->
|
||||
<define name="STABILIZATION_INDI_MAX_RATE" value="343.77" unit="deg/s"/>
|
||||
<define name="STABILIZATION_INDI_MAX_R" value="200" unit="deg/s"/> <!--Does not seem to be applied-->
|
||||
<define name="FULL_AUTHORITY" value="TRUE"/>
|
||||
</section>
|
||||
<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
|
||||
<define name="HOVER_KP" value="350" />
|
||||
<define name="HOVER_KD" value="85" />
|
||||
<define name="HOVER_KI" value="20" />
|
||||
<define name="NOMINAL_HOVER_THROTTLE" value="0.6" />
|
||||
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE" />
|
||||
</section>
|
||||
<section name="GUIDANCE_H" prefix="GUIDANCE_H_">
|
||||
<!-- Good weather -->
|
||||
<define name="MAX_BANK" value="20" unit="deg" />
|
||||
<define name="REF_MAX_SPEED" value="2" unit="m/s" />
|
||||
<!-- Bad weather -->
|
||||
<!-- define name="MAX_BANK" value="32" unit="deg"/ -->
|
||||
<define name="PGAIN" value="50" />
|
||||
<define name="DGAIN" value="100" />
|
||||
<define name="IGAIN" value="30" />
|
||||
</section>
|
||||
<section name="NAVIGATION" prefix="NAV_">
|
||||
<define name="CLIMB_VSPEED" value="4.5" />
|
||||
<define name="DESCEND_VSPEED" value="-1.0" />
|
||||
</section>
|
||||
<section name="AUTOPILOT">
|
||||
<define name="MODE_STARTUP" value="AP_MODE_ATTITUDE_DIRECT" />
|
||||
<define name="MODE_MANUAL" value="AP_MODE_ATTITUDE_DIRECT" />
|
||||
<define name="MODE_AUTO1" value="AP_MODE_HOVER_Z_HOLD" />
|
||||
<define name="MODE_AUTO2" value="AP_MODE_RC_DIRECT" />
|
||||
<define name="NO_RC_THRUST_LIMIT" value="TRUE" />
|
||||
</section>
|
||||
|
||||
<section name="BAT">
|
||||
<!-- 2S LiPo with 950mAh -->
|
||||
<define name="LOW_BAT_LEVEL" value="7.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="7.3" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="7.0" unit="V"/>
|
||||
<define name="MAX_BAT_LEVEL" value="8.4" unit="V"/>
|
||||
</section>
|
||||
|
||||
<section name="MIXING" prefix="MOTOR_MIXING_">
|
||||
<define name="TRIM_ROLL" value="0"/>
|
||||
<define name="TRIM_PITCH" value="0"/>
|
||||
<define name="TRIM_YAW" value="0"/>
|
||||
<define name="NB_MOTOR" value="2"/>
|
||||
<define name="SCALE" value="256"/>
|
||||
<define name="PITCH_COEF" value="{ 0, 0}"/>
|
||||
<define name="ROLL_COEF" value="{ -256, 256 }"/>
|
||||
<define name="YAW_COEF" value="{ 0, 0 }"/>
|
||||
<define name="THRUST_COEF" value="{ 256, 256 }"/>
|
||||
</section>
|
||||
</airframe>
|
||||
@@ -1,71 +0,0 @@
|
||||
# Hey Emacs, this is a -*- makefile -*-
|
||||
#
|
||||
# stm32f37_vortex_chibios.makefile
|
||||
#
|
||||
#
|
||||
|
||||
BOARD=xvert
|
||||
BOARD_VERSION=1.0
|
||||
BOARD_DIR=$(BOARD)/chibios/v$(BOARD_VERSION)
|
||||
BOARD_CFG=\"boards/$(BOARD_DIR)/board.h\"
|
||||
|
||||
ARCH=chibios
|
||||
$(TARGET).ARCHDIR = $(ARCH)
|
||||
|
||||
RTOS=chibios
|
||||
|
||||
## FPU on F3
|
||||
|
||||
##TODO: there is some bug when using the hard FPU unit!!
|
||||
USE_FPU=no
|
||||
|
||||
$(TARGET).CFLAGS += -DPPRZLINK_ENABLE_FD
|
||||
|
||||
##############################################################################
|
||||
# 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 = STM32F37x/platform.mk
|
||||
CHIBIOS_BOARD_LINKER = STM32F373xC.ld
|
||||
CHIBIOS_BOARD_STARTUP = startup_stm32f3xx.mk
|
||||
|
||||
##############################################################################
|
||||
# Compiler settings
|
||||
#
|
||||
MCU = cortex-m4
|
||||
|
||||
|
||||
# default flash mode is via DFU-UTIL
|
||||
# possibilities: DFU-UTIL, SWD, SWD_NOPWR, STLINK
|
||||
FLASH_MODE ?= SWD_NOPWR
|
||||
|
||||
HAS_LUFTBOOT = FALSE
|
||||
|
||||
#
|
||||
# default LED configuration
|
||||
#
|
||||
SYS_TIME_LED ?= 1
|
||||
RADIO_CONTROL_LED ?= none
|
||||
BARO_LED ?= none
|
||||
AHRS_ALIGNER_LED ?= 2
|
||||
GPS_LED ?= none
|
||||
|
||||
#
|
||||
# default UART configuration (modem, gps, spektrum)
|
||||
#
|
||||
|
||||
MODEM_PORT ?= UART2
|
||||
MODEM_BAUD ?= B57600
|
||||
|
||||
#
|
||||
# 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_xvert
|
||||
@@ -290,15 +290,6 @@ else ifeq ($(BOARD), chimera)
|
||||
BARO_BOARD_SRCS += peripherals/ms5611_i2c.c
|
||||
BARO_BOARD_SRCS += boards/baro_board_ms5611_i2c.c
|
||||
|
||||
else ifeq ($(BOARD), xvert)
|
||||
BARO_BOARD_CFLAGS += -DBARO_BOARD=BARO_MS5611_I2C
|
||||
BARO_BOARD_CFLAGS += -DUSE_I2C2
|
||||
BARO_BOARD_CFLAGS += -DBB_MS5611_I2C_DEV=i2c2
|
||||
BARO_BOARD_CFLAGS += -DBB_MS5611_SLAVE_ADDR=MS5611_I2C_SLAVE_ADDR_ALT
|
||||
BARO_BOARD_SRCS += peripherals/ms5611.c
|
||||
BARO_BOARD_SRCS += peripherals/ms5611_i2c.c
|
||||
BARO_BOARD_SRCS += boards/baro_board_ms5611_i2c.c
|
||||
|
||||
endif # check board
|
||||
|
||||
BARO_LED ?= none
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<!DOCTYPE module SYSTEM "module.dtd">
|
||||
|
||||
<module name="actuators_esc32" dir="actuators" task="actuators">
|
||||
<doc>
|
||||
<description>
|
||||
Actuators Driver for x-vert vtol escs
|
||||
</description>
|
||||
<configure name="ESCS_PORT" value="usb_serial" description="Port used to connect to the atmegas escs."/>
|
||||
<configure name="ESCS_BAUD" value="250000" description="Baud rate for ESCS_PORT if a UART"/>
|
||||
</doc>
|
||||
<header>
|
||||
<file name="actuators_xvert.h" dir="subsystems/actuators"/>
|
||||
</header>
|
||||
<makefile target="ap">
|
||||
<define name="ACTUATORS"/>
|
||||
<file_arch name="actuators_xvert.c" dir="subsystems/actuators"/>
|
||||
<file_arch name="actuators_pwm_arch.c" dir="subsystems/actuators"/>
|
||||
<configure name="ESCS_PORT" default="uart1" case="upper|lower"/>
|
||||
<configure name="ESCS_BAUD" default="250000"/>
|
||||
<define name="USE_$(ESCS_PORT_UPPER)"/>
|
||||
<define name="ESCS_UART" value="$(ESCS_PORT_LOWER)"/>
|
||||
<define name="$(ESCS_PORT_UPPER)_BAUD" value="$(ESCS_BAUD)"/>
|
||||
</makefile>
|
||||
</module>
|
||||
|
||||
@@ -318,15 +318,4 @@
|
||||
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/air_data.xml modules/airspeed_adc.xml modules/photogrammetry_calculator.xml modules/gps.xml modules/gps_ubx_ucenter.xml modules/guidance_energy.xml modules/imu_common.xml modules/tune_airspeed.xml modules/nav_basic_fw.xml modules/nav_smooth.xml modules/nav_survey_poly_osam.xml modules/stabilization_attitude_fw.xml modules/digital_cam_uart.xml"
|
||||
gui_color="#fffffac7c07a"
|
||||
/>
|
||||
<aircraft
|
||||
name="XVert"
|
||||
ac_id="217"
|
||||
airframe="airframes/OPENUAS/openuas_eflite_xvert.xml"
|
||||
radio="radios/dummy.xml"
|
||||
telemetry="telemetry/default_rotorcraft_slow.xml"
|
||||
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||
settings="settings/rotorcraft_basic.xml"
|
||||
settings_modules="modules/ahrs_float_cmpl_quat.xml modules/air_data.xml modules/gps.xml modules/guidance_hybrid.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_float_invariant.xml modules/nav_basic_rotorcraft.xml modules/stabilization_indi_simple.xml"
|
||||
gui_color="#fffff3c90091"
|
||||
/>
|
||||
</conf>
|
||||
|
||||
@@ -591,16 +591,4 @@
|
||||
settings_modules="modules/ahrs_int_cmpl_quat.xml modules/stabilization_int_quat.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/gps.xml modules/imu_common.xml modules/gps_ubx_ucenter.xml"
|
||||
gui_color="#b29eb22cffff"
|
||||
/>
|
||||
<aircraft
|
||||
name="xvert"
|
||||
ac_id="69"
|
||||
airframe="airframes/tudelft/xvert.xml"
|
||||
radio="radios/dummy.xml"
|
||||
telemetry="telemetry/default_rotorcraft_slow.xml"
|
||||
flight_plan="flight_plans/rotorcraft_basic.xml"
|
||||
settings="settings/rotorcraft_basic.xml"
|
||||
settings_modules="modules/gps.xml modules/ahrs_float_cmpl_quat.xml modules/stabilization_indi_simple.xml modules/nav_basic_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/air_data.xml modules/gps_ubx_ucenter.xml modules/guidance_hybrid.xml"
|
||||
gui_color="#ffffcccaccca"
|
||||
release="2a6ad556f183875fa9fb8072d774beec7ba55701"
|
||||
/>
|
||||
</conf>
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Kevin van Hecke
|
||||
*
|
||||
* This file is part of paparazzi
|
||||
*
|
||||
* paparazzi is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* paparazzi is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with paparazzi; see the file COPYING. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
* @file actuators_xvert.c
|
||||
* @author Kevin van Hecke
|
||||
* Actuators driver for X-vert VTOL motor controllers. Contains two
|
||||
* normal pwm servos, and two custom driven escs through a propriety uart
|
||||
* protocol.
|
||||
*/
|
||||
#include "actuators_xvert.h"
|
||||
#include "subsystems/actuators/actuators_pwm_arch.h"
|
||||
#include "subsystems/actuators/actuators_pwm.h"
|
||||
|
||||
#include "mcu_periph/uart.h"
|
||||
|
||||
#define ESCS_PORT (&((ESCS_UART).device))
|
||||
|
||||
|
||||
|
||||
int32_t actuators_xvert_values[ACTUATORS_PWM_NB];
|
||||
|
||||
|
||||
#define GP 0x107 /* x^8 + x^2 + x + 1 */
|
||||
#define DI 0xE7
|
||||
|
||||
|
||||
static unsigned char crc8_table[256]; /* 8-bit table */
|
||||
static int made_table = 0;
|
||||
|
||||
static void init_crc8(void)
|
||||
/*
|
||||
* Should be called before any other crc function.
|
||||
*/
|
||||
{
|
||||
int i, j;
|
||||
unsigned char crc;
|
||||
|
||||
if (!made_table) {
|
||||
for (i = 0; i < 256; i++) {
|
||||
crc = i;
|
||||
for (j = 0; j < 8; j++) {
|
||||
crc = (crc << 1) ^ ((crc & 0x80) ? DI : 0);
|
||||
}
|
||||
crc8_table[i] = crc & 0xFF;
|
||||
/* printf("table[%d] = %d (0x%X)\n", i, crc, crc); */
|
||||
}
|
||||
made_table = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void crc8(unsigned char *crc, unsigned char m)
|
||||
/*
|
||||
* For a byte array whose accumulated crc value is stored in *crc, computes
|
||||
* resultant crc obtained by appending m to the byte array
|
||||
*/
|
||||
{
|
||||
if (!made_table) {
|
||||
init_crc8();
|
||||
}
|
||||
|
||||
*crc = crc8_table[(*crc) ^ m];
|
||||
*crc &= 0xFF;
|
||||
}
|
||||
|
||||
|
||||
void actuators_xvert_init(void)
|
||||
{
|
||||
actuators_pwm_arch_init();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void actuators_xvert_commit(void)
|
||||
{
|
||||
if (ESCS_PORT->char_available(ESCS_PORT->periph)) {
|
||||
//unsigned char b1 = ESCS_PORT->get_byte(ESCS_PORT->periph);
|
||||
}
|
||||
|
||||
struct EscData package;
|
||||
package.start = ESCS_START_BYTE;
|
||||
package.len = 8;
|
||||
package.id = 2;
|
||||
|
||||
package.d1 = actuators_xvert_values[XVERT_ESC_0];
|
||||
package.d2 = actuators_xvert_values[XVERT_ESC_1];
|
||||
|
||||
//do some package magic:
|
||||
static bool bitflipper = true;
|
||||
if (bitflipper) {
|
||||
package.d1 += ESCS_DATA_FLIPBIT;
|
||||
} else {
|
||||
package.d2 += ESCS_DATA_FLIPBIT;
|
||||
}
|
||||
package.d1 += ESCS_DATA_MYSTERYBIT;
|
||||
bitflipper = !bitflipper;
|
||||
|
||||
unsigned char crc = 0;
|
||||
unsigned char *data = (unsigned char *)&package;
|
||||
for (unsigned char i = 1 ; i < sizeof(struct EscData) - 1; i++) {
|
||||
crc8(&crc, data[i]);
|
||||
}
|
||||
package.crc = crc;
|
||||
|
||||
ESCS_PORT->put_buffer(ESCS_PORT->periph, 0, (unsigned char *) &package, sizeof(struct EscData));
|
||||
|
||||
|
||||
//send the pwm signals for the two elerons to the pwm driver:
|
||||
actuators_pwm_values[PWM_SERVO_2] = actuators_xvert_values[PWM_SERVO_2];
|
||||
actuators_pwm_values[PWM_SERVO_3] = actuators_xvert_values[PWM_SERVO_3];
|
||||
actuators_pwm_commit();
|
||||
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Kevin van Hecke
|
||||
*
|
||||
* This file is part of paparazzi
|
||||
*
|
||||
* paparazzi is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* paparazzi is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with paparazzi; see the file COPYING. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
* @file actuators_xvert.h
|
||||
* @author Kevin van Hecke
|
||||
* Actuators driver for X-vert VTOL motor controllers. Contains two normal pwm servos, and two custom driven escs through a propriety uart protocol.
|
||||
*/
|
||||
|
||||
#ifndef ACTUATORS_XVERT_H
|
||||
#define ACTUATORS_XVERT_H
|
||||
|
||||
#include "subsystems/actuators/actuators_pwm_arch.h"
|
||||
|
||||
#define ESCS_START_BYTE 0xFE
|
||||
#define ESCS_DATA_FLIPBIT 16384
|
||||
#define ESCS_DATA_MYSTERYBIT 32768
|
||||
|
||||
struct EscData {
|
||||
unsigned char start; //0xfe
|
||||
unsigned char len; //8
|
||||
unsigned char id; //2
|
||||
|
||||
//1200 - 1800, maybe 1100-1900
|
||||
//1160 = off, max ~1880
|
||||
//in both data ints, 2e byte toggles the 64 bit (15e bit in total). If on, its the first, if off its the other
|
||||
//in d2 16e bit always on
|
||||
|
||||
uint32_t d1 ;
|
||||
uint32_t d2 ;
|
||||
unsigned char crc;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
|
||||
extern int32_t actuators_xvert_values[ACTUATORS_PWM_NB];
|
||||
extern void actuators_xvert_commit(void);
|
||||
extern void actuators_xvert_init(void);
|
||||
|
||||
#define ActuatorsXvertInit actuators_xvert_init
|
||||
#define ActuatorXvertSet(_i, _v) { actuators_xvert_values[_i] = _v; }
|
||||
#define ActuatorsXvertCommit actuators_xvert_commit
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,20 +0,0 @@
|
||||
|
||||
/*
|
||||
* board specific functions for the chimera board
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef BOARDS_CHIMERA_BARO_H
|
||||
#define BOARDS_CHIMERA_BARO_H
|
||||
|
||||
// only for printing the baro type during compilation
|
||||
#ifndef BARO_BOARD
|
||||
#define BARO_BOARD BARO_MS5611_I2C
|
||||
#endif
|
||||
|
||||
#define BB_MS5611_TYPE_MS5607 TRUE
|
||||
|
||||
extern void baro_event(void);
|
||||
#define BaroEvent baro_event
|
||||
|
||||
#endif /* BOARDS_CHIMERA_BARO_H */
|
||||
@@ -1,265 +0,0 @@
|
||||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file has been automatically generated using ChibiStudio board
|
||||
* generator plugin. Do not edit manually.
|
||||
*/
|
||||
|
||||
#include "hal.h"
|
||||
#include "stm32_gpio.h"
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local definitions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables and types. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Type of STM32 GPIO port setup.
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t moder;
|
||||
uint32_t otyper;
|
||||
uint32_t ospeedr;
|
||||
uint32_t pupdr;
|
||||
uint32_t odr;
|
||||
uint32_t afrl;
|
||||
uint32_t afrh;
|
||||
} gpio_setup_t;
|
||||
|
||||
/**
|
||||
* @brief Type of STM32 GPIO initialization data.
|
||||
*/
|
||||
typedef struct {
|
||||
#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
|
||||
gpio_setup_t PAData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
|
||||
gpio_setup_t PBData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
|
||||
gpio_setup_t PCData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
|
||||
gpio_setup_t PDData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
|
||||
gpio_setup_t PEData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
|
||||
gpio_setup_t PFData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
|
||||
gpio_setup_t PGData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
|
||||
gpio_setup_t PHData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
|
||||
gpio_setup_t PIData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
|
||||
gpio_setup_t PJData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
|
||||
gpio_setup_t PKData;
|
||||
#endif
|
||||
} gpio_config_t;
|
||||
|
||||
/**
|
||||
* @brief STM32 GPIO static initialization data.
|
||||
*/
|
||||
static const gpio_config_t gpio_default_config = {
|
||||
#if STM32_HAS_GPIOA
|
||||
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
|
||||
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB
|
||||
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
|
||||
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC
|
||||
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
|
||||
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD
|
||||
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
|
||||
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE
|
||||
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
|
||||
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF
|
||||
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
|
||||
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG
|
||||
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
|
||||
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH
|
||||
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
|
||||
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI
|
||||
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
|
||||
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ
|
||||
{VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
|
||||
VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK
|
||||
{VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
|
||||
VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
|
||||
#endif
|
||||
};
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
|
||||
|
||||
gpiop->OTYPER = config->otyper;
|
||||
gpiop->OSPEEDR = config->ospeedr;
|
||||
gpiop->PUPDR = config->pupdr;
|
||||
gpiop->ODR = config->odr;
|
||||
gpiop->AFRL = config->afrl;
|
||||
gpiop->AFRH = config->afrh;
|
||||
gpiop->MODER = config->moder;
|
||||
}
|
||||
|
||||
static void stm32_gpio_init(void) {
|
||||
|
||||
/* Enabling GPIO-related clocks, the mask comes from the
|
||||
registry header file.*/
|
||||
rccResetAHB(STM32_GPIO_EN_MASK);
|
||||
rccEnableAHB(STM32_GPIO_EN_MASK, true);
|
||||
|
||||
/* Initializing all the defined GPIO ports.*/
|
||||
#if STM32_HAS_GPIOA
|
||||
gpio_init(GPIOA, &gpio_default_config.PAData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB
|
||||
gpio_init(GPIOB, &gpio_default_config.PBData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC
|
||||
gpio_init(GPIOC, &gpio_default_config.PCData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD
|
||||
gpio_init(GPIOD, &gpio_default_config.PDData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE
|
||||
gpio_init(GPIOE, &gpio_default_config.PEData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF
|
||||
gpio_init(GPIOF, &gpio_default_config.PFData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG
|
||||
gpio_init(GPIOG, &gpio_default_config.PGData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH
|
||||
gpio_init(GPIOH, &gpio_default_config.PHData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI
|
||||
gpio_init(GPIOI, &gpio_default_config.PIData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ
|
||||
gpio_init(GPIOJ, &gpio_default_config.PJData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK
|
||||
gpio_init(GPIOK, &gpio_default_config.PKData);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver interrupt handlers. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Early initialization code.
|
||||
* @details GPIO ports and system clocks are initialized before everything
|
||||
* else.
|
||||
*/
|
||||
void __early_init(void) {
|
||||
|
||||
stm32_gpio_init();
|
||||
stm32_clock_init();
|
||||
}
|
||||
|
||||
#if HAL_USE_SDC || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief SDC card detection.
|
||||
*/
|
||||
bool sdc_lld_is_card_inserted(SDCDriver *sdcp)
|
||||
{
|
||||
|
||||
(void)sdcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SDC card write protection detection.
|
||||
*/
|
||||
bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
|
||||
|
||||
(void)sdcp;
|
||||
return false;
|
||||
}
|
||||
#endif /* HAL_USE_SDC */
|
||||
|
||||
#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief MMC_SPI card detection.
|
||||
*/
|
||||
bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
|
||||
|
||||
(void)mmcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief MMC_SPI card write protection detection.
|
||||
*/
|
||||
bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
|
||||
|
||||
(void)mmcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Board-specific initialization code.
|
||||
* @todo Add your board-specific code, if any.
|
||||
*/
|
||||
void boardInit(void) {
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,24 +0,0 @@
|
||||
#
|
||||
# ChibiOS/RT - Copyright (C) 2006-2013 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.
|
||||
#
|
||||
# Required include directories
|
||||
BOARDINC = $(CHIBIOS_BOARD_DIR)
|
||||
|
||||
# List of all the board related files.
|
||||
BOARDSRC = ${BOARDINC}/board.c
|
||||
|
||||
# Shared variables
|
||||
ALLCSRC += $(BOARDSRC)
|
||||
ALLINC += $(BOARDINC)
|
||||
@@ -1,270 +0,0 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2006..2016 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
|
||||
|
||||
/*
|
||||
* STM32F37x 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 STM32F37x_MCUCONF
|
||||
|
||||
/*
|
||||
* HAL driver system settings.
|
||||
*/
|
||||
#define STM32_NO_INIT FALSE
|
||||
#define STM32_PVD_ENABLE FALSE
|
||||
#define STM32_PLS STM32_PLS_LEV0
|
||||
#define STM32_HSI_ENABLED TRUE
|
||||
#define STM32_LSI_ENABLED TRUE
|
||||
#define STM32_HSE_ENABLED TRUE
|
||||
#define STM32_LSE_ENABLED FALSE
|
||||
#define STM32_SW STM32_SW_PLL
|
||||
#define STM32_PLLSRC STM32_PLLSRC_HSE
|
||||
#define STM32_PREDIV_VALUE 2
|
||||
#define STM32_PLLMUL_VALUE 9
|
||||
#define STM32_HPRE STM32_HPRE_DIV1
|
||||
#define STM32_PPRE1 STM32_PPRE1_DIV2
|
||||
#define STM32_PPRE2 STM32_PPRE2_DIV2
|
||||
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
|
||||
#define STM32_ADCPRE STM32_ADCPRE_DIV4
|
||||
#define STM32_SDPRE STM32_SDPRE_DIV12
|
||||
#define STM32_USART1SW STM32_USART1SW_PCLK
|
||||
#define STM32_USART2SW STM32_USART2SW_PCLK
|
||||
#define STM32_USART3SW STM32_USART3SW_PCLK
|
||||
#define STM32_I2C1SW STM32_I2C1SW_SYSCLK
|
||||
#define STM32_I2C2SW STM32_I2C2SW_SYSCLK
|
||||
#define STM32_RTCSEL STM32_RTCSEL_LSI
|
||||
#define STM32_USB_CLOCK_REQUIRED TRUE
|
||||
#define STM32_USBPRE STM32_USBPRE_DIV1P5
|
||||
|
||||
/*
|
||||
* ADC driver system settings.
|
||||
*/
|
||||
#define STM32_ADC_USE_ADC1 TRUE
|
||||
#define STM32_ADC_USE_SDADC1 FALSE
|
||||
#define STM32_ADC_USE_SDADC2 FALSE
|
||||
#define STM32_ADC_USE_SDADC3 FALSE
|
||||
#define STM32_ADC_ADC1_DMA_PRIORITY 2
|
||||
#define STM32_ADC_SDADC1_DMA_PRIORITY 2
|
||||
#define STM32_ADC_SDADC2_DMA_PRIORITY 2
|
||||
#define STM32_ADC_SDADC3_DMA_PRIORITY 2
|
||||
#define STM32_ADC_ADC1_IRQ_PRIORITY 5
|
||||
#define STM32_ADC_SDADC1_IRQ_PRIORITY 5
|
||||
#define STM32_ADC_SDADC2_IRQ_PRIORITY 5
|
||||
#define STM32_ADC_SDADC3_IRQ_PRIORITY 5
|
||||
#define STM32_ADC_SDADC1_DMA_IRQ_PRIORITY 5
|
||||
#define STM32_ADC_SDADC2_DMA_IRQ_PRIORITY 5
|
||||
#define STM32_ADC_SDADC3_DMA_IRQ_PRIORITY 5
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
/*
|
||||
* EXT driver system settings.
|
||||
*/
|
||||
#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI20_23_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI30_32_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI33_IRQ_PRIORITY 6
|
||||
|
||||
/*
|
||||
* GPT driver system settings.
|
||||
*/
|
||||
#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_TIM12 FALSE
|
||||
#define STM32_GPT_USE_TIM14 FALSE
|
||||
#define STM32_GPT_TIM2_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM3_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM4_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM5_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM6_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM7_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM12_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM14_IRQ_PRIORITY 7
|
||||
|
||||
/*
|
||||
* I2C driver system settings.
|
||||
*/
|
||||
#if USE_I2C1
|
||||
#define STM32_I2C_USE_I2C1 TRUE
|
||||
#else
|
||||
#define STM32_I2C_USE_I2C1 FALSE
|
||||
#endif
|
||||
#if USE_I2C2
|
||||
#define STM32_I2C_USE_I2C2 TRUE
|
||||
#else
|
||||
#define STM32_I2C_USE_I2C2 FALSE
|
||||
#endif
|
||||
#define STM32_I2C_BUSY_TIMEOUT 50
|
||||
#define STM32_I2C_I2C1_IRQ_PRIORITY 10
|
||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 10
|
||||
#define STM32_I2C_USE_DMA TRUE
|
||||
#define STM32_I2C_I2C1_DMA_PRIORITY 1
|
||||
#define STM32_I2C_I2C2_DMA_PRIORITY 1
|
||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
||||
|
||||
/*
|
||||
* ICU driver system settings.
|
||||
*/
|
||||
#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_TIM2_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM3_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM4_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM5_IRQ_PRIORITY 7
|
||||
|
||||
/*
|
||||
* PWM driver system settings.
|
||||
*/
|
||||
#define STM32_PWM_USE_TIM2 FALSE
|
||||
#define STM32_PWM_USE_TIM3 FALSE
|
||||
#define STM32_PWM_USE_TIM4 FALSE
|
||||
#define STM32_PWM_USE_TIM5 TRUE
|
||||
#define STM32_PWM_TIM2_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM3_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM4_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM5_IRQ_PRIORITY 7
|
||||
|
||||
/*
|
||||
* SERIAL driver system settings.
|
||||
*/
|
||||
#if USE_UART1
|
||||
#define STM32_SERIAL_USE_USART1 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_USART1 FALSE
|
||||
#endif
|
||||
#if USE_UART2
|
||||
#define STM32_SERIAL_USE_USART2 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_USART2 FALSE
|
||||
#endif
|
||||
#if USE_UART3
|
||||
#define STM32_SERIAL_USE_USART3 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_USART3 FALSE
|
||||
#endif
|
||||
#if USE_UART4
|
||||
#define STM32_SERIAL_USE_UART4 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_UART4 FALSE
|
||||
#endif
|
||||
#if USE_UART5
|
||||
#define STM32_SERIAL_USE_UART5 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_UART5 FALSE
|
||||
#endif
|
||||
#define STM32_SERIAL_USART1_PRIORITY 12
|
||||
#define STM32_SERIAL_USART2_PRIORITY 12
|
||||
#define STM32_SERIAL_USART3_PRIORITY 12
|
||||
#define STM32_SERIAL_UART4_PRIORITY 12
|
||||
#define STM32_SERIAL_UART5_PRIORITY 12
|
||||
|
||||
/*
|
||||
* 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_SPI1_DMA_PRIORITY 1
|
||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
||||
#define STM32_SPI_SPI3_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_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
||||
|
||||
/*
|
||||
* ST driver system settings.
|
||||
*/
|
||||
#define STM32_ST_IRQ_PRIORITY 8
|
||||
#define STM32_ST_USE_TIMER 2
|
||||
|
||||
/*
|
||||
* UART driver system settings.
|
||||
*/
|
||||
#define STM32_UART_USE_USART1 TRUE
|
||||
#define STM32_UART_USE_USART2 TRUE
|
||||
#define STM32_UART_USE_USART3 FALSE
|
||||
#define STM32_UART_USART1_IRQ_PRIORITY 12
|
||||
#define STM32_UART_USART2_IRQ_PRIORITY 12
|
||||
#define STM32_UART_USART3_IRQ_PRIORITY 12
|
||||
#define STM32_UART_USART1_DMA_PRIORITY 0
|
||||
#define STM32_UART_USART2_DMA_PRIORITY 0
|
||||
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
||||
|
||||
/*
|
||||
* USB driver system settings.
|
||||
*/
|
||||
#define STM32_USB_USE_USB1 FALSE
|
||||
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
|
||||
#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
|
||||
#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
|
||||
|
||||
/*
|
||||
* WDG driver system settings.
|
||||
*/
|
||||
#define STM32_WDG_USE_IWDG FALSE
|
||||
|
||||
#endif /* MCUCONF_H */
|
||||
Reference in New Issue
Block a user