MAX30001G  1.2.0
Arduino library for MAX30001G ECG and BIOZ AFE
max30001g_globals.h
Go to the documentation of this file.
1 #ifndef MAX30001G_GLOBALS_H
2 #define MAX30001G_GLOBALS_H
3 
4 #include <stdint.h>
5 #include "RingBuffer.h"
6 #include "max30001g_defs.h"
7 #include "max30001g_typedefs.h"
9 
10 // Interrupt Flags
11 extern volatile bool ecg_available;
12 extern volatile bool bioz_available;
13 extern volatile bool rtor_available;
14 
15 
16 // Data Buffers
17 extern RingBuffer<float, 128> ECG_data;
18 extern RingBuffer<float, 128> BIOZ_data;
19 extern RingBuffer<float, 16> RTOR_data;
20 extern RingBuffer<ImpedanceSpectrum, 4> BIOZ_spectrum;
21 
22 extern int ecg_counter;
23 extern int bioz_counter;
24 extern int rtor_counter;
25 extern float rr_interval;
26 
27 // Impedance Measurement Data
31 
32 // Error & Status Flags
33 extern volatile bool ecg_lead_off;
34 extern volatile bool ecg_fast_recovery_occurred;
35 extern volatile bool ecg_overflow_occurred;
36 extern volatile bool bioz_cgm_occurred;
37 extern volatile bool bioz_undervoltage_occurred;
38 extern volatile bool bioz_overvoltage_occurred;
39 extern volatile bool bioz_overflow_occurred;
40 extern volatile bool leads_on_detected;
41 extern volatile bool pll_unlocked_occurred;
42 
43 extern volatile bool afe_irq_pending;
44 extern volatile bool afe_irq1_pending;
45 extern volatile bool afe_irq2_pending;
46 
47 extern bool over_voltage_detected;
48 extern bool under_voltage_detected;
49 extern bool valid_data_detected;
50 extern bool EOF_detected;
51 
52 // MAX30001 Timing and Measurement Settings
53 extern float ECG_samplingRate;
54 extern float BIOZ_samplingRate;
55 extern float RtoR_resolution;
56 extern float RtoR_delay;
57 extern float CAL_resolution;
58 extern float CAL_fcal;
59 extern float fmstr;
60 extern float tres;
61 extern float ECG_progression;
62 extern float ECG_hpf;
63 extern float ECG_lpf;
64 extern float ECG_latency;
65 extern int ECG_gain;
66 extern int BIOZ_gain;
67 extern int BIOZ_cgmag;
68 extern uint32_t BIOZ_cmres;
69 extern uint16_t RBIASV_res;
70 extern float BIOZ_frequency;
71 extern float BIOZ_phase;
72 extern float BIOZ_ahpf; // [Hz] BIOZ analog high pass filter
73 extern float BIOZ_dlpf; // [Hz] BIOZ digital low pass filter
74 extern float BIOZ_dhpf; // [Hz] BIOZ digital high pass filter
75 extern float BIOZ_test_rnom; // [Ohm] BIOZ test resistor nominal value
76 extern float BIOZ_test_rmod; // [Ohm] BIOZ test resistor modulation value
77 extern float BIOZ_test_frequency; // [Hz] BIOZ test frequency for modulation
78 extern int32_t V_ref;
79 extern int32_t V_AVDD;
80 extern float RCAL_freq;
81 
82 // MAX30001 Configuration and Status Registers
98 
99 #endif // MAX30001G_GLOBALS_H
#define MAX30001_BIOZ_NUM_FREQUENCIES
Definition: max30001g_defs.h:11
bool valid_data_detected
Definition: max30001g_globals.cpp:43
uint16_t RBIASV_res
Definition: max30001g_globals.cpp:65
int32_t V_AVDD
Definition: max30001g_globals.cpp:75
float RtoR_resolution
Definition: max30001g_globals.cpp:51
max30001_info_reg_t info
Definition: max30001g_globals.cpp:85
float ECG_samplingRate
Definition: max30001g_globals.cpp:49
max30001_cnfg_cal_reg_t cnfg_cal
Definition: max30001g_globals.cpp:87
float rr_interval
Definition: max30001g_globals.cpp:21
float BIOZ_dlpf
Definition: max30001g_globals.cpp:70
float ECG_latency
Definition: max30001g_globals.cpp:60
max30001_cnfg_ecg_reg_t cnfg_ecg
Definition: max30001g_globals.cpp:89
int rtor_counter
Definition: max30001g_globals.cpp:20
RingBuffer< ImpedanceSpectrum, 4 > BIOZ_spectrum
Definition: max30001g_globals.cpp:16
max30001_cnfg_rtor1_reg_t cnfg_rtor1
Definition: max30001g_globals.cpp:93
float ECG_lpf
Definition: max30001g_globals.cpp:59
max30001_en_int_reg_t en_int2
Definition: max30001g_globals.cpp:82
int ECG_gain
Definition: max30001g_globals.cpp:61
float BIOZ_dhpf
Definition: max30001g_globals.cpp:69
float tres
Definition: max30001g_globals.cpp:56
float ECG_progression
Definition: max30001g_globals.cpp:57
volatile bool afe_irq1_pending
Definition: max30001g_globals.cpp:38
float impedance_magnitude[MAX30001_BIOZ_NUM_FREQUENCIES]
Definition: max30001g_globals.cpp:23
volatile bool rtor_available
Definition: max30001g_globals.cpp:11
volatile bool bioz_overvoltage_occurred
Definition: max30001g_globals.cpp:32
volatile bool bioz_cgm_occurred
Definition: max30001g_globals.cpp:30
volatile bool ecg_available
Definition: max30001g_globals.cpp:9
float fmstr
Definition: max30001g_globals.cpp:55
int32_t V_ref
Definition: max30001g_globals.cpp:74
volatile bool afe_irq2_pending
Definition: max30001g_globals.cpp:39
bool EOF_detected
Definition: max30001g_globals.cpp:44
max30001_cnfg_bioz_lc_reg_t cnfg_bioz_lc
Definition: max30001g_globals.cpp:92
max30001_cnfg_rtor2_reg_t cnfg_rtor2
Definition: max30001g_globals.cpp:94
volatile bool afe_irq_pending
Definition: max30001g_globals.cpp:37
max30001_cnfg_emux_reg_t cnfg_emux
Definition: max30001g_globals.cpp:88
float BIOZ_test_rmod
Definition: max30001g_globals.cpp:72
float BIOZ_frequency
Definition: max30001g_globals.cpp:66
max30001_mngr_int_reg_t mngr_int
Definition: max30001g_globals.cpp:83
volatile bool ecg_overflow_occurred
Definition: max30001g_globals.cpp:29
volatile bool leads_on_detected
Definition: max30001g_globals.cpp:34
volatile bool bioz_available
Definition: max30001g_globals.cpp:10
int BIOZ_gain
Definition: max30001g_globals.cpp:62
max30001_status_reg_t status
Definition: max30001g_globals.cpp:80
float ECG_hpf
Definition: max30001g_globals.cpp:58
RingBuffer< float, 16 > RTOR_data
Definition: max30001g_globals.cpp:15
float BIOZ_test_rnom
Definition: max30001g_globals.cpp:71
int ecg_counter
Definition: max30001g_globals.cpp:18
max30001_cnfg_bmux_reg_t cnfg_bmux
Definition: max30001g_globals.cpp:90
uint32_t BIOZ_cmres
Definition: max30001g_globals.cpp:64
bool under_voltage_detected
Definition: max30001g_globals.cpp:42
int BIOZ_cgmag
Definition: max30001g_globals.cpp:63
float CAL_fcal
Definition: max30001g_globals.cpp:54
float BIOZ_ahpf
Definition: max30001g_globals.cpp:68
max30001_cnfg_gen_reg_t cnfg_gen
Definition: max30001g_globals.cpp:86
float BIOZ_phase
Definition: max30001g_globals.cpp:67
volatile bool pll_unlocked_occurred
Definition: max30001g_globals.cpp:35
float RCAL_freq
Definition: max30001g_globals.cpp:76
max30001_en_int_reg_t en_int1
Definition: max30001g_globals.cpp:81
float impedance_phase[MAX30001_BIOZ_NUM_FREQUENCIES]
Definition: max30001g_globals.cpp:24
int bioz_counter
Definition: max30001g_globals.cpp:19
float BIOZ_test_frequency
Definition: max30001g_globals.cpp:73
volatile bool ecg_lead_off
Definition: max30001g_globals.cpp:27
volatile bool bioz_undervoltage_occurred
Definition: max30001g_globals.cpp:31
float impedance_frequency[MAX30001_BIOZ_NUM_FREQUENCIES]
Definition: max30001g_globals.cpp:25
max30001_mngr_dyn_reg_t mngr_dyn
Definition: max30001g_globals.cpp:84
bool over_voltage_detected
Definition: max30001g_globals.cpp:41
float CAL_resolution
Definition: max30001g_globals.cpp:53
RingBuffer< float, 128 > BIOZ_data
Definition: max30001g_globals.cpp:14
max30001_cnfg_bioz_reg_t cnfg_bioz
Definition: max30001g_globals.cpp:91
RingBuffer< float, 128 > ECG_data
Definition: max30001g_globals.cpp:13
float RtoR_delay
Definition: max30001g_globals.cpp:52
volatile bool bioz_overflow_occurred
Definition: max30001g_globals.cpp:33
float BIOZ_samplingRate
Definition: max30001g_globals.cpp:50
volatile bool ecg_fast_recovery_occurred
Definition: max30001g_globals.cpp:28
CNFG_BIOZ_LC (0x1A) page 57.
Definition: max30001g_regs_typedefs.h:300
CNFG_BIOZ (0x18) page 54.
Definition: max30001g_regs_typedefs.h:275
CNFG_BMUX (0x17) page 52.
Definition: max30001g_regs_typedefs.h:248
CNFG_CAL (0x12) page 49.
Definition: max30001g_regs_typedefs.h:184
CNFG_ECG (0x15) page 51.
Definition: max30001g_regs_typedefs.h:227
CNFG_EMUX (0x14) page 50.
Definition: max30001g_regs_typedefs.h:206
CNFG_GEN (0x10) page 47.
Definition: max30001g_regs_typedefs.h:155
CNFG_RTOR1 (0x1D) page 59.
Definition: max30001g_regs_typedefs.h:323
CNFG_RTOR2 (0x1E) page 59.
Definition: max30001g_regs_typedefs.h:344
EN_INT (0x02) and (0x03) page 43 we can attach two interrupt lines to functions of the MAX30001 multi...
Definition: max30001g_regs_typedefs.h:59
INFO (0x0F) page 42.
Definition: max30001g_regs_typedefs.h:132
MNGR_DYN (0x05) page 45.
Definition: max30001g_regs_typedefs.h:113
MNGR_INT (0x04) page 44.
Definition: max30001g_regs_typedefs.h:88
STATUS (0x01) page 42.
Definition: max30001g_regs_typedefs.h:11