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

Remove init from AD5933

parent c9ca623c
Branches
No related merge requests found
......@@ -14,9 +14,10 @@
#include <sysclk.h>
#include <delay.h>
#include "settings.h"
#include "config/conf_board.h"
#include "config/dstat_config.h"
#define EIS_TWI EXT_TWI0
#define EIS_TWI TWIC
#define AD5933_ADDR 0x0D
#define ADDR_PTR 0xB0
// Control Register
......@@ -103,34 +104,21 @@
#define INTERNAL_CLK_HZ 16776000
uint8_t read_byte(uint8_t address);
void read_block(uint8_t address, uint8_t length, uint8_t* buffer);
void write_byte(uint8_t address, uint8_t value);
void write_block(uint8_t address, uint8_t length, uint8_t* buffer);
void reset(void);
void internal_clock_set(bool);
bool set_start_frequency(uint32_t);
bool set_increment_frequency(uint32_t);
bool set_num_increments(uint16_t);
bool set_settling_cycles(uint16_t cycles);
void set_gain(uint8_t pga_gain, uint8_t o_range);
void set_control_mode(uint8_t);
void eis_init(void){
ioport_set_port_mode(IOPORT_PORTC, PIN0_bm|PIN1_bm, IOPORT_MODE_WIREDANDPULL);
sysclk_enable_peripheral_clock(&EIS_TWI);
twi_master_enable(&EIS_TWI);
twi_master_options_t opt = {
.speed = 50000,
.chip = 0x42
};
twi_master_setup(&EIS_TWI, &opt);
printf("#INFO: TWI master enabled\n\r");
}
static uint8_t read_byte(uint8_t address);
static void read_block(uint8_t address, uint8_t length, uint8_t* buffer);
static void write_byte(uint8_t address, uint8_t value);
static void write_block(uint8_t address, uint8_t length, uint8_t* buffer);
static void reset(void);
static void internal_clock_set(bool);
static bool set_start_frequency(uint32_t);
static bool set_increment_frequency(uint32_t);
static bool set_num_increments(uint16_t);
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);
uint8_t read_byte(uint8_t address) {
static uint8_t read_byte(uint8_t address) {
/**
* Reads one byte from AD5933
*
......@@ -150,11 +138,9 @@ uint8_t read_byte(uint8_t address) {
twi_master_read(&EIS_TWI, &twi_pack);
return value;
read_block(address, 1, &value);
return value;
}
void read_block(uint8_t address, uint8_t length, uint8_t* buffer) {
static void read_block(uint8_t address, uint8_t length, uint8_t* buffer) {
/**
* Reads a block of data
*
......@@ -185,7 +171,7 @@ void read_block(uint8_t address, uint8_t length, uint8_t* buffer) {
}
void write_byte(uint8_t address, uint8_t value) {
static void write_byte(uint8_t address, uint8_t value) {
/**
* Writes one byte to AD5933.
*
......@@ -206,7 +192,7 @@ void write_byte(uint8_t address, uint8_t value) {
printf("#ERR: AD5933 TWI write fail\r\n");
}
void write_block(uint8_t address, uint8_t length, uint8_t* buffer) {
static void write_block(uint8_t address, uint8_t length, uint8_t* buffer) {
/**
* Writes a block of data
*
......@@ -261,12 +247,12 @@ void ad5933_set_params(uint32_t start, uint32_t increment, uint16_t n_increments
}
void reset(void) {
static void reset(void) {
uint8_t current = read_byte(CTRL_REG2);
write_byte(CTRL_REG2, current | CTRL_RESET);
}
void internal_clock_set(bool internal) {
static void internal_clock_set(bool internal) {
//set the control register to internal or external clock
uint8_t current = read_byte(CTRL_REG2);
......@@ -278,7 +264,7 @@ void internal_clock_set(bool internal) {
write_byte(CTRL_REG2, current);
}
void test(uint32_t freq){
void ad5933_test(void){
ad5933_set_params(0x0f5c28, 0x14f, 10, 100, 1);
cuint16_t result[10];
......@@ -289,7 +275,7 @@ void test(uint32_t freq){
}
}
bool set_start_frequency(uint32_t start) {
static bool set_start_frequency(uint32_t start) {
if (start > 0xFFFFFF) {
printf("#ERR: AD5933: Start frequency too high.\r\n");
return false;
......@@ -301,7 +287,7 @@ bool set_start_frequency(uint32_t start) {
return true;
}
bool set_increment_frequency(uint32_t increment) {
static bool set_increment_frequency(uint32_t increment) {
if (increment > 0xFFFFFF) {
printf("#ERR: AD5933: Increment too high.\r\n");
return false;
......@@ -313,7 +299,7 @@ bool set_increment_frequency(uint32_t increment) {
return true;
}
bool set_num_increments(uint16_t num) {
static bool set_num_increments(uint16_t num) {
if (num > 511){
printf("#ERR: AD5933: Increment number too high.\r\n");
return false;
......@@ -325,7 +311,7 @@ bool set_num_increments(uint16_t num) {
return true;
}
bool set_settling_cycles(uint16_t cycles) {
static bool set_settling_cycles(uint16_t cycles) {
uint16_t output = 0;
if (cycles <= 0x1ff) {
......@@ -347,7 +333,7 @@ bool set_settling_cycles(uint16_t cycles) {
return true;
}
void set_gain(uint8_t pga_gain, uint8_t o_range) {
static void set_gain(uint8_t pga_gain, uint8_t o_range) {
uint8_t val = 0;
switch (pga_gain) {
......@@ -384,7 +370,7 @@ void set_gain(uint8_t pga_gain, uint8_t o_range) {
return;
}
void set_control_mode(uint8_t mode) {
static void set_control_mode(uint8_t mode) {
uint8_t val = read_byte(CTRL_REG1);
val &= 0b00001111; // clear out the top 4 bits
......
......@@ -18,12 +18,11 @@ typedef struct c_uint16_t {
uint16_t imag;
} cuint16_t;
void eis_init(void);
void ad5933_set_params(uint32_t start, uint32_t increment, uint16_t n_increments,
uint16_t settle_cycles, uint8_t gain);
void ad5933_sweep(cuint16_t imp[], int n);
cuint16_t ad5993_get_complex_data(void);
void test(uint32_t freq);
void ad5933_test(void);
#endif /* ad5933_h */
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