LCDDriver_NXP_Arduino 0.8.1
Analog Front-End (AFE) device operation sample code for Arduino
Loading...
Searching...
No Matches
AFE_base Class Referenceabstract

#include <AFE_NXP.h>

Inheritance diagram for AFE_base:
SPI_for_AFE NAFE13388_Base NAFE13388 NAFE13388_UIM

Public Types

using raw_t = int32_t
 
using microvolt_t = double
 

Public Member Functions

 AFE_base (bool spi_addr, bool highspeed_variant, int nINT, int DRDY, int SYN, int nRESET)
 
virtual ~AFE_base ()
 
virtual void begin (void)
 
virtual void boot (void)=0
 
virtual void reset (bool hardware_reset=false)=0
 
virtual void open_logical_channel (int ch, uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t cc3)=0
 
virtual void open_logical_channel (int ch, const uint16_t(&cc)[4])=0
 
virtual void close_logical_channel (int ch)=0
 
virtual void close_logical_channel (void)=0
 
virtual void start (int ch)=0
 
virtual void start (void)=0
 
virtual void start_continuous_conversion (void)=0
 
virtual void DRDY_by_sequencer_done (bool flag=true)=0
 
virtual raw_t read (int ch)=0
 
virtual void read (raw_t *data_ptr)=0
 
virtual raw_t start_and_read (int ch)
 
template<typename T>
void start_and_read (T data)
 
double raw2uv (int ch, raw_t value)
 
double raw2mv (int ch, raw_t value)
 
double raw2v (int ch, raw_t value)
 
double coeff_mV (int ch)
 
double drdy_delay (int ch)
 
double drdy_delay (void)
 
int enabled_logical_channels (void)
 
void use_DRDY_trigger (bool use=true)
 
- Public Member Functions inherited from SPI_for_AFE
void txrx (uint8_t *data, int size)
 
void write_r16 (uint16_t reg)
 
void write_r16 (uint16_t reg, uint16_t val)
 
uint16_t read_r16 (uint16_t reg)
 
void write_r24 (uint16_t reg, uint32_t val)
 
int32_t read_r24 (uint16_t reg)
 
void burst (uint32_t *data, int length, int width=3)
 

Protected Member Functions

int bit_count (uint32_t value)
 
virtual void init (void)
 
void default_drdy_cb (void)
 
int wait_conversion_complete (double delay=-1.0)
 

Static Protected Member Functions

static void DRDY_cb (void)
 

Protected Attributes

bool dev_add
 
bool highspeed_variant
 
int pin_nINT
 
int pin_DRDY
 
int pin_SYN
 
int pin_nRESET
 
int enabled_channels
 
double coeff_uV [16]
 
double ch_delay [16]
 
double total_delay
 
uint32_t drdy_count
 
volatile bool drdy_flag
 

Static Protected Attributes

static double delay_accuracy = 1.1
 
static constexpr uint32_t timeout_limit = 100000000
 

Detailed Description

NXP Analog Front End class library for Arduino

Copyright: 2023 - 2025 Tedd OKANO Released under the MIT license

A simple class library for NXP Analog Front End: NAFE13388 evaluation boards

Definition at line 17 of file AFE_NXP.h.

Member Typedef Documentation

◆ microvolt_t

using AFE_base::microvolt_t = double

Definition at line 23 of file AFE_NXP.h.

◆ raw_t

using AFE_base::raw_t = int32_t

ADC readout types

Definition at line 22 of file AFE_NXP.h.

Constructor & Destructor Documentation

◆ AFE_base()

AFE_base::AFE_base ( bool spi_addr,
bool highspeed_variant,
int nINT,
int DRDY,
int SYN,
int nRESET )

Constructor to create a AFE_base instance

Definition at line 16 of file AFE_NXP.cpp.

Referenced by NAFE13388_Base::NAFE13388_Base().

◆ ~AFE_base()

AFE_base::~AFE_base ( )
virtual

Destractor

Definition at line 31 of file AFE_NXP.cpp.

Member Function Documentation

◆ begin()

void AFE_base::begin ( void )
virtual

Begin the device operation

NAFE13388 initialization. It does following steps (1) Call reset() (2) Call boot()

Definition at line 45 of file AFE_NXP.cpp.

◆ bit_count()

int AFE_base::bit_count ( uint32_t value)
protected

Definition at line 76 of file AFE_NXP.cpp.

◆ boot()

virtual void AFE_base::boot ( void )
pure virtual

Set system-level config registers

Implemented in NAFE13388_Base.

Referenced by begin().

◆ close_logical_channel() [1/2]

virtual void AFE_base::close_logical_channel ( int ch)
pure virtual

Logical channel disable

Parameters
chlogical channel number (0 ~ 15)

Implemented in NAFE13388_Base.

◆ close_logical_channel() [2/2]

virtual void AFE_base::close_logical_channel ( void )
pure virtual

All logical channel disable

Implemented in NAFE13388_Base.

◆ coeff_mV()

double AFE_base::coeff_mV ( int ch)
inline

Coefficient to convert from ADC read value to micro-volt

Parameters
chlogical channel number

Definition at line 169 of file AFE_NXP.h.

◆ default_drdy_cb()

void AFE_base::default_drdy_cb ( void )
protected

Referenced by init().

◆ DRDY_by_sequencer_done()

virtual void AFE_base::DRDY_by_sequencer_done ( bool flag = true)
pure virtual

DRDY event select

Parameters
settrue for DRDY by sequencer is done

Implemented in NAFE13388_Base.

◆ DRDY_cb()

static void AFE_base::DRDY_cb ( void )
staticprotected

Referenced by init().

◆ drdy_delay() [1/2]

double AFE_base::drdy_delay ( int ch)
inline

Caliculated delay from logical channel setting (for single channel)

Parameters
chlogical channel number

Definition at line 178 of file AFE_NXP.h.

◆ drdy_delay() [2/2]

double AFE_base::drdy_delay ( void )
inline

Caliculated delay from logical channel setting (for all channels)

Definition at line 185 of file AFE_NXP.h.

◆ enabled_logical_channels()

int AFE_base::enabled_logical_channels ( void )
inline

Number of enabled logical channels

Definition at line 191 of file AFE_NXP.h.

◆ init()

void AFE_base::init ( void )
protectedvirtual

Definition at line 35 of file AFE_NXP.cpp.

Referenced by begin().

◆ open_logical_channel() [1/2]

virtual void AFE_base::open_logical_channel ( int ch,
const uint16_t(&) cc[4] )
pure virtual

Configure logical channel

Parameters
chlogical channel number (0 ~ 15)
ccarray for CH_CONFIG0, CH_CONFIG1, CH_CONFIG2 and CH_CONFIG3 values

Implemented in NAFE13388_Base.

◆ open_logical_channel() [2/2]

virtual void AFE_base::open_logical_channel ( int ch,
uint16_t cc0,
uint16_t cc1,
uint16_t cc2,
uint16_t cc3 )
pure virtual

set callback function when DRDY comes Configure logical channel

Parameters
chlogical channel number (0 ~ 15)
cc016bit value to be set CH_CONFIG0 register (0x20)
cc116bit value to be set CH_CONFIG1 register (0x21)
cc216bit value to be set CH_CONFIG2 register (0x22)
cc316bit value to be set CH_CONFIG3 register (0x23)

Implemented in NAFE13388_Base.

◆ raw2mv()

double AFE_base::raw2mv ( int ch,
raw_t value )
inline

Convert raw output to milli-volt

Parameters
chlogical channel number to select its gain coefficient
valueADC read value

Definition at line 150 of file AFE_NXP.h.

Referenced by NAFE13388_Base::self_calibrate().

◆ raw2uv()

double AFE_base::raw2uv ( int ch,
raw_t value )
inline

Convert raw output to micro-volt

Parameters
chlogical channel number to select its gain coefficient
valueADC read value

Definition at line 140 of file AFE_NXP.h.

◆ raw2v()

double AFE_base::raw2v ( int ch,
raw_t value )
inline

Convert raw output to volt

Parameters
chlogical channel number to select its gain coefficient
valueADC read value

Definition at line 160 of file AFE_NXP.h.

Referenced by NAFE13388_Base::self_calibrate().

◆ read() [1/2]

virtual raw_t AFE_base::read ( int ch)
pure virtual

Read ADC for single channel

Parameters
chlogical channel number (0 ~ 15)

Implemented in NAFE13388_Base.

Referenced by start_and_read(), and start_and_read().

◆ read() [2/2]

virtual void AFE_base::read ( raw_t * data_ptr)
pure virtual

Read ADC for all channel

Parameters
data_ptrpointer to array to store ADC data

Implemented in NAFE13388_Base.

◆ reset()

virtual void AFE_base::reset ( bool hardware_reset = false)
pure virtual

Issue RESET command

Implemented in NAFE13388_Base.

Referenced by begin().

◆ start() [1/2]

virtual void AFE_base::start ( int ch)
pure virtual

Start ADC

Parameters
chlogical channel number (0 ~ 15)

Implemented in NAFE13388_Base.

◆ start() [2/2]

virtual void AFE_base::start ( void )
pure virtual

Start ADC on all logical channel

Implemented in NAFE13388_Base.

Referenced by start_and_read(), and start_and_read().

◆ start_and_read() [1/2]

int32_t AFE_base::start_and_read ( int ch)
virtual

Start and read ADC for single channel

Parameters
chlogical channel number (0 ~ 15)

Definition at line 52 of file AFE_NXP.cpp.

Referenced by NAFE13388_Base::self_calibrate().

◆ start_and_read() [2/2]

template<typename T>
void AFE_base::start_and_read ( T data)
inline

Definition at line 123 of file AFE_NXP.h.

◆ start_continuous_conversion()

virtual void AFE_base::start_continuous_conversion ( void )
pure virtual

Start continuous AD conversion

Implemented in NAFE13388_Base.

◆ use_DRDY_trigger()

void AFE_base::use_DRDY_trigger ( bool use = true)

Switch to use DRDY to start ADC result reading

Parameters
usetrue (default) to use DRDY. if false, caliculated delay is used to start reading.

◆ wait_conversion_complete()

int AFE_base::wait_conversion_complete ( double delay = -1.0)
protected

Definition at line 89 of file AFE_NXP.cpp.

Referenced by start_and_read(), and start_and_read().

Member Data Documentation

◆ ch_delay

double AFE_base::ch_delay[16]
protected

◆ coeff_uV

double AFE_base::coeff_uV[16]
protected

Coefficient to convert from ADC read value to micro-volt

Definition at line 216 of file AFE_NXP.h.

Referenced by coeff_mV(), NAFE13388_Base::open_logical_channel(), raw2mv(), raw2uv(), and raw2v().

◆ delay_accuracy

double AFE_base::delay_accuracy = 1.1
staticprotected

NXP Analog Front End class library for MCX

Author
Tedd OKANO

Copyright: 2023 - 2025 Tedd OKANO Released under the MIT license

Definition at line 221 of file AFE_NXP.h.

Referenced by start_and_read(), start_and_read(), and wait_conversion_complete().

◆ dev_add

bool AFE_base::dev_add
protected

Definition at line 203 of file AFE_NXP.h.

Referenced by AFE_base().

◆ drdy_count

uint32_t AFE_base::drdy_count
protected

Definition at line 224 of file AFE_NXP.h.

◆ drdy_flag

volatile bool AFE_base::drdy_flag
protected

Definition at line 225 of file AFE_NXP.h.

Referenced by init(), and wait_conversion_complete().

◆ enabled_channels

int AFE_base::enabled_channels
protected

Number of enabled logical channels

Definition at line 213 of file AFE_NXP.h.

Referenced by AFE_base(), NAFE13388_Base::channel_info_update(), enabled_logical_channels(), and NAFE13388_Base::read().

◆ highspeed_variant

bool AFE_base::highspeed_variant
protected

Definition at line 204 of file AFE_NXP.h.

Referenced by AFE_base(), and NAFE13388_Base::calc_delay().

◆ pin_DRDY

int AFE_base::pin_DRDY
protected

Definition at line 206 of file AFE_NXP.h.

Referenced by AFE_base(), and init().

◆ pin_nINT

int AFE_base::pin_nINT
protected

Definition at line 205 of file AFE_NXP.h.

Referenced by AFE_base().

◆ pin_nRESET

int AFE_base::pin_nRESET
protected

Definition at line 208 of file AFE_NXP.h.

Referenced by AFE_base(), and NAFE13388_Base::reset().

◆ pin_SYN

int AFE_base::pin_SYN
protected

Definition at line 207 of file AFE_NXP.h.

Referenced by AFE_base().

◆ timeout_limit

uint32_t AFE_base::timeout_limit = 100000000
staticconstexprprotected

Definition at line 227 of file AFE_NXP.h.

Referenced by wait_conversion_complete().

◆ total_delay

double AFE_base::total_delay
protected

Definition at line 220 of file AFE_NXP.h.

Referenced by NAFE13388_Base::channel_info_update(), drdy_delay(), and start_and_read().


The documentation for this class was generated from the following files: