Skip to content
Snippets Groups Projects
Commit 04f63a1c authored by Michael DM Dryden's avatar Michael DM Dryden
Browse files

EIS: Adjust delay before first measurement.

parent 4820c4f4
Branches
No related merge requests found
......@@ -115,6 +115,8 @@ static bool set_settling_cycles(uint16_t cycles);
static void set_gain(uint8_t pga_gain, uint8_t o_range);
static void set_control_mode(uint8_t);
static uint16_t init_settle_ms = 400;
static uint8_t read_byte(uint8_t address) {
/**
......@@ -220,7 +222,7 @@ static void write_block(uint8_t address, uint8_t length, uint8_t* buffer) {
}
void ad5933_set_params(uint32_t start, uint32_t increment, uint16_t n_increments,
uint16_t settle_cycles, uint8_t gain, uint8_t output_range) {
uint16_t settle_cycles, uint8_t gain, uint8_t output_range, uint16_t init_ms) {
/**
* Set EIS sweep parameters.
*
......@@ -237,6 +239,7 @@ void ad5933_set_params(uint32_t start, uint32_t increment, uint16_t n_increments
set_num_increments(n_increments);
set_gain(gain, output_range);
set_settling_cycles(settle_cycles);
init_settle_ms = init_ms;
return;
}
......@@ -395,7 +398,7 @@ cint16_t ad5933_measure_one(uint8_t measure_type) {
ad5933_reset();
set_control_mode(CTRL_STANDBY_MODE);
set_control_mode(CTRL_INIT_START_FREQ);
delay_ms(400);
delay_ms(init_settle_ms);
set_control_mode(CTRL_START_FREQ_SWEEP);
break;
......
......@@ -25,7 +25,8 @@ typedef struct c_int16_t {
void ad5933_set_internal_mclk(uint8_t internal);
void ad5933_reset(void);
void ad5933_set_params(uint32_t start, uint32_t increment, uint16_t n_increments,
uint16_t settle_cycles, uint8_t gain, uint8_t output_range);
uint16_t settle_cycles, uint8_t gain, uint8_t output_range,
uint16_t init_ms);
void ad5933_sweep(cint16_t imp[], int n);
cint16_t ad5993_get_complex_data(void);
cint16_t ad5933_measure_one(uint8_t measure_type);
......
......@@ -24,7 +24,7 @@ void eis_init(void){
void eis_measure_auto(uint32_t start, uint32_t increment, uint16_t n_increments,
uint16_t settle_cycles, uint8_t pga_gain, uint8_t output_range,
uint8_t iv_gain, uint16_t attenuation, uint16_t offset,
uint8_t reference, cint16_t* result_buffer){
uint8_t reference, uint16_t init_ms, cint16_t* result_buffer){
/**
Runs eis experiment in auto mode and writes result to buffer.
......@@ -38,10 +38,11 @@ void eis_measure_auto(uint32_t start, uint32_t increment, uint16_t n_increments,
@param attenuation gain setting
@param offset offset voltage in max5443 units
@param reference Reference connection setting
@param init_ms Delay before first measurement in ms
@param result_buffer Buffer to store results
*/
eis_set_mclk(0);
ad5933_set_params(start, increment, n_increments, settle_cycles, pga_gain, output_range);
ad5933_set_params(start, increment, n_increments, settle_cycles, pga_gain, output_range, init_ms);
eis_set_ref(reference);
eis_set_gain(iv_gain);
ad5272_write_rdac(attenuation);
......@@ -57,9 +58,9 @@ void eis_measure_auto(uint32_t start, uint32_t increment, uint16_t n_increments,
void eis_set_params(uint32_t start, uint32_t increment, uint16_t n_increments,
uint16_t settle_cycles, uint8_t pga_gain, uint8_t output_range,
uint8_t iv_gain, uint16_t attenuation, uint16_t offset,
uint8_t reference, uint16_t mclk_div2){
uint8_t reference, uint16_t mclk_div2, uint16_t init_ms){
eis_set_mclk(mclk_div2);
ad5933_set_params(start, increment, n_increments, settle_cycles, pga_gain, output_range);
ad5933_set_params(start, increment, n_increments, settle_cycles, pga_gain, output_range, init_ms);
eis_set_ref(reference);
eis_set_gain(iv_gain);
ad5272_write_rdac(attenuation);
......
......@@ -22,11 +22,11 @@ void eis_init(void);
void eis_measure_auto(uint32_t start, uint32_t increment, uint16_t n_increments,
uint16_t settle_cycles, uint8_t pga_gain, uint8_t output_range,
uint8_t iv_gain, uint16_t attenuation, uint16_t offset,
uint8_t reference, cint16_t* result_buffer);
uint8_t reference, uint16_t init_ms, cint16_t* result_buffer);
void eis_set_params(uint32_t start, uint32_t increment, uint16_t n_increments,
uint16_t settle_cycles, uint8_t pga_gain, uint8_t output_range,
uint8_t iv_gain, uint16_t attenuation, uint16_t offset,
uint8_t reference, uint16_t mclk_div2);
uint8_t reference, uint16_t mclk_div2, uint16_t init_ms);
cint16_t eis_measure_one(void);
extern uint8_t eis_status;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment