Go to the documentation of this file.
9 #include "../Zmod/zmod.h"
11 #ifndef _ZMODADC1410_H
12 #define _ZMODADC1410_H
16 #define ZMODADC1410_REG_ADDR_TRIG 0x1C // TRIG register address
17 #define ZMODADC1410_REG_ADDR_WINDOW 0x20 // WINDOW register address
18 #define ZMODADC1410_REG_ADDR_SC1LGMULTCOEF 0x24 // SC1LGMULTCOEF register address
19 #define ZMODADC1410_REG_ADDR_SC1LGADDCOEF 0x28 // SC1LGADDCOEF register address
20 #define ZMODADC1410_REG_ADDR_SC1HGMULTCOEF 0x2C // SC1HGMULTCOEF register address
21 #define ZMODADC1410_REG_ADDR_SC1HGADDCOEF 0x30 // SC1HGADDCOEF register address
22 #define ZMODADC1410_REG_ADDR_SC2LGMULTCOEF 0x34 // SC2LGMULTCOEF register address
23 #define ZMODADC1410_REG_ADDR_SC2LGADDCOEF 0x38 // SC2LGADDCOEF register address
24 #define ZMODADC1410_REG_ADDR_SC2HGMULTCOEF 0x3C // SC2HGMULTCOEF register address
25 #define ZMODADC1410_REG_ADDR_SC2HGADDCOEF 0x40 // SC2HGADDCOEF register address
30 #define ZMODADC1410_REGFLD_CR_RUNSTOP ZMOD_REG_ADDR_CR, 4, 1 // RUNSTOP field of CR register
31 #define ZMODADC1410_REGFLD_CR_TEST_MODE ZMOD_REG_ADDR_CR, 5, 1 // TEST_MODE field of CR register
34 #define ZMODADC1410_REGFLD_SR_BUF_FULL ZMOD_REG_ADDR_SR, 21, 1 // BUF_FULL field of SR register
36 #define ZMODADC1410_REGFLD_IER_BUF_FULL ZMOD_REG_ADDR_IER, 21, 1 // BUF_FULL field of IER register
38 #define ZMODADC1410_REGFLD_TRIG_CHANNEL ZMODADC1410_REG_ADDR_TRIG, 0, 2 // CHANNEL field of TRIG register
39 #define ZMODADC1410_REGFLD_TRIG_MODE ZMODADC1410_REG_ADDR_TRIG, 2, 2 // MODE field of TRIG register
40 #define ZMODADC1410_REGFLD_TRIG_EDGE ZMODADC1410_REG_ADDR_TRIG, 4, 1 // EDGE field of TRIG register
41 #define ZMODADC1410_REGFLD_TRIG_LEVEL ZMODADC1410_REG_ADDR_TRIG, 5, 14 // LEVEL field of TRIG register
42 #define ZMODADC1410_REGFLD_TRIG_SC1_AC_DC ZMODADC1410_REG_ADDR_TRIG, 19, 1 // SC1_AC_DC field of TRIG register
43 #define ZMODADC1410_REGFLD_TRIG_SC2_AC_DC ZMODADC1410_REG_ADDR_TRIG, 20, 1 // SC2_AC_DC field of TRIG register
44 #define ZMODADC1410_REGFLD_TRIG_SC1_HG_LG ZMODADC1410_REG_ADDR_TRIG, 21, 1 // SC1_HG_LG field of TRIG register
45 #define ZMODADC1410_REGFLD_TRIG_SC2_HG_LG ZMODADC1410_REG_ADDR_TRIG, 22, 1 // SC2_HG_LG field of TRIG register
46 #define ZMODADC1410_REGFLD_TRIG_SYNC ZMODADC1410_REG_ADDR_TRIG, 23, 4 // SYNC field of TRIG register
48 #define ZMODADC1410_REGFLD_WINDOW_WND ZMODADC1410_REG_ADDR_WINDOW, 0, 26 // WND field of WINDOW register
50 #define ZMODADC1410_REGFLD_SC1LGMULTCOEF_VAL ZMODADC1410_REG_ADDR_SC1LGMULTCOEF, 0, 18 // VAL field of SC1LGMULTCOEF register
52 #define ZMODADC1410_REGFLD_SC1HGMULTCOEF_VAL ZMODADC1410_REG_ADDR_SC1HGMULTCOEF, 0, 18 // VAL field of SC1HGMULTCOEF register
54 #define ZMODADC1410_REGFLD_SC1LGADDCOEF_VAL ZMODADC1410_REG_ADDR_SC1LGADDCOEF, 0, 18 // VAL field of SC1LGADDCOEF register
56 #define ZMODADC1410_REGFLD_SC1HGADDCOEF_VAL ZMODADC1410_REG_ADDR_SC1HGADDCOEF, 0, 18 // VAL field of SC1HGADDCOEF register
58 #define ZMODADC1410_REGFLD_SC2LGMULTCOEF_VAL ZMODADC1410_REG_ADDR_SC2LGMULTCOEF, 0, 18 // VAL field of SC2LGMULTCOEF register
60 #define ZMODADC1410_REGFLD_SC2HGMULTCOEF_VAL ZMODADC1410_REG_ADDR_SC2HGMULTCOEF, 0, 18 // VAL field of SC2HGMULTCOEF register
62 #define ZMODADC1410_REGFLD_SC2LGADDCOEF_VAL ZMODADC1410_REG_ADDR_SC2LGADDCOEF, 0, 18 // VAL field of SC2LGADDCOEF register
64 #define ZMODADC1410_REGFLD_SC2HGADDCOEF_VAL ZMODADC1410_REG_ADDR_SC2HGADDCOEF, 0, 18 // VAL field of SC2HGADDCOEF register
66 #define ZMODADC1410_CALIB_USER_ADDR 0x7000
67 #define ZMODADC1410_CALIB_FACT_ADDR 0x8100
69 #define ZMODADC1410_CALIB_ID 0xAD
75 unsigned char nop[68];
78 } __attribute__((__packed__)) CALIBECLYPSEADC;
82 uint32_t *interruptBuffer;
84 uint8_t acquirePolling(uint32_t* buffer, uint8_t channel, uint8_t mode, uint32_t level, uint32_t edge, uint32_t window,
size_t length);
86 uint8_t acquireInterrupt(uint32_t* buffer, uint8_t channel, uint8_t mode, uint32_t level, uint32_t edge, uint32_t window,
size_t length);
92 ZMODADC1410(uintptr_t baseAddress, uintptr_t dmaAddress, uintptr_t iicAddress, uintptr_t flashAddress,
int zmodInterrupt,
int dmaInterrupt);
95 uint16_t
channelData(uint8_t channel, uint32_t data);
99 void setTrigger(uint8_t channel, uint8_t mode, int16_t level, uint8_t edge, uint32_t window);
107 uint8_t
acquireTriggeredPolling(uint32_t* buffer, uint8_t channel, uint32_t level, uint32_t edge, uint32_t window,
size_t length);
110 uint8_t
acquireTriggeredInterrupt(uint32_t* buffer, uint8_t channel, uint32_t level, uint32_t edge, uint32_t window,
size_t length);
115 uint8_t
autoTestRamp(uint8_t channel, uint32_t level, uint32_t edge, uint32_t window,
size_t length);
118 void setGain(uint8_t channel, uint8_t gain);
119 void setCoupling(uint8_t channel, uint8_t coupling);
124 void setCalibValues(uint8_t channel, uint8_t gain,
float valG,
float valA);
void setGain(uint8_t channel, uint8_t gain)
Definition: zmodadc1410.cpp:524
void setTransferLength(size_t length)
Definition: zmodadc1410.cpp:104
virtual int readUserCalib()
Definition: zmodadc1410.cpp:404
uint8_t autoTestRamp(uint8_t channel, uint32_t level, uint32_t edge, uint32_t window, size_t length)
Definition: zmodadc1410.cpp:451
void start()
Definition: zmodadc1410.cpp:229
void waitForBufferFullPolling()
Definition: zmodadc1410.cpp:204
Definition: zmodadc1410.h:80
int16_t signedChannelData(uint8_t channel, uint32_t data)
Definition: zmodadc1410.cpp:131
uint8_t acquireImmediatePolling(uint32_t *buffer, size_t length)
Definition: zmodadc1410.cpp:282
void freeChannelsBuffer(uint32_t *buf, size_t length)
Definition: zmodadc1410.cpp:70
uint16_t channelData(uint8_t channel, uint32_t data)
Definition: zmodadc1410.cpp:117
uint8_t acquireTriggeredInterrupt(uint32_t *buffer, uint8_t channel, uint32_t level, uint32_t edge, uint32_t window, size_t length)
Definition: zmodadc1410.cpp:356
void setCalibValues(uint8_t channel, uint8_t gain, float valG, float valA)
Definition: zmodadc1410.cpp:560
int32_t computeCoefMult(float cg, uint8_t gain)
Definition: zmodadc1410.cpp:583
void processInterrupt() override
Definition: zmodadc1410.cpp:384
float getVoltFromSignedRaw(int32_t raw, uint8_t gain)
Definition: zmodadc1410.cpp:611
void setCoupling(uint8_t channel, uint8_t coupling)
Definition: zmodadc1410.cpp:540
void stop()
Definition: zmodadc1410.cpp:242
uint32_t * allocChannelsBuffer(size_t length)
Definition: zmodadc1410.cpp:58
void enableBufferFullInterrupt(uint8_t enBuffFullInt)
Definition: zmodadc1410.cpp:219
uint8_t acquireTriggeredPolling(uint32_t *buffer, uint8_t channel, uint32_t level, uint32_t edge, uint32_t window, size_t length)
Definition: zmodadc1410.cpp:265
uint8_t isBufferFull()
Definition: zmodadc1410.cpp:194
void setTrigger(uint8_t channel, uint8_t mode, int16_t level, uint8_t edge, uint32_t window)
Definition: zmodadc1410.cpp:88
Definition: zmodadc1410.h:71
int32_t computeCoefAdd(float ca, uint8_t gain)
Definition: zmodadc1410.cpp:597
ZMODADC1410(uintptr_t baseAddress, uintptr_t dmaAddress, uintptr_t iicAddress, uintptr_t flashAddress, int zmodInterrupt, int dmaInterrupt)
Definition: zmodadc1410.cpp:44
uint8_t acquireImmediateInterrupt(uint32_t *buffer, uint8_t channel, size_t length)
Definition: zmodadc1410.cpp:373