58 afe_ptr->open_logical_channel( ch_number,
cc );
142#ifdef NON_TEMPLATE_VERSION_FOR_START_AND_READ
188 printf(
"DRDY signal wait timeout\r\n" );
209 :
AFE_base( spi_addr, hsv, nINT, DRDY, SYN, nRESET, DRDY_input, SYNCDAC )
211 for (
auto i = 0;
i < 16;
i++ )
244 constexpr auto RETRY = 10;
253 Serial.println(
"NAFE13388 couldn't get ready. Check power supply or pin conections\r\n" );
263 if (
cc[ 0 ] & 0x0010 )
274 for (
auto i = 0;
i < 4;
i++ )
309 constexpr static double data_rates[] = { 288000, 192000, 144000, 96000, 72000, 48000, 36000, 24000,
310 18000, 12000, 9000, 6000, 4500, 3000, 2250, 1125,
311 562.5, 400, 300, 200, 100, 60, 50, 30,
312 25, 20, 15, 10, 7.5, };
314 16, 18, 20, 28, 38, 40, 42, 56,
315 64, 76, 90, 128, 154, 178, 204, 224,
317 1024, 1664, 3276, 7680, 19200, 23040, };
497 printf(
"ref_point_high = %8ld @%6.3lf\r\n",
ref.high.data,
ref.high.voltage );
498 printf(
"ref_point_low = %8ld @%6.3lf\r\n",
ref.low.data,
ref.low.voltage );
523 for (
auto i = 0;
i < 4;
i++ )
618NAFE13388::NAFE13388(
bool spi_addr,
bool hsv,
int nINT,
int DRDY,
int SYN,
int nRESET,
int DRDY_input,
int SYNCDAC )
619 :
NAFE13388_Base( spi_addr, hsv, nINT, DRDY, SYN, nRESET, DRDY_input, SYNCDAC )
630 :
NAFE13388_Base( spi_addr, hsv, nINT, DRDY, SYN, nRESET, DRDY_input, SYNCDAC )
641 0x8000, 0x0040, 0x0100, 0x0080, 0x0200, 0x0400, 0x0800, 0x1000,
642 0x2000, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0080,
649 for (
auto j = 0;
j < 2;
j++ )
660 for (
auto j = 0;
j < 4;
j++ )
662 for (
auto i = 0;
i < 10;
i++ )
virtual void enable_logical_channel(int ch)=0
static AFE_base * instance
static callback_fp_t cbf_DRDY
void use_DRDY_trigger(bool use=true)
virtual double raw2v(int ch, raw_t value)=0
virtual void set_DRDY_callback(callback_fp_t fnc)
static constexpr uint32_t timeout_limit
double raw2mv(int ch, raw_t value)
virtual void reset(bool hardware_reset=false)=0
int bit_count(uint32_t value)
void(* callback_fp_t)(void)
virtual raw_t start_and_read(int ch)
uint8_t sequence_order[16]
static void static_default_drdy_cb()
virtual void start(void)=0
AFE_base(bool spi_addr, bool highspeed_variant, int nINT, int DRDY, int SYN, int nRESET, int DRDY_input, int SYNCDAC)
int wait_conversion_complete(double delay=-1.0)
virtual void close_logical_channel(int ch)=0
static double delay_accuracy
virtual void boot(void)=0
virtual raw_t read(int ch)=0
virtual ~LogicalChannel()
void configure(const uint16_t(&cc)[4])
virtual void start_continuous_conversion()
double raw2v(int ch, raw_t value)
void gain_offset_coeff(const ref_points &ref)
double calc_delay(int ch)
virtual void command(uint16_t com)
virtual raw_t read(int ch)
LogicalChannel logical_channel[16]
uint32_t bit_op(T rg, uint32_t mask, uint32_t value)
int self_calibrate(int pga_gain_index, int channel_selection=15, int input_select=0, double reference_source_voltage=0, bool use_positive_side=true)
virtual void reg(Register16 r, uint16_t value)
uint8_t revision_number(void)
virtual void close_logical_channel(void)
virtual void DRDY_by_sequencer_done(bool flag=true)
uint64_t serial_number(void)
void channel_info_update(uint16_t value)
virtual ~NAFE13388_Base()
void enable_logical_channel(int ch)
virtual void reset(bool hardware_reset=false)
uint32_t part_number(void)
virtual void open_logical_channel(int ch, uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t cc3)
NAFE13388_Base(bool spi_addr, bool highspeed_variant, int nINT, int DRDY, int SYN, int nRESET, int DRDY_input, int SYNCDAC)
NAFE13388_UIM(bool spi_addr=0, bool highspeed_variant=false, int nINT=3, int DRDY=4, int SYN=6, int nRESET=7, int DRDY_input=2, int SYNCDAC=14)
NAFE13388(bool spi_addr=0, bool highspeed_variant=false, int nINT=2, int DRDY=4, int SYN=5, int nRESET=6, int DRDY_input=15, int SYNCDAC=14)
int32_t read_r24(uint16_t reg)
void write_r24(uint16_t reg, uint32_t val)
uint16_t read_r16(uint16_t reg)
void burst(uint32_t *data, int length, int width=3)
void write_r16(uint16_t reg)