Fertirrega_v6 all scaled to 4096 counts
This commit is contained in:
@@ -13,7 +13,6 @@
|
||||
#define INC_AD5934_DRIVER_H_
|
||||
|
||||
#include "stm32f1xx_hal.h"
|
||||
#include "flash_manager.h"
|
||||
#include "main.h"
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
@@ -123,32 +122,6 @@ extern "C" {
|
||||
/**************************** General Defines ********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*
|
||||
#define AD5934_CH_REF_100R 0x10
|
||||
#define AD5934_CH_REF_1K 0x11
|
||||
#define AD5934_CH_REF_10K 0x12
|
||||
#define AD5934_CH_PT100 0x00
|
||||
#define AD5934_CH_PT1000 0x01
|
||||
#define AD5934_CH_EC_10MS 0x21
|
||||
#define AD5934_CH_EC_5MS 0x22
|
||||
*/
|
||||
/*
|
||||
#define AD5934_CH_REF100R_LOW_GAIN 0x09
|
||||
#define AD5934_CH_REF100R_MID_GAIN 0x0A
|
||||
#define AD5934_CH_REF100R_HIGH_GAIN 0x0C
|
||||
#define AD5934_CH_REF1K_LOW_GAIN 0x11
|
||||
#define AD5934_CH_REF1K_MID_GAIN 0x12
|
||||
#define AD5934_CH_REF1K_HIGH_GAIN 0x14
|
||||
#define AD5934_CH_REF10K_LOW_GAIN 0x21
|
||||
#define AD5934_CH_REF10K_MID_GAIN 0x22
|
||||
#define AD5934_CH_REF10K_HIGH_GAIN 0x24
|
||||
#define AD5934_CH_RTD_LOW_GAIN 0x41
|
||||
#define AD5934_CH_RTD_MID_GAIN 0x42
|
||||
#define AD5934_CH_RTD_HIGH_GAIN 0x44
|
||||
#define AD5934_CH_EC_LOW_GAIN 0x81
|
||||
#define AD5934_CH_EC_MID_GAIN 0x82
|
||||
#define AD5934_CH_EC_HIGH_GAIN 0x84
|
||||
*/
|
||||
#define AD5934_LOW_GAIN_BASE 0x01
|
||||
#define AD5934_MID_GAIN_BASE 0x02
|
||||
#define AD5934_HIGH_GAIN_BASE 0x04
|
||||
@@ -196,14 +169,8 @@ extern "C" {
|
||||
|
||||
#define AD5934_BURST_SIZE 5
|
||||
#define AD5934_TRIM_COUNT 1
|
||||
#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_HISTORY_SIZE 5
|
||||
#define AD5934_IIR_ALPHA 0.55f
|
||||
|
||||
#define AD5934_REF_FLOAT_SCALE_MIN 1850.0f
|
||||
#define AD5934_REF_FLOAT_SCALE_MAX 2450.0f
|
||||
@@ -215,6 +182,15 @@ extern "C" {
|
||||
#define AD5934_RTD_OUT_SCALE_MIN 0
|
||||
#define AD5934_RTD_OUT_SCALE_MAX 4096
|
||||
|
||||
#define AD5934_EC5_FLOAT_SCALE_MIN 0.0f
|
||||
#define AD5934_EC5_FLOAT_SCALE_MAX 20500.0f
|
||||
#define AD5934_EC5_OUT_SCALE_MIN 0
|
||||
#define AD5934_EC5_OUT_SCALE_MAX 4096
|
||||
|
||||
#define AD5934_EC10_FLOAT_SCALE_MIN 0.0f
|
||||
#define AD5934_EC10_FLOAT_SCALE_MAX 15000.0f
|
||||
#define AD5934_EC10_OUT_SCALE_MIN 0
|
||||
#define AD5934_EC10_OUT_SCALE_MAX 4096
|
||||
|
||||
|
||||
|
||||
@@ -320,9 +296,9 @@ static const float AD5934_Scale_Float_Min[AD5934_CH_MAX] = {
|
||||
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
|
||||
AD5934_EC10_FLOAT_SCALE_MIN,
|
||||
AD5934_EC10_FLOAT_SCALE_MIN,
|
||||
AD5934_EC5_FLOAT_SCALE_MIN
|
||||
};
|
||||
|
||||
static const float AD5934_Scale_Float_Max[AD5934_CH_MAX] = {
|
||||
@@ -338,9 +314,9 @@ static const float AD5934_Scale_Float_Max[AD5934_CH_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
|
||||
AD5934_EC10_FLOAT_SCALE_MAX,
|
||||
AD5934_EC10_FLOAT_SCALE_MAX,
|
||||
AD5934_EC5_FLOAT_SCALE_MAX
|
||||
};
|
||||
|
||||
static const uint16_t AD5934_Scale_Out_Min[AD5934_CH_MAX] = {
|
||||
@@ -356,40 +332,29 @@ static const uint16_t AD5934_Scale_Out_Min[AD5934_CH_MAX] = {
|
||||
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
|
||||
AD5934_EC10_OUT_SCALE_MIN,
|
||||
AD5934_EC10_OUT_SCALE_MIN,
|
||||
AD5934_EC5_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
|
||||
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_EC10_OUT_SCALE_MAX,
|
||||
AD5934_EC10_OUT_SCALE_MAX,
|
||||
AD5934_EC5_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];
|
||||
|
||||
extern int16_t ec_dut_samples[2][AD5934_EC_AVERAGES];
|
||||
extern int16_t ec_ref1_samples[2][AD5934_EC_AVERAGES];
|
||||
extern int16_t ec_ref2_samples[2][AD5934_EC_AVERAGES];
|
||||
extern float ec_display[AD5934_EC_AVERAGES];
|
||||
extern float ec_temp_dut[AD5934_EC_AVERAGES];
|
||||
|
||||
extern I2C_HandleTypeDef hi2c2;
|
||||
|
||||
|
||||
@@ -409,12 +374,8 @@ void AD5934_SetRegisterValue(uint8_t registerAddress, uint32_t registerValue, ui
|
||||
|
||||
uint32_t AD5934_GetRegisterValue(uint8_t registerAddress, uint8_t numberOfBytes);
|
||||
|
||||
uint32_t AD5934_ReadRegister(uint8_t regAddr, uint8_t numberOfBytes);
|
||||
|
||||
void AD5934_Init(void);
|
||||
|
||||
uint32_t AD5934_Sweep(void);
|
||||
|
||||
void AD5934_RestartSweep(void);
|
||||
|
||||
void AD5934_Repeat_Sweep(void);
|
||||
@@ -423,26 +384,20 @@ void AD5934_StopSweep(void);
|
||||
|
||||
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_EC_Compensate_Magnitude_To_25C(float mag_dut, float temperature_dut);
|
||||
|
||||
float AD5934_EC_Calibrate_Temperature(float temp_C);
|
||||
|
||||
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);
|
||||
|
||||
float AD5934_EC_Compensate_To_25C(float ec_raw_uScm, float temp_C);
|
||||
|
||||
float AD5934_EC_Calibrate_Temperature(float temp_C);
|
||||
|
||||
void AD5934_Process_System(void);
|
||||
|
||||
void AD5934_Sort_Array(float *v, uint8_t n);
|
||||
@@ -461,11 +416,9 @@ void AD5934_Reference_NewSample(float raw);
|
||||
|
||||
void ADG715_SetRegisterValue(char value);
|
||||
|
||||
void ADG715_SetChannels(uint8_t ch1, uint8_t ch2);
|
||||
|
||||
void ADG715_ResetChannels(void);
|
||||
|
||||
void ADG715_Update(uint8_t channel);
|
||||
void ADG715_SetChannels(AD5934_Channel_t channel);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -125,13 +125,18 @@ extern "C" {
|
||||
* MODE=1b (single-shot/power-down), DR[2:0]=100b (1600SPS, ajustar se necessário),
|
||||
* COMP_QUE[1:0]=11b (comparador desabilitado, ALERT/RDY em alta impedância)
|
||||
*/
|
||||
#define ADS1015_CONFIG_START_SINGLE (ADS1015_REG_CONFIG_OS_SINGLE | ADS1015_REG_CONFIG_MUX_DIFF_0_1 | ADS1015_REG_CONFIG_PGA_0_256V | ADS1015_REG_CONFIG_MODE_SINGLE | ADS1015_REG_CONFIG_DR_128SPS | ADS1015_REG_CONFIG_CMODE_TRAD | ADS1015_REG_CONFIG_CPOL_ACTVLOW | ADS1015_REG_CONFIG_CLAT_NONLAT | ADS1015_REG_CONFIG_CQUE_NONE) // 0x8583 // valor de reset já tem OS=1, então só precisa garantir MODE=1b
|
||||
#define ADS1015_CONFIG_START_SINGLE (ADS1015_REG_CONFIG_OS_SINGLE | ADS1015_REG_CONFIG_MUX_DIFF_0_1 | ADS1015_REG_CONFIG_PGA_1_024V | ADS1015_REG_CONFIG_MODE_SINGLE | ADS1015_REG_CONFIG_DR_128SPS | ADS1015_REG_CONFIG_CMODE_TRAD | ADS1015_REG_CONFIG_CPOL_ACTVLOW | ADS1015_REG_CONFIG_CLAT_NONLAT | ADS1015_REG_CONFIG_CQUE_NONE) // 0x8583 // valor de reset já tem OS=1, então só precisa garantir MODE=1b
|
||||
|
||||
|
||||
#define ADS1015_BURST_SIZE 5
|
||||
#define ADS1015_TRIM_COUNT 1
|
||||
#define ADS1015_HISTORY_SIZE 6
|
||||
#define ADS1015_IIR_ALPHA 0.4f
|
||||
#define ADS1015_HISTORY_SIZE 5
|
||||
#define ADS1015_IIR_ALPHA 0.55f
|
||||
|
||||
#define ADS1015_PH_FLOAT_SCALE_MIN 1000.0f
|
||||
#define ADS1015_PH_FLOAT_SCALE_MAX 3000.0f
|
||||
#define ADS1015_PH_OUT_SCALE_MIN 0
|
||||
#define ADS1015_PH_OUT_SCALE_MAX 4096
|
||||
|
||||
|
||||
|
||||
@@ -147,7 +152,6 @@ typedef enum {
|
||||
|
||||
extern I2C_HandleTypeDef hi2c1;
|
||||
|
||||
extern float ph_dut_samples[ADS1015_PH_AVERAGES];
|
||||
|
||||
typedef struct {
|
||||
uint16_t m_i2cAddress; ///< the I2C address
|
||||
@@ -187,24 +191,13 @@ extern ADS1015_filter_t g_ph_filter;
|
||||
extern volatile uint32_t g_ms_counter; // Increment each 1ms Timer
|
||||
|
||||
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);
|
||||
void ADSstartComparator_SingleEnded(ADS1015_I2C* i2c, uint8_t channel, int16_t threshold);
|
||||
int16_t ADSgetLastConversionResults();
|
||||
void ADSsetGain(ADS1015_I2C* i2c, adsGain_t gain);
|
||||
adsGain_t ADSgetGain(ADS1015_I2C* i2c);
|
||||
|
||||
void ADS1015_Process_System(void);
|
||||
void ADS1015_Sort_Array(float *v, uint8_t n);
|
||||
float ADS1015_Trimmed_Mean(float *buffer, uint8_t n, uint8_t trim);
|
||||
void ADS1015_Process_Sample(ADS1015_filter_t *ch, float raw);
|
||||
void ADS1015_pH_NewSample(float raw);
|
||||
uint16_t ADS1015_Compress_To_IntScale(float value);
|
||||
|
||||
|
||||
float ADSCalculate_ph_mV(void);
|
||||
float ADSCalculate_ph_Compensated(float temp_dut);
|
||||
float ADSCalculate_ph_Uncompensated(void);
|
||||
float ADSinterpolate_ph(float temp_dut, uint8_t row_index);
|
||||
float ADSRound_Float_Precision(float value, uint8_t number_of_decimals);
|
||||
|
||||
#endif /* INC_ADS1015_DRIVER_H_ */
|
||||
|
||||
Reference in New Issue
Block a user