50 afe_ptr->open_dac_output(
cc );
59 switch ( output_mode )
70 full_scale = 0.025 / 0.95;
102 afe_ptr->dac_out(
value, full_scale, 18 );
118 for (
auto i = 0;
i < 16;
i++ )
150 Serial.println(
"warning: UIOM doesn't have hardware RESET pin on the board. This reset will be ignored\r\n" );
155 constexpr auto RETRY = 10;
164 Serial.println(
"NAFE33352 couldn't get ready. Check power supply or pin conections\r\n" );
173 for (
auto i = 0;
i < 6;
i++ )
196 coeff = (20.00 * 2.50) / ((
cc[ 0 ] & 0x0100 ? 16.00 : 1.00) *
pow2_24);
206 coeff = (20.00 * 2.50) / ((
cc[ 0 ] & 0x0100 ? 16.00 : 1.00) *
pow2_24);
229 coeff = (2.00 * 20.00 * 2.50) / (12.5 *
pow2_24) - 1.50;
245 for (
auto i = 0;
i < 3;
i++ )
289 constexpr static double data_rates[] = { 288000, 192000, 144000, 96000, 72000, 48000, 36000, 24000,
290 18000, 12000, 9000, 6000, 4500, 3000, 2250, 1125,
291 562.5, 400, 300, 200, 100, 60, 50, 30,
292 25, 20, 15, 10, 7.5, };
294 16, 18, 20, 28, 38, 40, 42, 56,
295 64, 76, 90, 128, 154, 178, 204, 224,
297 1024, 1664, 3276, 7680, 19200, 23040, };
328 Serial.print(
"adc_data_rate =" );
330 Serial.print(
"base_freq = " );
332 Serial.print(
"delay_setting = " );
334 Serial.print(
"channel delay = " );
341#pragma GCC diagnostic ignored "-Wunused-parameter"
347#pragma GCC diagnostic pop
480NAFE33352::NAFE33352(
bool spi_addr,
bool hsv,
int nINT,
int DRDY,
int SYN,
int nRESET,
int DRDY_input,
int SYNCDAC )
481 :
NAFE33352_Base( spi_addr, hsv, nINT, DRDY, SYN, nRESET, DRDY_input, SYNCDAC )
492 :
NAFE33352_Base( spi_addr, hsv, nINT, DRDY, SYN, nRESET, DRDY_input, SYNCDAC )
double raw2uv(int ch, raw_t value)
uint8_t sequence_order[16]
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)
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 close_logical_channel(void)
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()
virtual void dac_out(double vi, double full_scale, uint8_t bit_length)
virtual void DRDY_by_sequencer_done(bool flag=true)
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)
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)