Fertirrega_v6 Scaled to 4096
This commit is contained in:
@@ -194,10 +194,26 @@ extern "C" {
|
||||
#define AD5934_TIME_PER_SWEEP 60 // 60 ms entre o início de cada sweep
|
||||
#define AD5934_TIME_MUX_SETTLING 10 // 10 ms de espera após trocar o MUX
|
||||
|
||||
#define AD5934_BURST_SIZE 7
|
||||
#define AD5934_BURST_SIZE 5
|
||||
#define AD5934_TRIM_COUNT 1
|
||||
#define AD5934_HISTORY_SIZE 8
|
||||
#define AD5934_IIR_ALPHA 0.25f
|
||||
#define AD5934_HISTORY_SIZE 6
|
||||
#define AD5934_IIR_ALPHA 0.4f
|
||||
|
||||
|
||||
#define AD5934_EC_FLOAT_SCALE_MIN 0.0f
|
||||
#define AD5934_EC_FLOAT_SCALE_MAX 15000.0f
|
||||
#define AD5934_EC_OUT_SCALE_MIN 0
|
||||
#define AD5934_EC_OUT_SCALE_MAX 4096
|
||||
|
||||
#define AD5934_REF_FLOAT_SCALE_MIN 1850.0f
|
||||
#define AD5934_REF_FLOAT_SCALE_MAX 2450.0f
|
||||
#define AD5934_REF_OUT_SCALE_MIN 0
|
||||
#define AD5934_REF_OUT_SCALE_MAX 4096
|
||||
|
||||
#define AD5934_RTD_FLOAT_SCALE_MIN 1850.0f
|
||||
#define AD5934_RTD_FLOAT_SCALE_MAX 2450.0f
|
||||
#define AD5934_RTD_OUT_SCALE_MIN 0
|
||||
#define AD5934_RTD_OUT_SCALE_MAX 4096
|
||||
|
||||
|
||||
|
||||
@@ -256,6 +272,7 @@ typedef enum {
|
||||
} AD5934_State_t;
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
float burst[AD5934_BURST_SIZE];
|
||||
uint8_t burst_index;
|
||||
@@ -290,6 +307,79 @@ static const uint8_t ADG715_Channel_Map[AD5934_CH_MAX] = {
|
||||
[AD5934_CH_EC_HIGH_GAIN] = (ADG715_SW3 | ADG715_SW8)
|
||||
};
|
||||
|
||||
static const float AD5934_Scale_Float_Min[AD5934_CH_MAX] = {
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_REF_FLOAT_SCALE_MIN,
|
||||
AD5934_RTD_FLOAT_SCALE_MIN,
|
||||
AD5934_RTD_FLOAT_SCALE_MIN,
|
||||
AD5934_RTD_FLOAT_SCALE_MIN,
|
||||
AD5934_EC_FLOAT_SCALE_MIN,
|
||||
AD5934_EC_FLOAT_SCALE_MIN,
|
||||
AD5934_EC_FLOAT_SCALE_MIN
|
||||
};
|
||||
|
||||
static const float AD5934_Scale_Float_Max[AD5934_CH_MAX] = {
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_REF_FLOAT_SCALE_MAX,
|
||||
AD5934_RTD_FLOAT_SCALE_MAX,
|
||||
AD5934_RTD_FLOAT_SCALE_MAX,
|
||||
AD5934_RTD_FLOAT_SCALE_MAX,
|
||||
AD5934_EC_FLOAT_SCALE_MAX,
|
||||
AD5934_EC_FLOAT_SCALE_MAX,
|
||||
AD5934_EC_FLOAT_SCALE_MAX
|
||||
};
|
||||
|
||||
static const uint16_t AD5934_Scale_Out_Min[AD5934_CH_MAX] = {
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_REF_OUT_SCALE_MIN,
|
||||
AD5934_RTD_OUT_SCALE_MIN,
|
||||
AD5934_RTD_OUT_SCALE_MIN,
|
||||
AD5934_RTD_OUT_SCALE_MIN,
|
||||
AD5934_EC_OUT_SCALE_MIN,
|
||||
AD5934_EC_OUT_SCALE_MIN,
|
||||
AD5934_EC_OUT_SCALE_MIN
|
||||
};
|
||||
|
||||
static const uint16_t AD5934_Scale_Out_Max[AD5934_CH_MAX] = {
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_REF_OUT_SCALE_MAX,
|
||||
AD5934_RTD_OUT_SCALE_MAX,
|
||||
AD5934_RTD_OUT_SCALE_MAX,
|
||||
AD5934_RTD_OUT_SCALE_MAX,
|
||||
AD5934_EC_OUT_SCALE_MAX,
|
||||
AD5934_EC_OUT_SCALE_MAX,
|
||||
AD5934_EC_OUT_SCALE_MAX
|
||||
};
|
||||
|
||||
|
||||
extern int16_t temperature_dut_samples[2][AD5934_TEMP_AVERAGES];
|
||||
extern int16_t temperature_ref_samples[2][AD5934_TEMP_AVERAGES];
|
||||
extern float temperature_display[AD5934_TEMP_AVERAGES];
|
||||
@@ -335,12 +425,16 @@ float AD5934_Get_Ref_Resistance(void);
|
||||
|
||||
float AD5934_GetTemperature(float mag_ref);
|
||||
|
||||
float AD5934_Calculate_Temperature(float mag_ref, float mag_dut);
|
||||
|
||||
float AD5934_GetImpedance(float temperature_dut);
|
||||
|
||||
float AD5934_GetMagnitude(void);
|
||||
|
||||
void AD5934_Wait_For_Data_Valid(void);
|
||||
|
||||
uint16_t AD5934_Compress_To_IntScale(float value, uint8_t scale);
|
||||
|
||||
float AD5934_Round_Float_Precision(float value, uint8_t number_of_decimals);
|
||||
|
||||
float AD5934_Linear_Correction(float raw_value);
|
||||
|
||||
@@ -130,8 +130,8 @@ extern "C" {
|
||||
|
||||
#define ADS1015_BURST_SIZE 5
|
||||
#define ADS1015_TRIM_COUNT 1
|
||||
#define ADS1015_HISTORY_SIZE 8
|
||||
#define ADS1015_IIR_ALPHA 0.3f
|
||||
#define ADS1015_HISTORY_SIZE 6
|
||||
#define ADS1015_IIR_ALPHA 0.4f
|
||||
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ typedef struct {
|
||||
extern ADS1015_filter_t g_ph_filter;
|
||||
extern volatile uint32_t g_ms_counter; // Increment each 1ms Timer
|
||||
|
||||
void ADS1015(ADS1015_I2C* i2c, I2C_HandleTypeDef* hi2c, uint8_t i2cAddress);
|
||||
void ADS1015_Init(void);
|
||||
uint16_t ADSreadADC_SingleEnded(ADS1015_I2C* i2c, uint8_t channel);
|
||||
int16_t ADSreadADC_Differential_0_1(ADS1015_I2C* i2c);
|
||||
int16_t ADSreadADC_Differential_2_3(ADS1015_I2C* i2c);
|
||||
|
||||
Reference in New Issue
Block a user