Paparazzi UAS
v5.12_stable-4-g9b43e9b
Paparazzi is a free software Unmanned Aircraft System.
|
Airspeed sensor module using the MS45xxDO digital pressure sensor via I2C. More...
#include "std.h"
#include "mcu_periph/i2c.h"
#include "modules/sensors/airspeed_ms45xx_i2c.h"
#include "filters/low_pass_filter.h"
#include "subsystems/abi.h"
#include "mcu_periph/uart.h"
#include "pprzlink/messages.h"
#include "subsystems/datalink/downlink.h"
#include "subsystems/datalink/telemetry.h"
Go to the source code of this file.
Macros | |
#define | MS45XX_I2C_DEV i2c2 |
Default I2C device. More... | |
#define | MS45XX_I2C_ADDR 0x50 |
Sensor I2C slave address (defaults 0x50, 0x6C and 0x8C) More... | |
#define | MS45XX_PRESSURE_RANGE 1 |
MS45xx pressure range in psi. More... | |
#define | MS45XX_OUTPUT_TYPE 0 |
MS45xx output Type. More... | |
#define | PSI_TO_PA 6894.75729 |
Conversion factor from psi to Pa. More... | |
#define | MS45XX_PRESSURE_SCALE (2 * MS45XX_PRESSURE_RANGE / (0.8 * 16383) * PSI_TO_PA) |
#define | MS45XX_PRESSURE_OFFSET (1.25 * MS45XX_PRESSURE_RANGE * PSI_TO_PA) |
#define | MS45XX_SYNC_SEND FALSE |
Send a AIRSPEED_MS45XX message with every new measurement. More... | |
#define | MS45XX_AIRSPEED_SCALE 1.6327 |
Quadratic scale factor for airspeed. More... | |
#define | MS45XX_LOWPASS_TAU 0.15 |
Time constant for second order Butterworth low pass filter Default of 0.15 should give cut-off freq of 1/(2*pi*tau) ~= 1Hz. More... | |
Functions | |
static void | ms45xx_downlink (struct transport_tx *trans, struct link_device *dev) |
void | ms45xx_i2c_init (void) |
void | ms45xx_i2c_periodic (void) |
void | ms45xx_i2c_event (void) |
Variables | |
struct AirspeedMs45xx | ms45xx |
static struct i2c_transaction | ms45xx_trans |
static Butterworth2LowPass | ms45xx_filter |
Airspeed sensor module using the MS45xxDO digital pressure sensor via I2C.
Needs one of the differential versions with 14bit pressure and 11bit temperature.
Definition in file airspeed_ms45xx_i2c.c.
#define MS45XX_AIRSPEED_SCALE 1.6327 |
Quadratic scale factor for airspeed.
airspeed = sqrt(2*p_diff/density) With p_diff in Pa and standard air density of 1.225 kg/m^3, default airspeed scale is 2/1.225
Definition at line 125 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_init().
#define MS45XX_I2C_ADDR 0x50 |
Sensor I2C slave address (defaults 0x50, 0x6C and 0x8C)
Definition at line 61 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_periodic().
#define MS45XX_I2C_DEV i2c2 |
Default I2C device.
Definition at line 56 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_periodic().
#define MS45XX_LOWPASS_TAU 0.15 |
Time constant for second order Butterworth low pass filter Default of 0.15 should give cut-off freq of 1/(2*pi*tau) ~= 1Hz.
Definition at line 132 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_init().
#define MS45XX_OUTPUT_TYPE 0 |
MS45xx output Type.
0 = Output Type A with 10% to 90% 1 = Output Type B with 5% to 95%
Definition at line 77 of file airspeed_ms45xx_i2c.c.
#define MS45XX_PRESSURE_OFFSET (1.25 * MS45XX_PRESSURE_RANGE * PSI_TO_PA) |
Definition at line 98 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_init().
#define MS45XX_PRESSURE_RANGE 1 |
MS45xx pressure range in psi.
The sensor is available in 1, 2, 5, 15, 30, 50, 100, 150 psi ranges. 1 psi max range should be ~100m/s max airspeed.
Definition at line 69 of file airspeed_ms45xx_i2c.c.
#define MS45XX_PRESSURE_SCALE (2 * MS45XX_PRESSURE_RANGE / (0.8 * 16383) * PSI_TO_PA) |
Definition at line 95 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_init().
#define MS45XX_SYNC_SEND FALSE |
Send a AIRSPEED_MS45XX message with every new measurement.
Mainly for debug, use with caution, sends message at ~100Hz.
Definition at line 116 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_init().
#define PSI_TO_PA 6894.75729 |
Conversion factor from psi to Pa.
Definition at line 81 of file airspeed_ms45xx_i2c.c.
|
static |
Definition at line 140 of file airspeed_ms45xx_i2c.c.
References AirspeedMs45xx::airspeed, AirspeedMs45xx::diff_pressure, ms45xx, and AirspeedMs45xx::temperature.
Referenced by ms45xx_i2c_event(), and ms45xx_i2c_init().
void ms45xx_i2c_event | ( | void | ) |
Definition at line 175 of file airspeed_ms45xx_i2c.c.
References AirspeedMs45xx::airspeed, AirspeedMs45xx::airspeed_scale, i2c_transaction::buf, DefaultChannel, DefaultDevice, AirspeedMs45xx::diff_pressure, I2CTransDone, I2CTransFailed, I2CTransSuccess, Max, ms45xx, ms45xx_downlink(), MS45XX_SENDER_ID, ms45xx_trans, AirspeedMs45xx::pressure_offset, AirspeedMs45xx::pressure_scale, stateSetAirspeed_f(), i2c_transaction::status, AirspeedMs45xx::sync_send, AirspeedMs45xx::temperature, and update_butterworth_2_low_pass().
void ms45xx_i2c_init | ( | void | ) |
Definition at line 147 of file airspeed_ms45xx_i2c.c.
References AirspeedMs45xx::airspeed, AirspeedMs45xx::airspeed_scale, DefaultPeriodic, AirspeedMs45xx::diff_pressure, I2CTransDone, init_butterworth_2_low_pass(), ms45xx, MS45XX_AIRSPEED_SCALE, ms45xx_downlink(), MS45XX_LOWPASS_TAU, MS45XX_PRESSURE_OFFSET, MS45XX_PRESSURE_SCALE, MS45XX_SYNC_SEND, ms45xx_trans, AirspeedMs45xx::pressure_offset, AirspeedMs45xx::pressure_scale, register_periodic_telemetry(), i2c_transaction::status, AirspeedMs45xx::sync_send, and AirspeedMs45xx::temperature.
void ms45xx_i2c_periodic | ( | void | ) |
Definition at line 167 of file airspeed_ms45xx_i2c.c.
References i2c_receive(), I2CTransDone, MS45XX_I2C_ADDR, MS45XX_I2C_DEV, ms45xx_trans, and i2c_transaction::status.
struct AirspeedMs45xx ms45xx |
Definition at line 135 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_downlink(), ms45xx_i2c_event(), and ms45xx_i2c_init().
|
static |
Definition at line 137 of file airspeed_ms45xx_i2c.c.
|
static |
Definition at line 136 of file airspeed_ms45xx_i2c.c.
Referenced by ms45xx_i2c_event(), ms45xx_i2c_init(), and ms45xx_i2c_periodic().