HF-TMC9660 Driver 0.1.0-dev
Hardware Agnostic C++ Driver for the TMC9660
Loading...
Searching...
No Matches
tmc9660_adc.hpp
Go to the documentation of this file.
1
6#pragma once
7#include <cstdint>
8
17namespace tmc9660 {
18namespace register_mode {
28namespace ADC {
29
71struct SRC_CONFIG {
72 static constexpr uint8_t ADDRESS = 0x01;
73
75 enum class Mux2Detour : uint8_t {
76 NO_CHANGE = 0,
77 DETOUR = 1
78 };
79
81 enum class MuxConfig : uint8_t {
82 OFF = 0,
83 FIRST = 1,
84 SECOND = 2,
85 THIRD = 3
86 };
87
88 union {
89 uint32_t value;
90 struct {
91 // ADC3
93 uint32_t : 1;
97 // ADC2
99 uint32_t ADC2_MUX3_DIS : 1;
103 // ADC1
105 uint32_t : 1;
109 // ADC0
111 uint32_t ADC0_MUX3_DIS : 1;
116 };
117};
118
141struct SETUP {
142 static constexpr uint8_t ADDRESS = 0x02;
143
145 enum class ADCShiftSample : uint8_t {
146 SHIFT_500NS = 0,
147 SHIFT_600NS = 1,
148 SHIFT_700NS = 2,
149 SHIFT_800NS = 3,
150 SHIFT_900NS = 4,
151 SHIFT_1000NS = 5,
152 SHIFT_1100NS = 6,
153 SHIFT_1200NS = 7,
154 SHIFT_1300NS = 8,
155 SHIFT_1400NS = 9,
156 SHIFT_1500NS = 10,
157 SHIFT_1600NS = 11,
158 SHIFT_1700NS = 12,
159 SHIFT_1800NS = 13,
160 SHIFT_1900NS = 14,
161 SHIFT_2000NS = 15
162 };
163
164 union {
165 uint32_t value;
166 struct {
167 uint32_t : 16;
169 uint32_t : 12;
171 };
172};
173
209 static constexpr uint8_t ADDRESS = 0x05;
210
211 union {
212 uint32_t value;
213 struct {
214 uint32_t RDY_ADC_0 : 1;
215 uint32_t RDY_ADC_1 : 1;
216 uint32_t RDY_ADC_2 : 1;
217 uint32_t RDY_ADC_3 : 1;
218 uint32_t : 4;
219 uint32_t ADC0_WTCHDG_FAIL : 1;
220 uint32_t ADC1_WTCHDG_FAIL : 1;
221 uint32_t ADC2_WTCHDG_FAIL : 1;
222 uint32_t ADC3_WTCHDG_FAIL : 1;
223 uint32_t ADC0_MUXSEQ_FAIL : 1;
224 uint32_t ADC1_MUXSEQ_FAIL : 1;
225 uint32_t ADC2_MUXSEQ_FAIL : 1;
226 uint32_t ADC3_MUXSEQ_FAIL : 1;
227 uint32_t : 16;
229 };
230};
231
266struct CSA_SETUP {
267 static constexpr uint8_t ADDRESS = 0x07;
268
270 enum class CSAFilterLength : uint8_t {
271 OFF = 0,
272 LENGTH_2 = 1,
273 LENGTH_4 = 2,
274 LENGTH_8 = 3
275 };
276
278 enum class CSAFilterBW : uint8_t {
279 BW_0U55 = 0,
280 BW_0U75 = 1,
281 BW_1U00 = 2,
282 BW_1U35 = 3
283 };
284
286 enum class CSAGain : uint8_t {
287 X5 = 0,
288 X10 = 1,
289 X20 = 2,
290 X40 = 3
291 };
292
293 union {
294 uint32_t value;
295 struct {
296 uint32_t CSA0_EN : 1;
297 uint32_t CSA1_EN : 1;
298 uint32_t CSA2_EN : 1;
299 uint32_t CSA3_EN : 1;
301 uint32_t CSA012_BYPASS : 1;
302 uint32_t : 1;
304 uint32_t CSA3_BYPASS : 1;
305 uint32_t : 1;
308 uint32_t : 0;
310 uint32_t : 12;
312 };
313};
314
315} // namespace ADC
316} // namespace register_mode
317} // namespace tmc9660
Definition bootloader_config.hpp:9
Current Sense Amplifier (CSA) Setup Register for current measurement configuration.
Definition tmc9660_adc.hpp:266
CSAGain
CSA gain settings.
Definition tmc9660_adc.hpp:286
CSAFilterBW
CSA bandwidth filter settings.
Definition tmc9660_adc.hpp:278
CSAFilterLength CSA_AZ_FLTLNGTH_EXP
Filter length exponent for AZ values.
Definition tmc9660_adc.hpp:309
CSAFilterLength
CSA AZ filter length exponent.
Definition tmc9660_adc.hpp:270
CSAGain CSA3_GAIN
Gain for CSA3.
Definition tmc9660_adc.hpp:303
uint32_t CSA0_EN
CSA0 enable.
Definition tmc9660_adc.hpp:296
struct tmc9660::register_mode::ADC::CSA_SETUP::@9::@11 bits
CSAFilterBW CSA012_FILT
BW filter for CSA0...2.
Definition tmc9660_adc.hpp:306
uint32_t CSA1_EN
CSA1 enable.
Definition tmc9660_adc.hpp:297
uint32_t CSA012_BYPASS
Bypass for CSA0...2.
Definition tmc9660_adc.hpp:301
uint32_t CSA3_BYPASS
Bypass for CSA3.
Definition tmc9660_adc.hpp:304
uint32_t CSA2_EN
CSA2 enable.
Definition tmc9660_adc.hpp:298
CSAFilterBW CSA3_FILT
BW filter for CSA3.
Definition tmc9660_adc.hpp:307
uint32_t CSA3_EN
CSA3 enable.
Definition tmc9660_adc.hpp:299
uint32_t value
Definition tmc9660_adc.hpp:294
static constexpr uint8_t ADDRESS
Register address (Block 1)
Definition tmc9660_adc.hpp:267
CSAGain CSA012_GAIN
Gain for CSA0...2.
Definition tmc9660_adc.hpp:300
ADC Setup Register for timing and operational configuration.
Definition tmc9660_adc.hpp:141
uint32_t value
Definition tmc9660_adc.hpp:165
ADCShiftSample ADC_SHIFT_SAMPLE
ADC sample time shift.
Definition tmc9660_adc.hpp:168
ADCShiftSample
ADC sample time shift options.
Definition tmc9660_adc.hpp:145
static constexpr uint8_t ADDRESS
Register address (Block 1)
Definition tmc9660_adc.hpp:142
struct tmc9660::register_mode::ADC::SETUP::@3::@5 bits
ADC Sources Configuration Register for input routing and multiplexer control.
Definition tmc9660_adc.hpp:71
MuxConfig ADC0_MUX2_CFG
Definition tmc9660_adc.hpp:112
MuxConfig ADC2_MUX0_CFG
Definition tmc9660_adc.hpp:102
MuxConfig ADC2_MUX1_CFG
Definition tmc9660_adc.hpp:101
MuxConfig ADC1_MUX1_CFG
Definition tmc9660_adc.hpp:107
MuxConfig ADC3_MUX2_CFG
Definition tmc9660_adc.hpp:94
struct tmc9660::register_mode::ADC::SRC_CONFIG::@0::@2 bits
uint32_t value
Definition tmc9660_adc.hpp:89
uint32_t ADC0_MUX3_DIS
Definition tmc9660_adc.hpp:111
Mux2Detour
MUX detour configuration.
Definition tmc9660_adc.hpp:75
@ NO_CHANGE
No changes to the measurement sequence.
@ DETOUR
Skip MUX2 measurement for a second MUX1 measurement.
MuxConfig
MUX configuration options.
Definition tmc9660_adc.hpp:81
@ SECOND
Sample MUX input second after trigger.
@ FIRST
Sample MUX input first after trigger.
@ THIRD
Sample MUX input third after trigger.
Mux2Detour ADC3_MUX2_DETOUR
Definition tmc9660_adc.hpp:92
MuxConfig ADC1_MUX2_CFG
Definition tmc9660_adc.hpp:106
MuxConfig ADC3_MUX1_CFG
Definition tmc9660_adc.hpp:95
MuxConfig ADC2_MUX2_CFG
Definition tmc9660_adc.hpp:100
uint32_t ADC2_MUX3_DIS
Definition tmc9660_adc.hpp:99
MuxConfig ADC3_MUX0_CFG
Definition tmc9660_adc.hpp:96
Mux2Detour ADC2_MUX2_DETOUR
Definition tmc9660_adc.hpp:98
MuxConfig ADC0_MUX0_CFG
Definition tmc9660_adc.hpp:114
MuxConfig ADC0_MUX1_CFG
Definition tmc9660_adc.hpp:113
static constexpr uint8_t ADDRESS
Register address (Block 1)
Definition tmc9660_adc.hpp:72
Mux2Detour ADC0_MUX2_DETOUR
Definition tmc9660_adc.hpp:110
MuxConfig ADC1_MUX0_CFG
Definition tmc9660_adc.hpp:108
Mux2Detour ADC1_MUX2_DETOUR
Definition tmc9660_adc.hpp:104
ADC Status Flags Register for monitoring ADC health and readiness.
Definition tmc9660_adc.hpp:208
uint32_t ADC0_MUXSEQ_FAIL
ADC0 sequence configuration error.
Definition tmc9660_adc.hpp:223
struct tmc9660::register_mode::ADC::STATUS_FLAGS::@6::@8 bits
static constexpr uint8_t ADDRESS
Register address (Block 1)
Definition tmc9660_adc.hpp:209
uint32_t ADC3_MUXSEQ_FAIL
ADC3 sequence configuration error.
Definition tmc9660_adc.hpp:226
uint32_t RDY_ADC_1
ADC1 ready.
Definition tmc9660_adc.hpp:215
uint32_t RDY_ADC_3
ADC3 ready.
Definition tmc9660_adc.hpp:217
uint32_t value
Definition tmc9660_adc.hpp:212
uint32_t ADC2_WTCHDG_FAIL
ADC2 watchdog fail.
Definition tmc9660_adc.hpp:221
uint32_t ADC2_MUXSEQ_FAIL
ADC2 sequence configuration error.
Definition tmc9660_adc.hpp:225
uint32_t ADC3_WTCHDG_FAIL
ADC3 watchdog fail.
Definition tmc9660_adc.hpp:222
uint32_t RDY_ADC_0
ADC0 ready.
Definition tmc9660_adc.hpp:214
uint32_t ADC0_WTCHDG_FAIL
ADC0 watchdog fail.
Definition tmc9660_adc.hpp:219
uint32_t ADC1_WTCHDG_FAIL
ADC1 watchdog fail.
Definition tmc9660_adc.hpp:220
uint32_t ADC1_MUXSEQ_FAIL
ADC1 sequence configuration error.
Definition tmc9660_adc.hpp:224
uint32_t RDY_ADC_2
ADC2 ready.
Definition tmc9660_adc.hpp:216