Fixed issues related to Temperature and EC
This commit is contained in:
@@ -150,6 +150,15 @@ extern "C" {
|
|||||||
#define AD5934_GAIN_FACTOR_1K 1000.0f
|
#define AD5934_GAIN_FACTOR_1K 1000.0f
|
||||||
#define AD5934_GAIN_FACTOR_10K 10000.0f
|
#define AD5934_GAIN_FACTOR_10K 10000.0f
|
||||||
|
|
||||||
|
#define AD5934_EC_IN_SERIES_RESISTOR 100.0f
|
||||||
|
|
||||||
|
#define AD5934_EC_10MS 0.01f // Ref 100R
|
||||||
|
#define AD5934_EC_1MS 0.001f // Ref 1K
|
||||||
|
#define AD5934_EC_0_1MS 0.0001f // Ref 10k
|
||||||
|
|
||||||
|
#define AD5934_DRIFT_PT100 2.12f
|
||||||
|
#define AD5934_DRIFT_PT1000 0.22f
|
||||||
|
|
||||||
#define AD5934_GAIN_FACTOR_1413US 1413.0f
|
#define AD5934_GAIN_FACTOR_1413US 1413.0f
|
||||||
#define AD5934_GAIN_FACTOR_12880US 12880.0f
|
#define AD5934_GAIN_FACTOR_12880US 12880.0f
|
||||||
|
|
||||||
@@ -165,11 +174,19 @@ extern "C" {
|
|||||||
#define AD5934_EC_ALPHA_PER_C 0.02f
|
#define AD5934_EC_ALPHA_PER_C 0.02f
|
||||||
#define AD5934_EC_TEMP_REF_C 25.0f
|
#define AD5934_EC_TEMP_REF_C 25.0f
|
||||||
|
|
||||||
|
#define AD5934_EC_1413US_PT100_DEFAULT 3111 // magnitude
|
||||||
|
#define AD5934_EC_1413US_PT1000_DEFAULT 2970 // magnitude
|
||||||
|
|
||||||
|
|
||||||
//Mux Set to Read...
|
//Mux Set to Read...
|
||||||
#define AD5934_ID_RTD 0
|
#define AD5934_ID_RTD 0
|
||||||
#define AD5934_ID_EC 1
|
#define AD5934_ID_EC 1
|
||||||
#define AD5934_ID_REF 2
|
#define AD5934_ID_REF_100R_LOWGAIN 2
|
||||||
|
#define AD5934_ID_REF_100R_MIDGAIN 3
|
||||||
|
#define AD5934_ID_REF_100R_HIGHGAIN 4
|
||||||
|
#define AD5934_ID_REF_1K_MIDGAIN 5
|
||||||
|
#define AD5934_ID_REF_1K_HIGHGAIN 6
|
||||||
|
#define AD5934_ID_REF_10K_HIGHGAIN 7
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/**************************** Filtering Defines *****************************/
|
/**************************** Filtering Defines *****************************/
|
||||||
@@ -179,7 +196,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define AD5934_BURST_SIZE 1 // Number of Repeated Sweeps on the same channel before change the Mux
|
#define AD5934_BURST_SIZE 1 // Number of Repeated Sweeps on the same channel before change the Mux
|
||||||
#define AD5934_TRIM_COUNT 0
|
#define AD5934_TRIM_COUNT 0
|
||||||
#define AD5934_HISTORY_SIZE 8
|
#define AD5934_HISTORY_SIZE 16
|
||||||
#define AD5934_IIR_ALPHA 0.10f
|
#define AD5934_IIR_ALPHA 0.10f
|
||||||
|
|
||||||
#define AD5934_REF_FLOAT_SCALE_MIN 1850.0f
|
#define AD5934_REF_FLOAT_SCALE_MIN 1850.0f
|
||||||
@@ -195,12 +212,12 @@ extern "C" {
|
|||||||
#define AD5934_RTD_OUT_SCALE_MAX 800
|
#define AD5934_RTD_OUT_SCALE_MAX 800
|
||||||
|
|
||||||
#define AD5934_EC5_FLOAT_SCALE_MIN 0.0f
|
#define AD5934_EC5_FLOAT_SCALE_MIN 0.0f
|
||||||
#define AD5934_EC5_FLOAT_SCALE_MAX 20500.0f
|
#define AD5934_EC5_FLOAT_SCALE_MAX 7000.0f
|
||||||
#define AD5934_EC5_OUT_SCALE_MIN 0
|
#define AD5934_EC5_OUT_SCALE_MIN 0
|
||||||
#define AD5934_EC5_OUT_SCALE_MAX 4095
|
#define AD5934_EC5_OUT_SCALE_MAX 4095
|
||||||
|
|
||||||
#define AD5934_EC10_FLOAT_SCALE_MIN 0.0f
|
#define AD5934_EC10_FLOAT_SCALE_MIN 0.0f
|
||||||
#define AD5934_EC10_FLOAT_SCALE_MAX 15000.0f
|
#define AD5934_EC10_FLOAT_SCALE_MAX 14000.0f
|
||||||
#define AD5934_EC10_OUT_SCALE_MIN 0
|
#define AD5934_EC10_OUT_SCALE_MIN 0
|
||||||
#define AD5934_EC10_OUT_SCALE_MAX 4095
|
#define AD5934_EC10_OUT_SCALE_MAX 4095
|
||||||
|
|
||||||
@@ -378,8 +395,6 @@ static const uint16_t AD5934_Scale_Out_Max[AD5934_CH_MAX] = {
|
|||||||
|
|
||||||
extern I2C_HandleTypeDef hi2c2;
|
extern I2C_HandleTypeDef hi2c2;
|
||||||
|
|
||||||
extern float reference_resistor, temperature_RTD, thermal_compensaded_EC;
|
|
||||||
|
|
||||||
extern volatile AD5934_State_t ad5934_state;
|
extern volatile AD5934_State_t ad5934_state;
|
||||||
extern volatile uint32_t g_ms_counter; // Increment each 1ms Timer
|
extern volatile uint32_t g_ms_counter; // Increment each 1ms Timer
|
||||||
extern volatile uint32_t state_timer;
|
extern volatile uint32_t state_timer;
|
||||||
@@ -391,10 +406,9 @@ extern uint8_t current_ec_mux;
|
|||||||
extern uint8_t current_rtd_mux;
|
extern uint8_t current_rtd_mux;
|
||||||
extern uint8_t current_ref_mux;
|
extern uint8_t current_ref_mux;
|
||||||
|
|
||||||
extern AD5934_filter_t g_rtd_filter, g_ec_filter, g_ref_filter;
|
extern AD5934_filter_t g_rtd_filter, g_ec_filter, g_ref_100R_LowGain_filter, g_ref_100R_MidGain_filter, g_ref_100R_HighGain_filter, g_ref_1K_MidGain_filter, g_ref_1K_HighGain_filter, g_ref_10K_HighGain_filter;
|
||||||
|
|
||||||
extern int16_t rtd_now, ref_now, ec_now;
|
extern uint8_t is_startup;
|
||||||
extern int16_t rtd_now_i, ref_now_i, ec_now_i;
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************************ Functions Declarations *****************************/
|
/************************ Functions Declarations *****************************/
|
||||||
@@ -415,7 +429,7 @@ void AD5934_StopSweep(void);
|
|||||||
|
|
||||||
float AD5934_Get_Ref_Resistance(void);
|
float AD5934_Get_Ref_Resistance(void);
|
||||||
|
|
||||||
float AD5934_Calculate_Temperature(float mag_ref, float mag_dut);
|
float AD5934_Calculate_Temperature(float mag_ref_pt100, float mag_ref_pt1000, float mag_dut);
|
||||||
|
|
||||||
float AD5934_EC_Compensate_Magnitude_To_25C(float mag_dut, float temperature_dut);
|
float AD5934_EC_Compensate_Magnitude_To_25C(float mag_dut, float temperature_dut);
|
||||||
|
|
||||||
@@ -425,6 +439,8 @@ float AD5934_GetMagnitude(void);
|
|||||||
|
|
||||||
float AD5934_GetImpedance(float mag_ref, float mag_dut);
|
float AD5934_GetImpedance(float mag_ref, float mag_dut);
|
||||||
|
|
||||||
|
float AD5934_GetAdmittance(float mag_ref_10mS_MidGain, float mag_ref_1mS_MidGain, float mag_ref_1mS_HighGain, float mag_ref_0_1mS_HighGain, float mag_dut);
|
||||||
|
|
||||||
uint32_t AD5934_Get_Real_Imag_Numbers(void);
|
uint32_t AD5934_Get_Real_Imag_Numbers(void);
|
||||||
|
|
||||||
uint16_t AD5934_Compress_To_IntScale(float value, uint8_t scale);
|
uint16_t AD5934_Compress_To_IntScale(float value, uint8_t scale);
|
||||||
@@ -449,21 +465,19 @@ void AD5934_Process_Sample(AD5934_filter_t *ch, float raw);
|
|||||||
|
|
||||||
void AD5934_RTD_NewSample(float raw);
|
void AD5934_RTD_NewSample(float raw);
|
||||||
|
|
||||||
void AD5934_RTD_Real_NewSample(float raw);
|
|
||||||
|
|
||||||
void AD5934_RTD_Imag_NewSample(float raw);
|
|
||||||
|
|
||||||
void AD5934_EC_NewSample(float raw);
|
void AD5934_EC_NewSample(float raw);
|
||||||
|
|
||||||
void AD5934_EC_Real_NewSample(float raw);
|
void AD5934_Reference_100R_LowGain_NewSample(float raw);
|
||||||
|
|
||||||
void AD5934_EC_Imag_NewSample(float raw);
|
void AD5934_Reference_100R_MidGain_NewSample(float raw);
|
||||||
|
|
||||||
void AD5934_Reference_NewSample(float raw);
|
void AD5934_Reference_100R_HighGain_NewSample(float raw);
|
||||||
|
|
||||||
void AD5934_Reference_Real_NewSample(float raw);
|
void AD5934_Reference_1K_MidGain_NewSample(float raw);
|
||||||
|
|
||||||
void AD5934_Reference_Imag_NewSample(float raw);
|
void AD5934_Reference_1K_HighGain_NewSample(float raw);
|
||||||
|
|
||||||
|
void AD5934_Reference_10K_HighGain_NewSample(float raw);
|
||||||
|
|
||||||
void ADG715_SetRegisterValue(char value);
|
void ADG715_SetRegisterValue(char value);
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ volatile AD5934_State_t ad5934_state = AD5934_IDLE;
|
|||||||
volatile uint32_t state_timer = 0;
|
volatile uint32_t state_timer = 0;
|
||||||
volatile uint32_t g_ms_counter = 0; /* Incrementado a cada 1ms no Timer */
|
volatile uint32_t g_ms_counter = 0; /* Incrementado a cada 1ms no Timer */
|
||||||
|
|
||||||
float reference_resistor = 0, temperature_RTD = 0, thermal_compensaded_EC = 0;
|
|
||||||
|
|
||||||
uint8_t current_mux_channel = 0;
|
uint8_t current_mux_channel = 0;
|
||||||
uint8_t current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // Connection
|
uint8_t current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // Connection
|
||||||
uint8_t current_ec_mux = AD5934_CH_EC_MID_GAIN;
|
uint8_t current_ec_mux = AD5934_CH_EC_MID_GAIN;
|
||||||
@@ -27,13 +25,20 @@ uint8_t sweep_count = 0; /* Conta quantos sweeps foram feitos no canal atual (0
|
|||||||
|
|
||||||
AD5934_filter_t g_rtd_filter = {0};
|
AD5934_filter_t g_rtd_filter = {0};
|
||||||
AD5934_filter_t g_ec_filter = {0};
|
AD5934_filter_t g_ec_filter = {0};
|
||||||
AD5934_filter_t g_ref_filter = {0};
|
AD5934_filter_t g_ref_100R_LowGain_filter = {0};
|
||||||
|
AD5934_filter_t g_ref_100R_MidGain_filter = {0};
|
||||||
|
AD5934_filter_t g_ref_100R_HighGain_filter = {0};
|
||||||
|
AD5934_filter_t g_ref_1K_MidGain_filter = {0};
|
||||||
|
AD5934_filter_t g_ref_1K_HighGain_filter = {0};
|
||||||
|
AD5934_filter_t g_ref_10K_HighGain_filter = {0};
|
||||||
|
|
||||||
int16_t rtd_now, ref_now, ec_now;
|
int16_t rtd_now, ref_now, ec_now;
|
||||||
int16_t rtd_now_i, ref_now_i, ec_now_i;
|
int16_t rtd_now_i, ref_now_i, ec_now_i;
|
||||||
|
|
||||||
uint8_t is_new_channel = 1;
|
uint8_t is_new_channel = 1;
|
||||||
|
|
||||||
|
uint8_t is_startup=1;
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* @brief Set an AD5934 internal register value.
|
* @brief Set an AD5934 internal register value.
|
||||||
*
|
*
|
||||||
@@ -165,7 +170,7 @@ void AD5934_Init(void)
|
|||||||
AD5934_SetRegisterValue(AD5934_NR_INCR_REG_LB, AD5934_STEP_FREQ_0, 2);
|
AD5934_SetRegisterValue(AD5934_NR_INCR_REG_LB, AD5934_STEP_FREQ_0, 2);
|
||||||
|
|
||||||
// Set 128 Settling Time
|
// Set 128 Settling Time
|
||||||
AD5934_SetRegisterValue(AD5934_NR_SETTLE_REG_LB, AD5934_SETTLING_TIME_64, 2);
|
AD5934_SetRegisterValue(AD5934_NR_SETTLE_REG_LB, AD5934_SETTLING_TIME_90, 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,20 +237,24 @@ void AD5934_StopSweep(void)
|
|||||||
*
|
*
|
||||||
* @return Temperature in Celsius.
|
* @return Temperature in Celsius.
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
float AD5934_Calculate_Temperature(float mag_ref, float mag_dut)
|
float AD5934_Calculate_Temperature(float mag_ref_pt100, float mag_ref_pt1000, float mag_dut)
|
||||||
{
|
{
|
||||||
uint8_t ch_ref;
|
uint8_t ch_ref;
|
||||||
float gain_factor, impedance_dut, temperature;
|
float gain_factor, temperature, drift, mag_ref;
|
||||||
|
|
||||||
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) == GPIO_PIN_SET) // OFF = PT1000, ON = PT100, PA7 has internal pull-up and switch connects to GND
|
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) == GPIO_PIN_SET) // OFF = PT1000, ON = PT100, PA7 has internal pull-up and switch connects to GND
|
||||||
{
|
{
|
||||||
ch_ref = AD5934_CH_RTD_LOW_GAIN; //PT100
|
ch_ref = AD5934_CH_RTD_LOW_GAIN; //PT100
|
||||||
gain_factor = AD5934_GAIN_FACTOR_100R;
|
gain_factor = AD5934_GAIN_FACTOR_100R;
|
||||||
|
drift = AD5934_DRIFT_PT100;
|
||||||
|
mag_ref = mag_ref_pt100;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ch_ref = AD5934_CH_RTD_MID_GAIN; //PT1000
|
ch_ref = AD5934_CH_RTD_MID_GAIN; //PT1000
|
||||||
gain_factor = AD5934_GAIN_FACTOR_1K;
|
gain_factor = AD5934_GAIN_FACTOR_1K;
|
||||||
|
drift = AD5934_DRIFT_PT1000;
|
||||||
|
mag_ref = mag_ref_pt1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
float ratio_mag = mag_ref / mag_dut;
|
float ratio_mag = mag_ref / mag_dut;
|
||||||
@@ -254,7 +263,8 @@ float AD5934_Calculate_Temperature(float mag_ref, float mag_dut)
|
|||||||
/*if(ch_ref==AD5934_CH_REF100R_LOW_GAIN) // only for PT100
|
/*if(ch_ref==AD5934_CH_REF100R_LOW_GAIN) // only for PT100
|
||||||
impedance_dut = AD5934_Linear_Correction(gain_factor * ratio_mag);
|
impedance_dut = AD5934_Linear_Correction(gain_factor * ratio_mag);
|
||||||
else*/
|
else*/
|
||||||
impedance_dut = gain_factor * ratio_mag;
|
|
||||||
|
float impedance_dut = gain_factor * ratio_mag;
|
||||||
|
|
||||||
// Calculate impedance ratio with the Reference Resistor
|
// Calculate impedance ratio with the Reference Resistor
|
||||||
float ratio = impedance_dut / gain_factor;
|
float ratio = impedance_dut / gain_factor;
|
||||||
@@ -273,7 +283,7 @@ float AD5934_Calculate_Temperature(float mag_ref, float mag_dut)
|
|||||||
temperature = (ratio - 1.0f) / AD5934_RTD_ALPHA;
|
temperature = (ratio - 1.0f) / AD5934_RTD_ALPHA;
|
||||||
}
|
}
|
||||||
|
|
||||||
return AD5934_Round_Float_Precision(temperature,1);
|
return AD5934_Round_Float_Precision((temperature-drift),2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,7 +302,7 @@ float AD5934_EC_Compensate_Magnitude_To_25C(float mag_dut, float temperature_dut
|
|||||||
if (factor < 0.1f)
|
if (factor < 0.1f)
|
||||||
factor = 0.1f;
|
factor = 0.1f;
|
||||||
|
|
||||||
return (mag_dut / factor);
|
return (AD5934_Round_Float_Precision((mag_dut / (factor)),2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -393,7 +403,45 @@ float AD5934_GetImpedance(float mag_ref, float mag_dut)
|
|||||||
return impedance_dut;
|
return impedance_dut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* @brief Get Real and Imaginary values and calculate Magnitude.
|
||||||
|
*
|
||||||
|
* @param: none
|
||||||
|
*
|
||||||
|
* @return Magnitude (float).
|
||||||
|
******************************************************************************/
|
||||||
|
float AD5934_GetAdmittance(float mag_ref_10mS_MidGain, float mag_ref_1mS_MidGain, float mag_ref_1mS_HighGain, float mag_ref_0_1mS_HighGain, float mag_dut)
|
||||||
|
{
|
||||||
|
uint8_t ch_ref;
|
||||||
|
float mag_ref_Min, mag_ref_Max, res_ref_Min, res_ref_Max;
|
||||||
|
|
||||||
|
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_6) == GPIO_PIN_SET) // Hardware Setup: Gain Selection (PA6)
|
||||||
|
{
|
||||||
|
ch_ref = AD5934_CH_EC_HIGH_GAIN; // 5mS
|
||||||
|
mag_ref_Min = mag_ref_0_1mS_HighGain; // Ref 10k
|
||||||
|
mag_ref_Max = mag_ref_1mS_HighGain; // Ref 1K
|
||||||
|
res_ref_Min = AD5934_EC_0_1MS;
|
||||||
|
res_ref_Max = AD5934_EC_1MS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ch_ref = AD5934_CH_EC_MID_GAIN; //10mS
|
||||||
|
mag_ref_Min = mag_ref_1mS_MidGain; // Ref 1K
|
||||||
|
mag_ref_Max = mag_ref_10mS_MidGain; // Ref 100R
|
||||||
|
res_ref_Min = AD5934_EC_1MS;
|
||||||
|
res_ref_Max = AD5934_EC_10MS;
|
||||||
|
}
|
||||||
|
|
||||||
|
float gain_factor = (res_ref_Max - res_ref_Min)/(mag_ref_Max - mag_ref_Min);
|
||||||
|
|
||||||
|
float offset = mag_ref_Max - (res_ref_Max/gain_factor);
|
||||||
|
|
||||||
|
float admittance = (mag_dut - offset) * gain_factor;
|
||||||
|
|
||||||
|
float y_cell = admittance / (1 - (AD5934_EC_IN_SERIES_RESISTOR * admittance)); // Resistor in series with EC is 100 Ohms on PCB
|
||||||
|
|
||||||
|
return (y_cell*1000000); // in uS
|
||||||
|
}
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* @brief Get Real and Imag values from Magnitude.
|
* @brief Get Real and Imag values from Magnitude.
|
||||||
*
|
*
|
||||||
@@ -531,17 +579,11 @@ void AD5934_Process_System(void)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case AD5934_WAIT_MUX:
|
case AD5934_WAIT_MUX:
|
||||||
//if ((g_ms_counter - state_timer) >= AD5934_SYNC_MUX_SETTLING) // Wait until AD715 Mux switch stability
|
|
||||||
//{
|
|
||||||
HAL_Delay(15);
|
HAL_Delay(15);
|
||||||
ad5934_state = AD5934_START_CONVERSION;
|
ad5934_state = AD5934_START_CONVERSION;
|
||||||
//}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AD5934_START_CONVERSION:
|
case AD5934_START_CONVERSION:
|
||||||
|
|
||||||
//state_timer = g_ms_counter; // Starts to count the Burst period for the sweeps
|
|
||||||
|
|
||||||
/* DECISÃO DE COMANDO: Novo canal vs Leituras sucessivas */
|
/* DECISÃO DE COMANDO: Novo canal vs Leituras sucessivas */
|
||||||
if (is_new_channel) // Decision: Channel Switched or Next Sample in the Burst ?
|
if (is_new_channel) // Decision: Channel Switched or Next Sample in the Burst ?
|
||||||
{
|
{
|
||||||
@@ -554,7 +596,6 @@ void AD5934_Process_System(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ad5934_state = AD5934_WAIT_CONVERSION; // Next State
|
ad5934_state = AD5934_WAIT_CONVERSION; // Next State
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AD5934_WAIT_CONVERSION:
|
case AD5934_WAIT_CONVERSION:
|
||||||
@@ -570,20 +611,27 @@ void AD5934_Process_System(void)
|
|||||||
{
|
{
|
||||||
case AD5934_ID_RTD:
|
case AD5934_ID_RTD:
|
||||||
AD5934_RTD_NewSample(mag_float);
|
AD5934_RTD_NewSample(mag_float);
|
||||||
rtd_now = mag_float;
|
|
||||||
rtd_now_i = mag_imag;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AD5934_ID_EC:
|
case AD5934_ID_EC:
|
||||||
AD5934_EC_NewSample(mag_float);
|
AD5934_EC_NewSample(mag_float);
|
||||||
ec_now = mag_real;
|
|
||||||
ec_now_i = mag_imag;
|
|
||||||
break;
|
break;
|
||||||
|
case AD5934_ID_REF_100R_LOWGAIN:
|
||||||
case AD5934_ID_REF:
|
AD5934_Reference_100R_LowGain_NewSample(mag_float);
|
||||||
AD5934_Reference_NewSample(mag_float);
|
break;
|
||||||
ref_now = mag_float;
|
case AD5934_ID_REF_100R_MIDGAIN:
|
||||||
ref_now_i = mag_imag;
|
AD5934_Reference_100R_MidGain_NewSample(mag_float);
|
||||||
|
break;
|
||||||
|
case AD5934_ID_REF_100R_HIGHGAIN:
|
||||||
|
AD5934_Reference_100R_HighGain_NewSample(mag_float);
|
||||||
|
break;
|
||||||
|
case AD5934_ID_REF_1K_MIDGAIN:
|
||||||
|
AD5934_Reference_1K_MidGain_NewSample(mag_float);
|
||||||
|
break;
|
||||||
|
case AD5934_ID_REF_1K_HIGHGAIN:
|
||||||
|
AD5934_Reference_1K_HighGain_NewSample(mag_float);
|
||||||
|
break;
|
||||||
|
case AD5934_ID_REF_10K_HIGHGAIN:
|
||||||
|
AD5934_Reference_10K_HighGain_NewSample(mag_float);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(sweep_count<(AD5934_BURST_SIZE-1))
|
if(sweep_count<(AD5934_BURST_SIZE-1))
|
||||||
@@ -602,7 +650,7 @@ void AD5934_Process_System(void)
|
|||||||
|
|
||||||
case AD5934_SWITCH_MUX:
|
case AD5934_SWITCH_MUX:
|
||||||
AD5934_StopSweep(); // Put AD5934 in Standby
|
AD5934_StopSweep(); // Put AD5934 in Standby
|
||||||
current_mux_channel = (uint8_t)((current_mux_channel + 1) % 3); // Pointer to the next channel (Circular Buffer 0 to 2)
|
current_mux_channel = (uint8_t)((current_mux_channel + 1) % 8); // Pointer to the next channel (Circular Buffer 0 to 7)
|
||||||
switch (current_mux_channel)
|
switch (current_mux_channel)
|
||||||
{
|
{
|
||||||
case AD5934_ID_RTD:
|
case AD5934_ID_RTD:
|
||||||
@@ -619,19 +667,30 @@ void AD5934_Process_System(void)
|
|||||||
current_ec_mux = current_hw_mux_connection = AD5934_CH_EC_MID_GAIN;
|
current_ec_mux = current_hw_mux_connection = AD5934_CH_EC_MID_GAIN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AD5934_ID_REF:
|
case AD5934_ID_REF_100R_LOWGAIN:
|
||||||
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) == GPIO_PIN_SET) // OFF = PT1000, ON = PT100, PA7 has internal pull-up and switch connects to GND
|
|
||||||
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // 100 Ohms Reference Resistor
|
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // 100 Ohms Reference Resistor
|
||||||
else
|
break;
|
||||||
|
case AD5934_ID_REF_100R_MIDGAIN:
|
||||||
|
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_MID_GAIN; // 100 Ohms Reference Resistor
|
||||||
|
break;
|
||||||
|
case AD5934_ID_REF_100R_HIGHGAIN:
|
||||||
|
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_HIGH_GAIN; // 100 Ohms Reference Resistor
|
||||||
|
break;
|
||||||
|
case AD5934_ID_REF_1K_MIDGAIN:
|
||||||
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF1K_MID_GAIN; // 1K Reference Resistor
|
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF1K_MID_GAIN; // 1K Reference Resistor
|
||||||
break;
|
break;
|
||||||
|
case AD5934_ID_REF_1K_HIGHGAIN:
|
||||||
|
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF1K_HIGH_GAIN; // 1K Reference Resistor
|
||||||
|
break;
|
||||||
|
case AD5934_ID_REF_10K_HIGHGAIN:
|
||||||
|
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF10K_HIGH_GAIN; // 1K Reference Resistor
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
ADG715_SetChannels(current_hw_mux_connection); // Change the analog mux
|
ADG715_SetChannels(current_hw_mux_connection); // Change the analog mux
|
||||||
HAL_Delay(12);
|
HAL_Delay(12);
|
||||||
is_new_channel = 1; // Channel Switched
|
is_new_channel = 1; // Channel Switched
|
||||||
//state_timer = g_ms_counter; // Reload timer to wait for stability
|
ad5934_state = AD5934_START_CONVERSION; // Next State
|
||||||
//ad5934_state = AD5934_WAIT_MUX; // Next State
|
|
||||||
ad5934_state = AD5934_START_CONVERSION;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -738,7 +797,7 @@ void AD5934_Process_Sample(AD5934_filter_t *ch, float raw)
|
|||||||
/* Final output: combines the IIR state (fast response to real drift)
|
/* Final output: combines the IIR state (fast response to real drift)
|
||||||
* with the window average (more stable, slower response). Adjust
|
* with the window average (more stable, slower response). Adjust
|
||||||
* the weighting per channel if needed. */
|
* the weighting per channel if needed. */
|
||||||
ch->filtered_value = 0.65f * ch->iir_state + 0.35f * window_average;
|
ch->filtered_value = 0.9f * ch->iir_state + 0.1f * window_average;
|
||||||
//ch->filtered_value = window_average;
|
//ch->filtered_value = window_average;
|
||||||
ch->value_valid = 1;
|
ch->value_valid = 1;
|
||||||
}
|
}
|
||||||
@@ -790,12 +849,45 @@ void AD5934_EC_NewSample(float raw)
|
|||||||
|
|
||||||
/* Call this every time a sweep completes with the mux on the on-board
|
/* Call this every time a sweep completes with the mux on the on-board
|
||||||
* precision reference resistor channel */
|
* precision reference resistor channel */
|
||||||
void AD5934_Reference_NewSample(float raw)
|
void AD5934_Reference_100R_LowGain_NewSample(float raw)
|
||||||
{
|
{
|
||||||
AD5934_Process_Sample(&g_ref_filter, raw);
|
AD5934_Process_Sample(&g_ref_100R_LowGain_filter, raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Call this every time a sweep completes with the mux on the on-board
|
||||||
|
* precision reference resistor channel */
|
||||||
|
void AD5934_Reference_100R_MidGain_NewSample(float raw)
|
||||||
|
{
|
||||||
|
AD5934_Process_Sample(&g_ref_100R_MidGain_filter, raw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call this every time a sweep completes with the mux on the on-board
|
||||||
|
* precision reference resistor channel */
|
||||||
|
void AD5934_Reference_100R_HighGain_NewSample(float raw)
|
||||||
|
{
|
||||||
|
AD5934_Process_Sample(&g_ref_100R_HighGain_filter, raw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call this every time a sweep completes with the mux on the on-board
|
||||||
|
* precision reference resistor channel */
|
||||||
|
void AD5934_Reference_1K_MidGain_NewSample(float raw)
|
||||||
|
{
|
||||||
|
AD5934_Process_Sample(&g_ref_1K_MidGain_filter, raw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call this every time a sweep completes with the mux on the on-board
|
||||||
|
* precision reference resistor channel */
|
||||||
|
void AD5934_Reference_1K_HighGain_NewSample(float raw)
|
||||||
|
{
|
||||||
|
AD5934_Process_Sample(&g_ref_1K_HighGain_filter, raw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Call this every time a sweep completes with the mux on the on-board
|
||||||
|
* precision reference resistor channel */
|
||||||
|
void AD5934_Reference_10K_HighGain_NewSample(float raw)
|
||||||
|
{
|
||||||
|
AD5934_Process_Sample(&g_ref_10K_HighGain_filter, raw);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* ADG715
|
* ADG715
|
||||||
|
|||||||
@@ -90,9 +90,10 @@ int main(void)
|
|||||||
uint32_t previous_millis_red = 0;
|
uint32_t previous_millis_red = 0;
|
||||||
uint32_t current_millis;
|
uint32_t current_millis;
|
||||||
|
|
||||||
float ref_final;
|
float reference_resistor_100R = 0, reference_resistor_1K = 0, temperature_RTD = 0, thermal_compensaded_EC = 0;
|
||||||
|
|
||||||
float mag_reference, mag_rtd, mag_ec;
|
|
||||||
|
float mag_rtd_reference = 0, mag_ec_reference = 0, mag_rtd = 0, mag_ec = 0;
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
@@ -125,9 +126,6 @@ int main(void)
|
|||||||
|
|
||||||
HAL_TIM_Base_Start_IT(&htim3);
|
HAL_TIM_Base_Start_IT(&htim3);
|
||||||
|
|
||||||
//AD5934_MovingAvg_Init (&g_rtd_filter);
|
|
||||||
//AD5934_MovingAvg_Init (&g_ref_filter);
|
|
||||||
//AD5934_MovingAvg_Init (&g_ec_filter);
|
|
||||||
|
|
||||||
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET); // LED Green Off
|
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET); // LED Green Off
|
||||||
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET); // LED Red Off
|
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET); // LED Red Off
|
||||||
@@ -143,7 +141,7 @@ int main(void)
|
|||||||
|
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
/* USER CODE BEGIN WHILE */
|
/* USER CODE BEGIN WHILE */
|
||||||
/*
|
|
||||||
while(averages<20)
|
while(averages<20)
|
||||||
{
|
{
|
||||||
AD5934_Process_System();
|
AD5934_Process_System();
|
||||||
@@ -151,28 +149,15 @@ int main(void)
|
|||||||
|
|
||||||
current_millis = g_ms_counter;
|
current_millis = g_ms_counter;
|
||||||
|
|
||||||
if((current_millis % 20) == 0) // Send data each 20ms
|
if((current_millis % 100) == 0) // Send data each 40ms
|
||||||
{
|
{
|
||||||
if (g_ref_imag_filter.value_valid) // Reference Resistor on Board: 100 Ohms or 1000 Ohms
|
|
||||||
{
|
|
||||||
//reference_resistor = g_ref_filter.filtered_value;
|
|
||||||
reference_resistor = sqrtf((g_ref_real_filter.filtered_value * g_ref_real_filter.filtered_value)+(g_ref_imag_filter.filtered_value * g_ref_imag_filter.filtered_value));
|
|
||||||
//reference_resistor = ref_now;
|
|
||||||
//uint16_t reference_final = AD5934_REF_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_ref_filter.filtered_value, current_ref_mux);
|
|
||||||
|
|
||||||
averages++;
|
averages++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
*/
|
|
||||||
digital_outputs_toggle(0);
|
digital_outputs_toggle(0);
|
||||||
digital_outputs_toggle(1);
|
|
||||||
digital_outputs_toggle(2);
|
|
||||||
digital_outputs_toggle(3);
|
|
||||||
digital_outputs_toggle(4);
|
|
||||||
digital_outputs_toggle(5);
|
|
||||||
digital_outputs_toggle(6);
|
|
||||||
digital_outputs_toggle(7);
|
|
||||||
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
@@ -181,88 +166,38 @@ int main(void)
|
|||||||
AD5934_Process_System();
|
AD5934_Process_System();
|
||||||
ADS1015_Process_System();
|
ADS1015_Process_System();
|
||||||
|
|
||||||
|
|
||||||
current_millis = g_ms_counter;
|
current_millis = g_ms_counter;
|
||||||
|
|
||||||
if((current_millis % 500) == 0) // Send data each 100ms
|
if((current_millis % 500) == 0) // Send data each 100ms
|
||||||
{
|
{
|
||||||
|
|
||||||
//if (g_ref_filter.value_valid) // Reference Resistor on Board: 100 Ohms or 1000 Ohms
|
|
||||||
//{
|
|
||||||
mag_reference = g_ref_filter.filtered_value;
|
|
||||||
//mag_reference = sqrtf(((float)ref_now * (float)ref_now) + ((float)ref_now_i * (float)ref_now_i));
|
|
||||||
//mag_reference = sqrtf((g_ref_real_filter.average * g_ref_real_filter.average)+(g_ref_imag_filter.average * g_ref_imag_filter.average));
|
|
||||||
//mag_reference = (float)ref_now;
|
|
||||||
//reference_resistor = g_ref_filter.filtered_value;
|
|
||||||
//uint16_t reference_final = AD5934_REF_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_ref_filter.filtered_value, current_ref_mux);
|
|
||||||
|
|
||||||
//intToStr(reference_final, tempString);
|
if (g_rtd_filter.value_valid) // PT100 or PT1000 in °C
|
||||||
//ref_final = g_ref_filter.filtered_value;
|
|
||||||
FloatToString(tempString, mag_reference);
|
|
||||||
//Convert2Hex(ref_now, tempString);
|
|
||||||
//intToStr(ref_now, tempString);
|
|
||||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
|
||||||
//intToStr(ref_now_i, tempString);
|
|
||||||
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
|
||||||
rs485_send_broadcast(&newline, 1);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (g_rtd_filter.value_valid) // PT100 or PT1000 in °C
|
|
||||||
//{
|
|
||||||
//mag_rtd = (float)rtd_now;
|
|
||||||
mag_rtd = g_rtd_filter.filtered_value;
|
|
||||||
//mag_rtd = sqrtf((g_rtd_real_filter.average * g_rtd_real_filter.average)+(g_rtd_imag_filter.average * g_rtd_imag_filter.average));
|
|
||||||
//mag_rtd = sqrtf(((float)rtd_now * (float)rtd_now) + ((float)rtd_now_i * (float)rtd_now_i));
|
|
||||||
//temperature_RTD = AD5934_Calculate_Temperature(mag_reference, mag_rtd);
|
|
||||||
temperature_RTD = AD5934_Calculate_Temperature(mag_reference,mag_rtd);// AD5934_GetImpedance(mag_reference,mag_rtd);//
|
|
||||||
//uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux);
|
|
||||||
//uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
|
|
||||||
//intToStr(rtd_final, tempString);
|
|
||||||
//float rtd_final = g_rtd_filter.filtered_value; //g_rtd_filter.filtered_value;
|
|
||||||
FloatToString(tempString, temperature_RTD);
|
|
||||||
//Convert2Hex(rtd_now, tempString);
|
|
||||||
//intToStr(rtd_now, tempString);
|
|
||||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
|
||||||
//Convert2Hex(rtd_now_i, tempString);
|
|
||||||
//intToStr(rtd_now_i, tempString);
|
|
||||||
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
|
||||||
rs485_send_broadcast(&newline, 1);
|
|
||||||
|
|
||||||
//}
|
|
||||||
/*if (g_rtd_imag_filter.value_valid) // PT100 or PT1000 in °C
|
|
||||||
{
|
{
|
||||||
|
temperature_RTD = AD5934_Calculate_Temperature(g_ref_100R_LowGain_filter.filtered_value, g_ref_1K_MidGain_filter.filtered_value, g_rtd_filter.filtered_value);// AD5934_GetImpedance(mag_reference,mag_rtd);//
|
||||||
//float mag_rtd = sqrtf((g_rtd_real_filter.filtered_value * g_rtd_real_filter.filtered_value)+(g_rtd_imag_filter.filtered_value * g_rtd_imag_filter.filtered_value));
|
|
||||||
temperature_RTD = AD5934_Calculate_Temperature(reference_resistor, mag_rtd);
|
|
||||||
//uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux);
|
//uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux);
|
||||||
//uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
|
uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
|
||||||
//intToStr(rtd_final, tempString);
|
intToStr(rtd_final, tempString);
|
||||||
float rtd_final = temperature_RTD; //g_rtd_filter.filtered_value;
|
//FloatToString(tempString, temperature_RTD);
|
||||||
FloatToString(tempString, rtd_final);
|
|
||||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||||
rs485_send_broadcast(&newline, 1);
|
rs485_send_broadcast(&newline, 1);
|
||||||
}*/
|
|
||||||
|
|
||||||
//if (g_ec_filter.value_valid) // EC
|
}
|
||||||
//{
|
if (g_ec_filter.value_valid) // EC
|
||||||
//mag_ec = sqrtf((g_ec_real_filter.filtered_value * g_ec_real_filter.filtered_value)+(g_ec_imag_filter.filtered_value * g_ec_imag_filter.filtered_value));
|
{
|
||||||
mag_ec = sqrtf(((float)ec_now * (float)ec_now) + ((float)ec_now_i * (float)ec_now_i));
|
mag_ec = AD5934_GetAdmittance(g_ref_100R_MidGain_filter.filtered_value, g_ref_1K_MidGain_filter.filtered_value, g_ref_1K_HighGain_filter.filtered_value, g_ref_10K_HighGain_filter.filtered_value, g_ec_filter.filtered_value);
|
||||||
thermal_compensaded_EC = AD5934_EC_Compensate_Magnitude_To_25C(mag_ec, temperature_RTD);
|
thermal_compensaded_EC = AD5934_EC_Compensate_Magnitude_To_25C(mag_ec, temperature_RTD);
|
||||||
//uint16_t ec_final = AD5934_Compress_To_IntScale(thermal_compensaded_EC, current_ec_mux);
|
uint16_t ec_final = AD5934_Compress_To_IntScale(mag_ec, current_ec_mux);
|
||||||
|
intToStr(ec_final, tempString);
|
||||||
//intToStr(ec_now, tempString);
|
//FloatToString(tempString, thermal_compensaded_EC);
|
||||||
// float ec_final = g_ec_filter.filtered_value;
|
|
||||||
FloatToString(tempString, mag_ec);
|
|
||||||
//Convert2Hex((ec_now+0x80008000), tempString);
|
|
||||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||||
//intToStr(ec_now_i, tempString);
|
|
||||||
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
|
||||||
rs485_send_broadcast(&newline, 1);
|
rs485_send_broadcast(&newline, 1);
|
||||||
//}
|
}
|
||||||
|
|
||||||
if (g_ph_filter.value_valid) // pH
|
if (g_ph_filter.value_valid) // pH
|
||||||
{
|
{
|
||||||
uint16_t ph_final = ADS1015_Compress_To_IntScale(g_ph_filter.filtered_value);
|
uint16_t ph_final = ADS1015_Compress_To_IntScale(g_ph_filter.filtered_value);
|
||||||
|
|
||||||
intToStr(ph_final, tempString);
|
intToStr(ph_final, tempString);
|
||||||
//float ph_final = g_ph_filter.filtered_value;
|
//float ph_final = g_ph_filter.filtered_value;
|
||||||
//FloatToString(tempString, ph_final);
|
//FloatToString(tempString, ph_final);
|
||||||
@@ -275,6 +210,7 @@ int main(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Piscar LED verde em PB4 a cada 1 segundo
|
// Piscar LED verde em PB4 a cada 1 segundo
|
||||||
if ((current_millis - previous_millis_green) >= 1000)
|
if ((current_millis - previous_millis_green) >= 1000)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,30 +1,36 @@
|
|||||||
../Core/Src/ad5934_driver.c:48:6:AD5934_SetRegisterValue 2
|
../Core/Src/ad5934_driver.c:53:6:AD5934_SetRegisterValue 2
|
||||||
../Core/Src/ad5934_driver.c:76:10:AD5934_GetRegisterValue 3
|
../Core/Src/ad5934_driver.c:81:10:AD5934_GetRegisterValue 3
|
||||||
../Core/Src/ad5934_driver.c:110:10:AD5934_ReadRegister 3
|
../Core/Src/ad5934_driver.c:115:10:AD5934_ReadRegister 3
|
||||||
../Core/Src/ad5934_driver.c:148:6:AD5934_Init 1
|
../Core/Src/ad5934_driver.c:153:6:AD5934_Init 1
|
||||||
../Core/Src/ad5934_driver.c:179:6:AD5934_RestartSweep 1
|
../Core/Src/ad5934_driver.c:184:6:AD5934_RestartSweep 1
|
||||||
../Core/Src/ad5934_driver.c:202:6:AD5934_Repeat_Sweep 1
|
../Core/Src/ad5934_driver.c:207:6:AD5934_Repeat_Sweep 1
|
||||||
../Core/Src/ad5934_driver.c:215:6:AD5934_StopSweep 1
|
../Core/Src/ad5934_driver.c:220:6:AD5934_StopSweep 1
|
||||||
../Core/Src/ad5934_driver.c:235:7:AD5934_Calculate_Temperature 4
|
../Core/Src/ad5934_driver.c:240:7:AD5934_Calculate_Temperature 4
|
||||||
../Core/Src/ad5934_driver.c:288:7:AD5934_EC_Compensate_Magnitude_To_25C 2
|
../Core/Src/ad5934_driver.c:298:7:AD5934_EC_Compensate_Magnitude_To_25C 2
|
||||||
../Core/Src/ad5934_driver.c:303:7:AD5934_EC_Calibrate_Temperature 5
|
../Core/Src/ad5934_driver.c:313:7:AD5934_EC_Calibrate_Temperature 5
|
||||||
../Core/Src/ad5934_driver.c:349:7:AD5934_GetMagnitude 1
|
../Core/Src/ad5934_driver.c:359:7:AD5934_GetMagnitude 1
|
||||||
../Core/Src/ad5934_driver.c:373:7:AD5934_GetImpedance 2
|
../Core/Src/ad5934_driver.c:383:7:AD5934_GetImpedance 2
|
||||||
../Core/Src/ad5934_driver.c:404:10:AD5934_Get_Real_Imag_Numbers 1
|
../Core/Src/ad5934_driver.c:413:7:AD5934_GetAdmittance 2
|
||||||
../Core/Src/ad5934_driver.c:423:10:AD5934_Compress_To_IntScale 5
|
../Core/Src/ad5934_driver.c:452:10:AD5934_Get_Real_Imag_Numbers 1
|
||||||
../Core/Src/ad5934_driver.c:456:7:AD5934_Round_Float_Precision 2
|
../Core/Src/ad5934_driver.c:471:10:AD5934_Compress_To_IntScale 5
|
||||||
../Core/Src/ad5934_driver.c:481:7:AD5934_Linear_Correction 1
|
../Core/Src/ad5934_driver.c:504:7:AD5934_Round_Float_Precision 2
|
||||||
../Core/Src/ad5934_driver.c:500:7:AD5934_Calibrate 1
|
../Core/Src/ad5934_driver.c:529:7:AD5934_Linear_Correction 1
|
||||||
../Core/Src/ad5934_driver.c:522:6:AD5934_Process_System 19
|
../Core/Src/ad5934_driver.c:548:7:AD5934_Calibrate 1
|
||||||
../Core/Src/ad5934_driver.c:644:6:AD5934_Sort_Array 4
|
../Core/Src/ad5934_driver.c:570:6:AD5934_Process_System 26
|
||||||
../Core/Src/ad5934_driver.c:666:7:AD5934_Trimmed_Mean 3
|
../Core/Src/ad5934_driver.c:703:6:AD5934_Sort_Array 4
|
||||||
../Core/Src/ad5934_driver.c:692:7:AD5934_History_Average 2
|
../Core/Src/ad5934_driver.c:725:7:AD5934_Trimmed_Mean 3
|
||||||
../Core/Src/ad5934_driver.c:706:6:AD5934_Process_Sample 4
|
../Core/Src/ad5934_driver.c:751:7:AD5934_History_Average 2
|
||||||
../Core/Src/ad5934_driver.c:746:6:AD5934_MovingAvg_Init 2
|
../Core/Src/ad5934_driver.c:765:6:AD5934_Process_Sample 4
|
||||||
../Core/Src/ad5934_driver.c:757:6:AD5934_MovingAvg_Process 3
|
../Core/Src/ad5934_driver.c:805:6:AD5934_MovingAvg_Init 2
|
||||||
../Core/Src/ad5934_driver.c:777:6:AD5934_RTD_NewSample 1
|
../Core/Src/ad5934_driver.c:816:6:AD5934_MovingAvg_Process 3
|
||||||
../Core/Src/ad5934_driver.c:785:6:AD5934_EC_NewSample 1
|
../Core/Src/ad5934_driver.c:836:6:AD5934_RTD_NewSample 1
|
||||||
../Core/Src/ad5934_driver.c:793:6:AD5934_Reference_NewSample 1
|
../Core/Src/ad5934_driver.c:844:6:AD5934_EC_NewSample 1
|
||||||
../Core/Src/ad5934_driver.c:810:6:ADG715_SetRegisterValue 1
|
../Core/Src/ad5934_driver.c:852:6:AD5934_Reference_100R_LowGain_NewSample 1
|
||||||
../Core/Src/ad5934_driver.c:828:6:ADG715_ResetChannels 1
|
../Core/Src/ad5934_driver.c:859:6:AD5934_Reference_100R_MidGain_NewSample 1
|
||||||
../Core/Src/ad5934_driver.c:840:6:ADG715_SetChannels 2
|
../Core/Src/ad5934_driver.c:866:6:AD5934_Reference_100R_HighGain_NewSample 1
|
||||||
|
../Core/Src/ad5934_driver.c:873:6:AD5934_Reference_1K_MidGain_NewSample 1
|
||||||
|
../Core/Src/ad5934_driver.c:880:6:AD5934_Reference_1K_HighGain_NewSample 1
|
||||||
|
../Core/Src/ad5934_driver.c:887:6:AD5934_Reference_10K_HighGain_NewSample 1
|
||||||
|
../Core/Src/ad5934_driver.c:902:6:ADG715_SetRegisterValue 1
|
||||||
|
../Core/Src/ad5934_driver.c:920:6:ADG715_ResetChannels 1
|
||||||
|
../Core/Src/ad5934_driver.c:932:6:ADG715_SetChannels 2
|
||||||
|
|||||||
Binary file not shown.
@@ -1,30 +1,36 @@
|
|||||||
../Core/Src/ad5934_driver.c:48:6:AD5934_SetRegisterValue 32 static
|
../Core/Src/ad5934_driver.c:53:6:AD5934_SetRegisterValue 32 static
|
||||||
../Core/Src/ad5934_driver.c:76:10:AD5934_GetRegisterValue 40 static
|
../Core/Src/ad5934_driver.c:81:10:AD5934_GetRegisterValue 40 static
|
||||||
../Core/Src/ad5934_driver.c:110:10:AD5934_ReadRegister 48 static
|
../Core/Src/ad5934_driver.c:115:10:AD5934_ReadRegister 48 static
|
||||||
../Core/Src/ad5934_driver.c:148:6:AD5934_Init 8 static
|
../Core/Src/ad5934_driver.c:153:6:AD5934_Init 8 static
|
||||||
../Core/Src/ad5934_driver.c:179:6:AD5934_RestartSweep 8 static
|
../Core/Src/ad5934_driver.c:184:6:AD5934_RestartSweep 8 static
|
||||||
../Core/Src/ad5934_driver.c:202:6:AD5934_Repeat_Sweep 8 static
|
../Core/Src/ad5934_driver.c:207:6:AD5934_Repeat_Sweep 8 static
|
||||||
../Core/Src/ad5934_driver.c:215:6:AD5934_StopSweep 8 static
|
../Core/Src/ad5934_driver.c:220:6:AD5934_StopSweep 8 static
|
||||||
../Core/Src/ad5934_driver.c:235:7:AD5934_Calculate_Temperature 48 static
|
../Core/Src/ad5934_driver.c:240:7:AD5934_Calculate_Temperature 64 static
|
||||||
../Core/Src/ad5934_driver.c:288:7:AD5934_EC_Compensate_Magnitude_To_25C 24 static
|
../Core/Src/ad5934_driver.c:298:7:AD5934_EC_Compensate_Magnitude_To_25C 24 static
|
||||||
../Core/Src/ad5934_driver.c:303:7:AD5934_EC_Calibrate_Temperature 152 static
|
../Core/Src/ad5934_driver.c:313:7:AD5934_EC_Calibrate_Temperature 152 static
|
||||||
../Core/Src/ad5934_driver.c:349:7:AD5934_GetMagnitude 24 static
|
../Core/Src/ad5934_driver.c:359:7:AD5934_GetMagnitude 24 static
|
||||||
../Core/Src/ad5934_driver.c:373:7:AD5934_GetImpedance 32 static
|
../Core/Src/ad5934_driver.c:383:7:AD5934_GetImpedance 32 static
|
||||||
../Core/Src/ad5934_driver.c:404:10:AD5934_Get_Real_Imag_Numbers 16 static
|
../Core/Src/ad5934_driver.c:413:7:AD5934_GetAdmittance 72 static
|
||||||
../Core/Src/ad5934_driver.c:423:10:AD5934_Compress_To_IntScale 32 static
|
../Core/Src/ad5934_driver.c:452:10:AD5934_Get_Real_Imag_Numbers 16 static
|
||||||
../Core/Src/ad5934_driver.c:456:7:AD5934_Round_Float_Precision 24 static
|
../Core/Src/ad5934_driver.c:471:10:AD5934_Compress_To_IntScale 32 static
|
||||||
../Core/Src/ad5934_driver.c:481:7:AD5934_Linear_Correction 24 static
|
../Core/Src/ad5934_driver.c:504:7:AD5934_Round_Float_Precision 24 static
|
||||||
../Core/Src/ad5934_driver.c:500:7:AD5934_Calibrate 48 static
|
../Core/Src/ad5934_driver.c:529:7:AD5934_Linear_Correction 24 static
|
||||||
../Core/Src/ad5934_driver.c:522:6:AD5934_Process_System 32 static
|
../Core/Src/ad5934_driver.c:548:7:AD5934_Calibrate 48 static
|
||||||
../Core/Src/ad5934_driver.c:644:6:AD5934_Sort_Array 24 static
|
../Core/Src/ad5934_driver.c:570:6:AD5934_Process_System 32 static
|
||||||
../Core/Src/ad5934_driver.c:666:7:AD5934_Trimmed_Mean 32 static
|
../Core/Src/ad5934_driver.c:703:6:AD5934_Sort_Array 24 static
|
||||||
../Core/Src/ad5934_driver.c:692:7:AD5934_History_Average 24 static
|
../Core/Src/ad5934_driver.c:725:7:AD5934_Trimmed_Mean 32 static
|
||||||
../Core/Src/ad5934_driver.c:706:6:AD5934_Process_Sample 32 static
|
../Core/Src/ad5934_driver.c:751:7:AD5934_History_Average 24 static
|
||||||
../Core/Src/ad5934_driver.c:746:6:AD5934_MovingAvg_Init 24 static
|
../Core/Src/ad5934_driver.c:765:6:AD5934_Process_Sample 32 static
|
||||||
../Core/Src/ad5934_driver.c:757:6:AD5934_MovingAvg_Process 24 static
|
../Core/Src/ad5934_driver.c:805:6:AD5934_MovingAvg_Init 24 static
|
||||||
../Core/Src/ad5934_driver.c:777:6:AD5934_RTD_NewSample 16 static
|
../Core/Src/ad5934_driver.c:816:6:AD5934_MovingAvg_Process 24 static
|
||||||
../Core/Src/ad5934_driver.c:785:6:AD5934_EC_NewSample 16 static
|
../Core/Src/ad5934_driver.c:836:6:AD5934_RTD_NewSample 16 static
|
||||||
../Core/Src/ad5934_driver.c:793:6:AD5934_Reference_NewSample 16 static
|
../Core/Src/ad5934_driver.c:844:6:AD5934_EC_NewSample 16 static
|
||||||
../Core/Src/ad5934_driver.c:810:6:ADG715_SetRegisterValue 32 static
|
../Core/Src/ad5934_driver.c:852:6:AD5934_Reference_100R_LowGain_NewSample 16 static
|
||||||
../Core/Src/ad5934_driver.c:828:6:ADG715_ResetChannels 8 static
|
../Core/Src/ad5934_driver.c:859:6:AD5934_Reference_100R_MidGain_NewSample 16 static
|
||||||
../Core/Src/ad5934_driver.c:840:6:ADG715_SetChannels 16 static
|
../Core/Src/ad5934_driver.c:866:6:AD5934_Reference_100R_HighGain_NewSample 16 static
|
||||||
|
../Core/Src/ad5934_driver.c:873:6:AD5934_Reference_1K_MidGain_NewSample 16 static
|
||||||
|
../Core/Src/ad5934_driver.c:880:6:AD5934_Reference_1K_HighGain_NewSample 16 static
|
||||||
|
../Core/Src/ad5934_driver.c:887:6:AD5934_Reference_10K_HighGain_NewSample 16 static
|
||||||
|
../Core/Src/ad5934_driver.c:902:6:ADG715_SetRegisterValue 32 static
|
||||||
|
../Core/Src/ad5934_driver.c:920:6:ADG715_ResetChannels 8 static
|
||||||
|
../Core/Src/ad5934_driver.c:932:6:ADG715_SetChannels 16 static
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
../Core/Src/main.c:79:5:main 4
|
../Core/Src/main.c:79:5:main 8
|
||||||
../Core/Src/main.c:314:6:SystemClock_Config 4
|
../Core/Src/main.c:250:6:SystemClock_Config 4
|
||||||
../Core/Src/main.c:365:6:FloatToString 8
|
../Core/Src/main.c:301:6:FloatToString 8
|
||||||
../Core/Src/main.c:427:6:intToStr 12
|
../Core/Src/main.c:363:6:intToStr 12
|
||||||
../Core/Src/main.c:493:6:Convert2Hex 2
|
../Core/Src/main.c:429:6:Convert2Hex 2
|
||||||
../Core/Src/main.c:507:6:HAL_TIM_PeriodElapsedCallback 2
|
../Core/Src/main.c:443:6:HAL_TIM_PeriodElapsedCallback 2
|
||||||
../Core/Src/main.c:523:6:Error_Handler 1
|
../Core/Src/main.c:459:6:Error_Handler 1
|
||||||
|
|||||||
Binary file not shown.
@@ -1,7 +1,7 @@
|
|||||||
../Core/Src/main.c:79:5:main 72 static
|
../Core/Src/main.c:79:5:main 104 static
|
||||||
../Core/Src/main.c:314:6:SystemClock_Config 88 static
|
../Core/Src/main.c:250:6:SystemClock_Config 88 static
|
||||||
../Core/Src/main.c:365:6:FloatToString 104 static
|
../Core/Src/main.c:301:6:FloatToString 104 static
|
||||||
../Core/Src/main.c:427:6:intToStr 32 static
|
../Core/Src/main.c:363:6:intToStr 32 static
|
||||||
../Core/Src/main.c:493:6:Convert2Hex 48 static
|
../Core/Src/main.c:429:6:Convert2Hex 48 static
|
||||||
../Core/Src/main.c:507:6:HAL_TIM_PeriodElapsedCallback 16 static
|
../Core/Src/main.c:443:6:HAL_TIM_PeriodElapsedCallback 16 static
|
||||||
../Core/Src/main.c:523:6:Error_Handler 4 static,ignoring_inline_asm
|
../Core/Src/main.c:459:6:Error_Handler 4 static,ignoring_inline_asm
|
||||||
|
|||||||
Binary file not shown.
+11218
-11780
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user