13#ifndef ARDUINO_AFE_NAFE33352_DRIVER_H
14#define ARDUINO_AFE_NAFE33352_DRIVER_H
35 virtual void txrx( uint8_t *data,
int size,
int cs_delay = 0 );
46 virtual void boot(
void );
49 virtual void reset(
bool hardware_reset =
false );
59 virtual void open_logical_channel(
int ch, uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t dummy );
79 void configure(
const uint16_t (&cc)[ 3 ] );
87 void configure( uint16_t cc0, uint16_t cc1 = 0x0000, uint16_t cc2 = 0x0000 );
115 void configure(
const uint16_t (&cc)[ 6 ] );
126 void configure( uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t cc3, uint16_t cc4, uint16_t cc5 );
139 void configure(
double full_scale_range );
145 void output(
double value );
194 virtual void start(
int ch );
198 virtual void start(
void );
238 return value - (double)(1L << 24) * 20.00 * 2.50 / (12.50 * (double)(1L << 24)) -1.50;
249 virtual void dac_out(
double vi,
double full_scale, uint8_t bit_length );
258 int32_t
dac_code(
double a,
double full_scale, uint8_t bit_length );
260 constexpr static double pga_gain[] = { 1.00, 16.00 };
430 virtual void command( uint16_t com );
472 uint32_t
bit_op( T rg, uint32_t mask, uint32_t value )
474 uint32_t v =
reg( rg );
513 NAFE33352(
bool spi_addr = 0,
bool highspeed_variant =
false,
int nINT = 7,
int DRDY = 4,
int SYN = 14,
int nRESET = 14,
int DRDY_input = 2,
int SYNCDAC = 14 );
523 NAFE33352_UIOM(
bool spi_addr = 0,
bool highspeed_variant =
false,
int nINT = 7,
int DRDY = 4,
int SYN = 14,
int nRESET = 14,
int DRDY_input = 2,
int SYNCDAC = 14 );
NAFE33352_Base::Register16 operator+(NAFE33352_Base::Register16 rn, int n)
AFE_base(bool spi_addr, bool highspeed_variant, int nINT, int DRDY, int SYN, int nRESET, int DRDY_input, int SYNCDAC)
DAC & operator=(double value)
void output(double value)
void configure(const uint16_t(&cc)[6])
void configure(const uint16_t(&cc)[3])
virtual ~LogicalChannel()
uint32_t bit_op(T rg, uint32_t mask, uint32_t value)
static constexpr double on_board_shunt_resister
uint64_t part_number(void)
uint8_t revision_number(void)
virtual raw_t read(int ch)
void enable_logical_channel(int ch)
virtual void open_logical_channel(int ch, uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t dummy)
virtual void write_r24(uint16_t reg, uint32_t val)
virtual void close_logical_channel(void)
static constexpr double pga_gain[]
void open_dac_output(const uint16_t(&cc)[6])
virtual void reset(bool hardware_reset=false)
virtual void command(uint16_t com)
virtual ~NAFE33352_Base()
void channel_info_update(uint16_t value)
uint64_t serial_number(void)
int32_t dac_code(double a, double full_scale, uint8_t bit_length)
NAFE33352_Base(bool spi_addr, bool highspeed_variant, int nINT, int DRDY, int SYN, int nRESET, int DRDY_input, int SYNCDAC)
double calc_delay(int ch)
virtual void start_continuous_conversion()
double raw2v(int ch, raw_t value)
virtual void dac_out(double vi, double full_scale, uint8_t bit_length)
virtual void DRDY_by_sequencer_done(bool flag=true)
virtual void txrx(uint8_t *data, int size, int cs_delay=0)
LogicalChannel logical_channel[16]
virtual void reg(Register16 r, uint16_t value)
virtual ~NAFE33352_UIOM()
NAFE33352_UIOM(bool spi_addr=0, bool highspeed_variant=false, int nINT=7, int DRDY=4, int SYN=14, int nRESET=14, int DRDY_input=2, int SYNCDAC=14)
NAFE33352(bool spi_addr=0, bool highspeed_variant=false, int nINT=7, int DRDY=4, int SYN=14, int nRESET=14, int DRDY_input=2, int SYNCDAC=14)