LCDDriver_NXP_Arduino 0.7.6
Analog Front-End (AFE) device operation sample code for Arduino
|
#include <AFE_NXP.h>
Classes | |
struct | _ref_points |
struct | _reference_point |
Public Types | |
enum class | Register16 : uint16_t { CH_CONFIG0 = 0x20 , CH_CONFIG1 = 0x21 , CH_CONFIG2 = 0x22 , CH_CONFIG3 = 0x23 , CH_CONFIG4 = 0x24 , CRC_CONF_REGS = 0x25 , CRC_COEF_REGS = 0x26 , CRC_TRIM_REGS = 0x27 , GPI_DATA = 0x29 , GPIO_CONFIG0 = 0x2A , GPIO_CONFIG1 = 0x2B , GPIO_CONFIG2 = 0x2C , GPI_EDGE_POS = 0x2D , GPI_EDGE_NEG = 0x2E , GPO_DATA = 0x2F , SYS_CONFIG0 = 0x30 , SYS_STATUS0 = 0x31 , GLOBAL_ALARM_ENABLE = 0x32 , GLOBAL_ALARM_INTERRUPT = 0x33 , DIE_TEMP = 0x34 , CH_STATUS0 = 0x35 , CH_STATUS1 = 0x36 , THRS_TEMP = 0x37 , PN2 = 0x7C , PN1 = 0x7D , PN0 = 0x7E , CRC_TRIM_INT = 0x7F } |
enum class | Register24 : uint16_t { CH_DATA0 = 0x40 , CH_DATA1 = 0x41 , CH_DATA2 = 0x42 , CH_DATA3 = 0x43 , CH_DATA4 = 0x44 , CH_DATA5 = 0x45 , CH_DATA6 = 0x46 , CH_DATA7 = 0x47 , CH_DATA8 = 0x48 , CH_DATA9 = 0x4A , CH_DATA10 = 0x4B , CH_DATA11 = 0x4C , CH_DATA13 = 0x4D , CH_DATA14 = 0x4E , CH_DATA15 = 0x4F , CH_CONFIG5_0 = 0x50 , CH_CONFIG5_1 = 0x51 , CH_CONFIG5_2 = 0x52 , CH_CONFIG5_3 = 0x53 , CH_CONFIG5_4 = 0x54 , CH_CONFIG5_5 = 0x55 , CH_CONFIG5_6 = 0x56 , CH_CONFIG5_7 = 0x57 , CH_CONFIG5_8 = 0x58 , CH_CONFIG5_9 = 0x59 , CH_CONFIG5_10 = 0x5A , CH_CONFIG5_11 = 0x5B , CH_CONFIG5_12 = 0x5C , CH_CONFIG5_13 = 0x5D , CH_CONFIG5_14 = 0x5E , CH_CONFIG5_15 = 0x5F , CH_CONFIG6_0 = 0x60 , CH_CONFIG6_1 = 0x61 , CH_CONFIG6_2 = 0x62 , CH_CONFIG6_3 = 0x63 , CH_CONFIG6_4 = 0x64 , CH_CONFIG6_5 = 0x65 , CH_CONFIG6_6 = 0x66 , CH_CONFIG6_7 = 0x67 , CH_CONFIG6_8 = 0x68 , CH_CONFIG6_9 = 0x69 , CH_CONFIG6_10 = 0x6A , CH_CONFIG6_11 = 0x6B , CH_CONFIG6_12 = 0x6C , CH_CONFIG6_13 = 0x6D , CH_CONFIG6_14 = 0x6E , CH_CONFIG6_15 = 0x6F , GAIN_COEFF0 = 0x80 , GAIN_COEFF1 = 0x81 , GAIN_COEFF2 = 0x82 , GAIN_COEFF3 = 0x83 , GAIN_COEFF4 = 0x84 , GAIN_COEFF5 = 0x85 , GAIN_COEFF6 = 0x86 , GAIN_COEFF7 = 0x87 , GAIN_COEFF8 = 0x88 , GAIN_COEFF9 = 0x89 , GAIN_COEFF10 = 0x8A , GAIN_COEFF11 = 0x8B , GAIN_COEFF12 = 0x8C , GAIN_COEFF13 = 0x8D , GAIN_COEFF14 = 0x8E , GAIN_COEFF15 = 0x8F , OFFSET_COEFF0 = 0x90 , OFFSET_COEFF1 = 0x91 , OFFSET_COEFF2 = 0x92 , OFFSET_COEFF3 = 0x93 , OFFSET_COEFF4 = 0x94 , OFFSET_COEFF5 = 0x95 , OFFSET_COEFF6 = 0x96 , OFFSET_COEFF7 = 0x97 , OFFSET_COEFF8 = 0x98 , OFFSET_COEFF9 = 0x99 , OFFSET_COEFF10 = 0x9A , OFFSET_COEFF11 = 0x9B , OFFSET_COEFF12 = 0x9C , OFFSET_COEFF13 = 0x9D , OFFSET_COEFF14 = 0x9E , OFFSET_COEFF15 = 0x9F , OPT_COEF0 = 0xA0 , OPT_COEF1 = 0xA1 , OPT_COEF2 = 0xA2 , OPT_COEF3 = 0xA3 , OPT_COEF4 = 0xA4 , OPT_COEF5 = 0xA5 , OPT_COEF6 = 0xA6 , OPT_COEF7 = 0xA7 , OPT_COEF8 = 0xA8 , OPT_COEF9 = 0xA9 , OPT_COEF10 = 0xAA , OPT_COEF11 = 0xAB , OPT_COEF12 = 0xAC , OPT_COEF13 = 0xAD , SERIAL1 = 0xAE , SERIAL0 = 0xAF } |
enum | Command : uint16_t { CMD_CH0 = 0x0000 , CMD_CH1 = 0x0001 , CMD_CH2 = 0x0002 , CMD_CH3 = 0x0003 , CMD_CH4 = 0x0004 , CMD_CH5 = 0x0005 , CMD_CH6 = 0x0006 , CMD_CH7 = 0x0007 , CMD_CH8 = 0x0008 , CMD_CH9 = 0x0009 , CMD_CH10 = 0x000A , CMD_CH11 = 0x000B , CMD_CH12 = 0x000C , CMD_CH13 = 0x000D , CMD_CH14 = 0x000E , CMD_CH15 = 0x000F , CMD_ABORT = 0x0010 , CMD_END = 0x0011 , CMD_CLEAR_ALARM = 0x0012 , CMD_CLEAR_DATA = 0x0013 , CMD_RESET = 0x0014 , CMD_CLEAR_REG = 0x0015 , CMD_RELOAD = 0x0016 , TBD = 0x0017 , CMD_SS = 0x2000 , CMD_SC = 0x2001 , CMD_MM = 0x2002 , CMD_MC = 0x2003 , CMD_MS = 0x2004 , CMD_BURST_DATA = 0x2005 , CMD_CALC_CRC_CONFG = 0x2006 , CMD_CALC_CRC_COEF = 0x2007 , CMD_CALC_CRC_FAC = 0x2008 } |
using | ch_setting_t = uint16_t[ 4 ] |
typedef struct NAFE13388_Base::_reference_point | reference_point |
typedef struct NAFE13388_Base::_ref_points | ref_points |
![]() | |
using | raw_t = int32_t |
using | microvolt_t = double |
Public Member Functions | |
NAFE13388_Base (int nINT, int DRDY, int SYN, int nRESET) | |
virtual | ~NAFE13388_Base () |
virtual void | boot (void) |
virtual void | reset (bool hardware_reset=false) |
virtual void | logical_ch_config (int ch, uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t cc3) |
virtual void | logical_ch_config (int ch, const uint16_t(&cc)[4]) |
virtual void | logical_ch_disable (int ch) |
virtual int32_t | adc_read (int ch) |
virtual void | start (int ch) |
virtual void | command (uint16_t com) |
virtual void | reg (Register16 r, uint16_t value) |
virtual void | reg (Register24 r, uint32_t value) |
virtual uint16_t | reg (Register16 r) |
virtual uint32_t | reg (Register24 r) |
template<typename T> | |
uint32_t | bit_op (T rg, uint32_t mask, uint32_t value) |
uint32_t | part_number (void) |
uint8_t | revision_number (void) |
uint64_t | serial_number (void) |
float | temperature (void) |
void | gain_offset_coeff (const ref_points &ref) |
void | recalibrate (int pga_gain_index, int channel_selection=15, int input_select=0, double reference_source_voltage=0, bool use_positive_side=true) |
void | blink_leds (void) |
![]() | |
AFE_base (int nINT, int DRDY, int SYN, int nRESET) | |
virtual | ~AFE_base () |
virtual void | begin (void) |
template<class T> | |
T | read (int ch, float delay=default_delay) |
template<> | |
int32_t | read (int ch, float delay) |
template<> | |
double | read (int ch, float delay) |
![]() | |
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) |
Private Member Functions | |
double | calc_delay (int ch) |
Friends | |
template<class T> | |
T | operator+ (const T &rn, const int n) |
template<class T> | |
T | operator+ (const int n, const T &rn) |
Additional Inherited Members | |
![]() | |
int | enabled_channels |
double | coeff_uV [16] |
double | ch_delay [16] |
![]() | |
static constexpr float | immidiate_read = -1.0 |
static constexpr float | default_delay = INFINITY |
static double | delay_accuracy = 1.1 |
![]() | |
int | bit_count (uint32_t value) |
![]() | |
int | pin_nINT |
int | pin_DRDY |
int | pin_SYN |
int | pin_nRESET |
using NAFE13388_Base::ch_setting_t = uint16_t[ 4 ] |
typedef struct NAFE13388_Base::_ref_points NAFE13388_Base::ref_points |
typedef struct NAFE13388_Base::_reference_point NAFE13388_Base::reference_point |
enum NAFE13388_Base::Command : uint16_t |
|
strong |
|
strong |
NAFE13388_Base::NAFE13388_Base | ( | int | nINT, |
int | DRDY, | ||
int | SYN, | ||
int | nRESET ) |
Constructor to create a AFE_base instance
Definition at line 82 of file AFE_NXP.cpp.
Referenced by NAFE13388::NAFE13388(), and NAFE13388_UIM::NAFE13388_UIM().
|
virtual |
Destractor
Definition at line 87 of file AFE_NXP.cpp.
|
virtual |
ADC channel read
ch | logical channel number (0 ~ 15) |
Implements AFE_base.
Definition at line 210 of file AFE_NXP.cpp.
|
inline |
Register bit operation
overwrite bits i a register
reg | register specified by Register16 or Register24 member |
mask | mask bits |
reg | value to over write |
Definition at line 410 of file AFE_NXP.h.
Referenced by logical_ch_config(), and logical_ch_disable().
void NAFE13388_Base::blink_leds | ( | void | ) |
Blinks LEDs on GPIO pins
Definition at line 370 of file AFE_NXP.cpp.
|
virtual |
|
private |
Definition at line 151 of file AFE_NXP.cpp.
Referenced by logical_ch_config().
|
virtual |
com | "Comand" type or uint16_t value |
Definition at line 221 of file AFE_NXP.cpp.
Referenced by boot(), calc_delay(), logical_ch_config(), recalibrate(), reset(), and start().
void NAFE13388_Base::gain_offset_coeff | ( | const ref_points & | ref | ) |
Gain and offset coefficient customization
Sets gain and offset coefficients with given target ADC read-out values at two reference voltaeg points
ref | struct to define the target coefficient index and two reference poins and reference pre-calibrated coeffs |
Definition at line 270 of file AFE_NXP.cpp.
|
virtual |
Configure logical channel
ch | logical channel number (0 ~ 15) |
cc | array for CH_CONFIG0, CH_CONFIG1, CH_CONFIG2 and CH_CONFIG3 values |
Implements AFE_base.
Definition at line 129 of file AFE_NXP.cpp.
|
virtual |
Configure logical channel
ch | logical channel number (0 ~ 15) |
cc0 | 16bit value to be set CH_CONFIG0 register (0x20) |
cc1 | 16bit value to be set CH_CONFIG1 register (0x21) |
cc2 | 16bit value to be set CH_CONFIG2 register (0x22) |
cc3 | 16bit value to be set CH_CONFIG3 register (0x23) |
Implements AFE_base.
Definition at line 196 of file AFE_NXP.cpp.
Referenced by logical_ch_config(), and recalibrate().
|
virtual |
Logical channel disable
ch | logical channel number (0 ~ 15) |
Implements AFE_base.
Definition at line 202 of file AFE_NXP.cpp.
Referenced by recalibrate().
uint32_t NAFE13388_Base::part_number | ( | void | ) |
void NAFE13388_Base::recalibrate | ( | int | pga_gain_index, |
int | channel_selection = 15, | ||
int | input_select = 0, | ||
double | reference_source_voltage = 0, | ||
bool | use_positive_side = true ) |
On-board calibration with specified input and voltage
Updates coefficients at pga_gain_index
pga_gain_index | PGA gain index to measure and update the coefficients |
channel_selection | Logical channel number for calibration use |
reference_source_voltage | Reference voltage. This is not required if internal reference is used |
input_select | Physical input channel selection. It will use internal voltage reference if this value is 0 |
use_positive_side | Physical input channel selection AnP or AnN |
Definition at line 302 of file AFE_NXP.cpp.
|
virtual |
Read register
Reads register. Register width is selected by reg type (Register16 ot Register24)
reg | register specified by Register16 member |
Definition at line 236 of file AFE_NXP.cpp.
|
virtual |
Write register
Writes register. Register width is selected by reg type (Register16 ot Register24)
reg | register specified by Register16 member |
Definition at line 226 of file AFE_NXP.cpp.
Referenced by adc_read(), bit_op(), NAFE13388_UIM::blink_leds(), boot(), calc_delay(), gain_offset_coeff(), logical_ch_config(), part_number(), recalibrate(), reset(), revision_number(), serial_number(), and temperature().
|
virtual |
Read register
Reads register. Register width is selected by reg type (Register16 ot Register24)
reg | register specified by Register24 member |
Definition at line 241 of file AFE_NXP.cpp.
|
virtual |
Write register
Writes register. Register width is selected by reg type (Register16 ot Register24)
reg | register specified by Register24 member |
Definition at line 231 of file AFE_NXP.cpp.
|
virtual |
uint8_t NAFE13388_Base::revision_number | ( | void | ) |
uint64_t NAFE13388_Base::serial_number | ( | void | ) |
Read serial number
Definition at line 256 of file AFE_NXP.cpp.
Referenced by serial_number().
|
virtual |
Start ADC
ch | logical channel number (0 ~ 15) |
Implements AFE_base.
Definition at line 215 of file AFE_NXP.cpp.
float NAFE13388_Base::temperature | ( | void | ) |
|
friend |
|
friend |