AFE_NXP_Arduino 0.2.0
AFE (NAFE13388) device operation sample code for Arduino
Loading...
Searching...
No Matches
AFE_NXP.cpp
Go to the documentation of this file.
1#include "AFE_NXP.h"
2
3/* NAFE13388_Base class ******************************************/
4
5NAFE13388_Base::NAFE13388_Base() : enabled_channels( 0 )
6{
7}
8
12
14{
15 reset();
16 boot();
17}
18
20{
21 write_r16( 0x0010 );
22 write_r16( 0x002A, 0x0000 );
23 write_r16( 0x002B, 0x0000 );
24 write_r16( 0x002C, 0x0000 );
25 write_r16( 0x002F, 0x0000 );
26 write_r16( 0x0029, 0x0000 );
27 delay( 1 );
28 write_r16( 0x0030, 0x0010 );
29 delay( 1 );
30}
31
33{
34 write_r16( 0x0014 );
35 delay( 1 );
36}
37
38void NAFE13388_Base::board_init( int _pin_nINT, int _pin_DRDY, int _pin_SYN, int _pin_nRESET )
39{
40 pinMode( _pin_nINT, INPUT );
41 pinMode( _pin_DRDY, INPUT );
42 pinMode( _pin_SYN, OUTPUT );
43 pinMode( _pin_nRESET, OUTPUT );
44
45 digitalWrite( _pin_SYN, 1 );
46 digitalWrite( _pin_nRESET, 1 );
47
48 Serial.print("_pin_nRESET = ");
49 Serial.println(_pin_nRESET);
50
51}
52
53void NAFE13388_Base::logical_ch_config( int ch, uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t cc3 )
54{
55 constexpr double pga_gain[] = { 0.2, 0.4, 0.8, 1, 2, 4, 8, 16 };
56
57 write_r16( ch );
58
59 write_r16( 0x0020, cc0 );
60 write_r16( 0x0021, cc1 );
61 write_r16( 0x0022, cc2 );
62 write_r16( 0x0023, cc3 );
63
64 uint16_t mask = 1;
65 uint16_t bits = read_r16( 0x0024 ) | (mask << ch);
67
68 for ( int i = 0; i < 16; i++ ) {
69 if ( bits & (mask << i) )
71 }
72
73 write_r16( 0x0024, bits );
74
75 coeff_uV[ ch ] = ((10.0 / (double)(1L << 24)) / pga_gain[ (cc0 >> 5) & 0x7 ]) * 1e6;
76}
77
78double NAFE13388_Base::read( int ch )
79{
80 write_r16( ch );
81 write_r16( 0x2000 );
82 delay( 100 );
83
84 return read_r24( 0x2040 + ch ) * coeff_uV[ ch ];
85};
86
87/* NAFE13388 class ******************************************/
88
93
97
98/* NAFE13388_UIM class ******************************************/
99
104
108
109//double NAFE13388::coeff_uV[ 16 ];
virtual void boot(void)
Definition AFE_NXP.cpp:19
virtual void board_init(int _pin_nINT, int _pin_DRDY, int _pin_SYN, int _pin_nRESET)
Definition AFE_NXP.cpp:38
virtual void logical_ch_config(int ch, uint16_t cc0, uint16_t cc1, uint16_t cc2, uint16_t cc3)
Definition AFE_NXP.cpp:53
int enabled_channels
Definition AFE_NXP.h:74
double coeff_uV[16]
Definition AFE_NXP.h:77
virtual void begin(void)
Definition AFE_NXP.cpp:13
virtual ~NAFE13388_Base()
Definition AFE_NXP.cpp:9
virtual double read(int ch)
Definition AFE_NXP.cpp:78
virtual void reset(void)
Definition AFE_NXP.cpp:32
static constexpr int pin_nINT
Definition AFE_NXP.h:174
static constexpr int pin_DRDY
Definition AFE_NXP.h:175
virtual ~NAFE13388_UIM()
Definition AFE_NXP.cpp:105
static constexpr int pin_SYN
Definition AFE_NXP.h:176
static constexpr int pin_nRESET
Definition AFE_NXP.h:177
virtual ~NAFE13388()
Definition AFE_NXP.cpp:94
static constexpr int pin_nINT
Definition AFE_NXP.h:127
static constexpr int pin_nRESET
Definition AFE_NXP.h:130
static constexpr int pin_DRDY
Definition AFE_NXP.h:128
static constexpr int pin_SYN
Definition AFE_NXP.h:129
int32_t read_r24(uint16_t reg)
uint16_t read_r16(uint16_t reg)
void write_r16(uint16_t reg)