HF-AS5047U Driver  0.1.0-dev
HF-AS5047U C++ Driver
Loading...
Searching...
No Matches
as5047u_registers.hpp
Go to the documentation of this file.
1
6#pragma once
7#include <cstdint>
8
9namespace AS5047U_REG {
11// //
12// ██╗ ██╗ ██████╗ ██╗ █████╗ ████████╗██╗██╗ ███████╗ //
13// ██║ ██║██╔═══██╗██║ ██╔══██╗╚══██╔══╝██║██║ ██╔════╝ //
14// ██║ ██║██║ ██║██║ ███████║ ██║ ██║██║ █████╗ //
15// ╚██╗ ██╔╝██║ ██║██║ ██╔══██║ ██║ ██║██║ ██╔══╝ //
16// ╚████╔╝ ╚██████╔╝███████╗██║ ██║ ██║ ██║███████╗███████╗ //
17// ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝ //
18// //
19// ██████╗ ███████╗ ██████╗ ██╗███████╗████████╗███████╗██████╗ ███████╗ //
20// ██╔══██╗██╔════╝██╔════╝ ██║██╔════╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝ //
21// ██████╔╝█████╗ ██║ ███╗██║███████╗ ██║ █████╗ ██████╔╝███████╗ //
22// ██╔══██╗██╔══╝ ██║ ██║██║╚════██║ ██║ ██╔══╝ ██╔══██╗╚════██║ //
23// ██║ ██║███████╗╚██████╔╝██║███████║ ██║ ███████╗██║ ██║███████║ //
24// ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ //
25// //
26//===========================================================================//
27// VOLATILE REGISTERS //
28//===========================================================================//
30
41struct NOP {
42 static constexpr uint16_t ADDRESS = 0x0000;
43 union {
44 uint16_t value;
45 struct {
46 uint16_t reserved : 16; // No specific bits defined for NOP
48 };
49};
50
80struct ERRFL {
81 static constexpr uint16_t ADDRESS = 0x0001;
82 union {
83 uint16_t value;
84 struct {
85 uint16_t AGC_warning : 1;
86 uint16_t MagHalf : 1;
87 uint16_t P2RAM_warning : 1;
88 uint16_t P2RAM_error : 1;
89 uint16_t Framing_error : 1;
90 uint16_t Command_error : 1;
91 uint16_t CRC_error : 1;
92 uint16_t WDTST : 1;
93 uint16_t unused_8 : 1;
94 uint16_t OffCompNotFinished : 1;
95 uint16_t CORDIC_Overflow : 1;
96 uint16_t reserved_11_15 : 5;
98 };
99};
100
132struct PROG {
133 static constexpr uint16_t ADDRESS = 0x0003;
134 union {
135 uint16_t value;
136 struct {
137 uint16_t PROGEN : 1;
138 uint16_t reserved_1 : 1;
139 uint16_t OTPREF : 1;
140 uint16_t PROGOTP : 1;
141 uint16_t reserved_4 : 1;
142 uint16_t reserved_5 : 1;
143 uint16_t PROGVER : 1;
144 uint16_t reserved_7 : 1;
145 uint16_t reserved_8_15 : 8;
147 };
148};
149
180struct DIA {
181 static constexpr uint16_t ADDRESS = 0x3FF5;
182 union {
183 uint16_t value;
184 struct {
185 uint16_t VDD_mode : 1;
186 uint16_t LoopsFinished : 1;
188 uint16_t Comp_l : 1;
189 uint16_t Comp_h : 1;
190 uint16_t MagHalf_flag : 1;
191 uint16_t CosOff_fin : 1;
192 uint16_t SinOff_fin : 1;
193 uint16_t OffComp_finished : 1;
194 uint16_t AGC_finished : 1;
195 uint16_t unused_10 : 1;
196 uint16_t SPI_cnt : 2;
197 uint16_t reserved_13_15 : 3;
199 };
200};
201
215struct AGC {
216 static constexpr uint16_t ADDRESS = 0x3FF9;
217 union {
218 uint16_t value;
219 struct {
220 uint16_t AGC_value : 8;
221 uint16_t reserved_8_15 : 8;
223 };
224};
225
236struct SINDATA {
237 static constexpr uint16_t ADDRESS = 0x3FFA;
238 union {
239 uint16_t value;
240 struct {
241 int16_t SINDATA : 16; // Raw signed sine data
243 };
244};
245
256struct COSDATA {
257 static constexpr uint16_t ADDRESS = 0x3FFB;
258 union {
259 uint16_t value;
260 struct {
261 int16_t COSDATA : 16; // Raw signed cosine data
263 };
264};
265
281struct VEL {
282 static constexpr uint16_t ADDRESS = 0x3FFC;
283 union {
284 uint16_t value;
285 struct {
286 uint16_t VEL_value : 14;
287 uint16_t reserved_14_15 : 2;
289 };
290};
291
306struct MAG {
307 static constexpr uint16_t ADDRESS = 0x3FFD;
308 union {
309 uint16_t value;
310 struct {
311 uint16_t MAG_value : 14;
312 uint16_t reserved_14_15 : 2;
314 };
315};
316
330struct ANGLEUNC {
331 static constexpr uint16_t ADDRESS = 0x3FFE;
332 union {
333 uint16_t value;
334 struct {
335 uint16_t ANGLEUNC_value : 14;
336 uint16_t reserved_14_15 : 2;
338 };
339};
340
352 static constexpr uint16_t ADDRESS = 0x3FD0;
353 union {
354 uint16_t value;
355 struct {
356 uint16_t ECC_s : 7; // Calculated ECC checksum
357 uint16_t reserved_7_15 : 9; // Reserved bits
359 };
360};
361
377struct ANGLECOM {
378 static constexpr uint16_t ADDRESS = 0x3FFF;
379 union {
380 uint16_t value;
381 struct {
382 uint16_t ANGLECOM_value : 14;
383 uint16_t reserved_14_15 : 2;
385 };
386};
387
389// ███╗ ██╗ ██████╗ ███╗ ██╗ //
390// ████╗ ██║██╔═══██╗████╗ ██║ //
391// ██╔██╗ ██║██║ ██║██╔██╗ ██║ //
392// ██║╚██╗██║██║ ██║██║╚██╗██║ //
393// ██║ ╚████║╚██████╔╝██║ ╚████║ //
394// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═══╝ //
395// //
396// ██╗ ██╗ ██████╗ ██╗ █████╗ ████████╗██╗██╗ ███████╗ //
397// ██║ ██║██╔═══██╗██║ ██╔══██╗╚══██╔══╝██║██║ ██╔════╝ //
398// ██║ ██║██║ ██║██║ ███████║ ██║ ██║██║ █████╗ //
399// ╚██╗ ██╔╝██║ ██║██║ ██╔══██║ ██║ ██║██║ ██╔══╝ //
400// ╚████╔╝ ╚██████╔╝███████╗██║ ██║ ██║ ██║███████╗███████╗ //
401// ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝ //
402// //
403// ██████╗ ███████╗ ██████╗ ██╗███████╗████████╗███████╗██████╗ ███████╗ //
404// ██╔══██╗██╔════╝██╔════╝ ██║██╔════╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝ //
405// ██████╔╝█████╗ ██║ ███╗██║███████╗ ██║ █████╗ ██████╔╝███████╗ //
406// ██╔══██╗██╔══╝ ██║ ██║██║╚════██║ ██║ ██╔══╝ ██╔══██╗╚════██║ //
407// ██║ ██║███████╗╚██████╔╝██║███████║ ██║ ███████╗██║ ██║███████║ //
408// ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ //
409// //
410// ██╗ ██████╗ ████████╗██████╗ ██╗ //
411// ██║██╔═══██╗╚══██╔══╝██╔══██╗██║ //
412// ██║██║ ██║ ██║ ██████╔╝██║ //
413// ╚═╝██║ ██║ ██║ ██╔═══╝ ╚═╝ //
414// ██╗╚██████╔╝ ██║ ██║ ██╗ //
415// ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ //
416//=============================================================================//
417// NON-VOLATILE REGISTERS (OTP) //
418//=============================================================================//
419// Addresses 0x0015–0x001B (DISABLE, ZPOSM, ZPOSL, SETTINGS1/2/3, ECC) support
420// soft write: SPI read/write works multiple times; content is in volatile shadow
421// and is lost after hardware reset. OTP programming (PROG register) burns the
422// current shadow content permanently; after that, values survive reset and
423// cannot be overwritten. Default state is 0x0000 if never programmed.
425
439struct DISABLE {
440 static constexpr uint16_t ADDRESS = 0x0015;
441 union {
442 uint16_t value;
443 struct {
444 uint16_t UVW_off : 1;
445 uint16_t ABI_off : 1;
446 uint16_t reserved_2_5 : 4;
447 uint16_t FILTER_disable : 1;
448 uint16_t reserved_7 : 1;
449 uint16_t reserved_8_15 : 8;
451 };
452
454 enum class UVWMode : uint8_t {
455 Normal = 0,
456 Tristate = 1
457 };
458
460 enum class ABIMode : uint8_t {
461 Normal = 0,
462 Tristate = 1
463 };
464
466 enum class FilterMode : uint8_t {
467 Enabled = 0,
468 Disabled = 1
469 };
470};
471
482struct ZPOSM {
483 static constexpr uint16_t ADDRESS = 0x0016;
484 union {
485 uint16_t value;
486 struct {
487 uint16_t ZPOSM_bits : 8;
488 uint16_t reserved_8_15 : 8;
490 };
491};
492
505struct ZPOSL {
506 static constexpr uint16_t ADDRESS = 0x0017;
507 union {
508 uint16_t value;
509 struct {
510 uint16_t ZPOSL_bits : 6;
511 uint16_t Dia1_en : 1;
512 uint16_t Dia2_en : 1;
513 uint16_t reserved_8_15 : 8;
515 };
516};
517
533struct SETTINGS1 {
534 static constexpr uint16_t ADDRESS = 0x0018;
535 union {
536 uint16_t value;
537 struct {
538 uint16_t K_max : 3;
539 uint16_t K_min : 3;
540 uint16_t Dia3_en : 1;
541 uint16_t Dia4_en : 1;
542 uint16_t reserved_8_15 : 8;
544 };
546 enum class AdaptiveFilterKmax : uint8_t {
547 Code0 = 0b000,
548 Code1 = 0b001,
549 Code2 = 0b010,
550 Code3 = 0b011,
551 Code4 = 0b100,
552 Code5 = 0b101,
553 Code6 = 0b110,
554 Code7 = 0b111
555 };
557 enum class AdaptiveFilterKmin : uint8_t {
558 Code0 = 0b000,
559 Code1 = 0b001,
560 Code2 = 0b010,
561 Code3 = 0b011,
562 Code4 = 0b100,
563 Code5 = 0b101,
564 Code6 = 0b110,
565 Code7 = 0b111
566 };
567};
568
597struct SETTINGS2 {
598 static constexpr uint16_t ADDRESS = 0x0019;
599 union {
600 uint16_t value;
601 struct {
602 uint16_t IWIDTH : 1;
603 uint16_t NOISESET : 1;
604 uint16_t DIR : 1;
605 uint16_t UVW_ABI : 1;
606 uint16_t DAECDIS : 1;
607 uint16_t ABI_DEC : 1;
608 uint16_t Data_select : 1;
609 uint16_t PWMon : 1;
610 uint16_t reserved_8_15 : 8;
612 };
614 enum class IndexWidth : uint8_t {
615 Width3LSB = 0,
616 Width1LSB = 1
617 };
619 enum class NoiseSetting : uint8_t {
620 Normal = 0,
621 HighTemp = 1
622 };
624 enum class RotationDirection : uint8_t {
625 Normal = 0,
626 Inverted = 1
627 };
629 enum class OutputInterfaceMode : uint8_t {
630 ABI_PWM_on_W = 0,
631 UVW_PWM_on_I = 1
632 };
634 enum class DynamicCompensation : uint8_t {
635 Enabled = 0,
636 Disabled = 1
637 };
639 enum class ABICountMode : uint8_t {
640 Binary = 0,
641 Decimal = 1
642 };
644 enum class AngleOutputSource : uint8_t {
645 UseANGLECOM = 0,
646 UseANGLEUNC = 1
647 };
649 enum class PWMMode : uint8_t {
650 Disabled = 0,
651 Enabled = 1
652 };
653};
654
655static_assert(sizeof(SETTINGS2) == 2, "SETTINGS2 must be 2 bytes");
656
691struct SETTINGS3 {
692 static constexpr uint16_t ADDRESS = 0x001A;
693 union {
694 uint16_t value;
695 struct {
696 uint16_t UVWPP : 3;
697 uint16_t HYS : 2;
698 uint16_t ABIRES : 3;
699 uint16_t reserved_8_15 : 8;
701 };
703 enum class UVWPolePairs : uint8_t {
704 PP1 = 0b000,
705 PP2 = 0b001,
706 PP3 = 0b010,
707 PP4 = 0b011,
708 PP5 = 0b100,
709 PP6 = 0b101,
710 PP7 = 0b110,
711 PP7_ALT = 0b111
712 };
714 enum class Hysteresis : uint8_t {
715 LSB_1 = 0b00,
716 LSB_2 = 0b01,
717 LSB_3 = 0b10,
718 NONE = 0b11
719 };
722 enum class ABIResolution : uint8_t {
723 Code0 = 0b000,
724 Code1 = 0b001,
725 Code2 = 0b010,
726 Code3 = 0b011,
727 Code4 = 0b100,
728 Code5 = 0b101,
729 Code6 = 0b110,
730 Code7 = 0b111
731 };
732};
733
734static_assert(sizeof(SETTINGS3) == 2, "SETTINGS3 must be 2 bytes");
735
750struct ECC {
751 static constexpr uint16_t ADDRESS = 0x001B;
752 union {
753 uint16_t value;
754 struct {
755 uint16_t ECC_chsum : 7;
756 uint16_t ECC_en : 1;
757 uint16_t reserved_8_15 : 8;
759 };
760
762 enum class ECCMode : uint8_t {
763 Disabled = 0,
764 Enabled = 1
765 };
766};
767
768} // namespace AS5047U_REG
Definition as5047u_registers.hpp:9
AGC – Automatic Gain Control register (0x3FF9, read-only)
Definition as5047u_registers.hpp:215
uint16_t value
Definition as5047u_registers.hpp:218
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:216
uint16_t reserved_8_15
Definition as5047u_registers.hpp:221
uint16_t AGC_value
Definition as5047u_registers.hpp:220
struct AS5047U_REG::AGC::@12::@14 bits
ANGLECOM – Compensated Angle register (0x3FFF, read-only)
Definition as5047u_registers.hpp:377
uint16_t value
Definition as5047u_registers.hpp:380
uint16_t reserved_14_15
Definition as5047u_registers.hpp:383
struct AS5047U_REG::ANGLECOM::@33::@35 bits
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:378
uint16_t ANGLECOM_value
Definition as5047u_registers.hpp:382
ANGLEUNC – Uncompensated Angle register (0x3FFE, read-only)
Definition as5047u_registers.hpp:330
uint16_t value
Definition as5047u_registers.hpp:333
uint16_t ANGLEUNC_value
Definition as5047u_registers.hpp:335
uint16_t reserved_14_15
Definition as5047u_registers.hpp:336
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:331
struct AS5047U_REG::ANGLEUNC::@27::@29 bits
COSDATA – Raw digital cosine channel data (0x3FFB, default 0x0000)
Definition as5047u_registers.hpp:256
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:257
struct AS5047U_REG::COSDATA::@18::@20 bits
int16_t COSDATA
Definition as5047u_registers.hpp:261
uint16_t value
Definition as5047u_registers.hpp:259
DIA – Diagnostic register (0x3FF5, read-only)
Definition as5047u_registers.hpp:180
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:181
uint16_t reserved_13_15
Definition as5047u_registers.hpp:197
struct AS5047U_REG::DIA::@9::@11 bits
uint16_t LoopsFinished
Definition as5047u_registers.hpp:186
uint16_t SPI_cnt
Definition as5047u_registers.hpp:196
uint16_t Comp_h
Definition as5047u_registers.hpp:189
uint16_t CORDIC_overflow_flag
Definition as5047u_registers.hpp:187
uint16_t CosOff_fin
Definition as5047u_registers.hpp:191
uint16_t value
Definition as5047u_registers.hpp:183
uint16_t OffComp_finished
Definition as5047u_registers.hpp:193
uint16_t SinOff_fin
Definition as5047u_registers.hpp:192
uint16_t MagHalf_flag
Definition as5047u_registers.hpp:190
uint16_t VDD_mode
Definition as5047u_registers.hpp:185
uint16_t unused_10
Definition as5047u_registers.hpp:195
uint16_t Comp_l
Definition as5047u_registers.hpp:188
uint16_t AGC_finished
Definition as5047u_registers.hpp:194
DISABLE – Outputs and filter disable register (0x0015, default 0x0000)
Definition as5047u_registers.hpp:439
UVWMode
UVW output mode (UVW_off bit)
Definition as5047u_registers.hpp:454
uint16_t reserved_8_15
Definition as5047u_registers.hpp:449
uint16_t value
Definition as5047u_registers.hpp:442
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:440
uint16_t ABI_off
Definition as5047u_registers.hpp:445
FilterMode
Output filter control (FILTER_disable bit)
Definition as5047u_registers.hpp:466
uint16_t reserved_7
Definition as5047u_registers.hpp:448
uint16_t UVW_off
Definition as5047u_registers.hpp:444
uint16_t reserved_2_5
Definition as5047u_registers.hpp:446
ABIMode
ABI output mode (ABI_off bit)
Definition as5047u_registers.hpp:460
struct AS5047U_REG::DISABLE::@36::@38 bits
uint16_t FILTER_disable
Definition as5047u_registers.hpp:447
ECC_Checksum – ECC checksum register (0x3FD0, default 0x0000)
Definition as5047u_registers.hpp:351
struct AS5047U_REG::ECC_Checksum::@30::@32 bits
uint16_t value
Definition as5047u_registers.hpp:354
uint16_t ECC_s
Definition as5047u_registers.hpp:356
uint16_t reserved_7_15
Definition as5047u_registers.hpp:357
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:352
ECC – ECC Settings register (0x001B, default 0x0000)
Definition as5047u_registers.hpp:750
uint16_t ECC_en
Definition as5047u_registers.hpp:756
uint16_t ECC_chsum
Definition as5047u_registers.hpp:755
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:751
ECCMode
ECC enable/disable (ECC_en bit)
Definition as5047u_registers.hpp:762
struct AS5047U_REG::ECC::@54::@56 bits
uint16_t reserved_8_15
Definition as5047u_registers.hpp:757
uint16_t value
Definition as5047u_registers.hpp:753
ERRFL – Error Flag register (0x0001, default 0x0000)
Definition as5047u_registers.hpp:80
uint16_t CORDIC_Overflow
Definition as5047u_registers.hpp:95
uint16_t CRC_error
Definition as5047u_registers.hpp:91
uint16_t P2RAM_warning
Definition as5047u_registers.hpp:87
uint16_t Command_error
Definition as5047u_registers.hpp:90
uint16_t unused_8
Definition as5047u_registers.hpp:93
uint16_t Framing_error
Definition as5047u_registers.hpp:89
uint16_t AGC_warning
Definition as5047u_registers.hpp:85
uint16_t WDTST
Definition as5047u_registers.hpp:92
uint16_t OffCompNotFinished
Definition as5047u_registers.hpp:94
uint16_t reserved_11_15
Definition as5047u_registers.hpp:96
struct AS5047U_REG::ERRFL::@3::@5 bits
uint16_t MagHalf
Definition as5047u_registers.hpp:86
uint16_t value
Definition as5047u_registers.hpp:83
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:81
uint16_t P2RAM_error
Definition as5047u_registers.hpp:88
MAG – CORDIC Magnitude register (0x3FFD, read-only)
Definition as5047u_registers.hpp:306
uint16_t MAG_value
Definition as5047u_registers.hpp:311
uint16_t reserved_14_15
Definition as5047u_registers.hpp:312
uint16_t value
Definition as5047u_registers.hpp:309
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:307
struct AS5047U_REG::MAG::@24::@26 bits
NOP – No Operation register (0x0000, default 0x0000)
Definition as5047u_registers.hpp:41
struct AS5047U_REG::NOP::@0::@2 bits
uint16_t value
Definition as5047u_registers.hpp:44
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:42
uint16_t reserved
Definition as5047u_registers.hpp:46
PROG – OTP programming control register (0x0003, default 0x0000)
Definition as5047u_registers.hpp:132
uint16_t reserved_4
Definition as5047u_registers.hpp:141
uint16_t reserved_8_15
Definition as5047u_registers.hpp:145
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:133
uint16_t OTPREF
Definition as5047u_registers.hpp:139
uint16_t PROGOTP
Definition as5047u_registers.hpp:140
uint16_t reserved_5
Definition as5047u_registers.hpp:142
struct AS5047U_REG::PROG::@6::@8 bits
uint16_t PROGVER
Definition as5047u_registers.hpp:143
uint16_t reserved_7
Definition as5047u_registers.hpp:144
uint16_t value
Definition as5047u_registers.hpp:135
uint16_t reserved_1
Definition as5047u_registers.hpp:138
uint16_t PROGEN
Definition as5047u_registers.hpp:137
SETTINGS1 – Custom setting register 1 (0x0018, default 0x0000)
Definition as5047u_registers.hpp:533
uint16_t K_min
Definition as5047u_registers.hpp:539
AdaptiveFilterKmin
Enumerated options for K_min field (adaptive filter min coefficient)
Definition as5047u_registers.hpp:557
AdaptiveFilterKmax
Enumerated options for K_max field (adaptive filter max coefficient)
Definition as5047u_registers.hpp:546
struct AS5047U_REG::SETTINGS1::@45::@47 bits
uint16_t Dia3_en
Definition as5047u_registers.hpp:540
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:534
uint16_t Dia4_en
Definition as5047u_registers.hpp:541
uint16_t K_max
Definition as5047u_registers.hpp:538
uint16_t reserved_8_15
Definition as5047u_registers.hpp:542
uint16_t value
Definition as5047u_registers.hpp:536
SETTINGS2 – Custom setting register 2 (0x0019, default 0x0000)
Definition as5047u_registers.hpp:597
AngleOutputSource
Angle data source for 0x3FFF output (Data_select bit)
Definition as5047u_registers.hpp:644
uint16_t reserved_8_15
Definition as5047u_registers.hpp:610
uint16_t DIR
Definition as5047u_registers.hpp:604
uint16_t Data_select
Definition as5047u_registers.hpp:608
uint16_t ABI_DEC
Definition as5047u_registers.hpp:607
struct AS5047U_REG::SETTINGS2::@48::@50 bits
uint16_t DAECDIS
Definition as5047u_registers.hpp:606
NoiseSetting
High-temperature noise reduction setting (NOISESET bit)
Definition as5047u_registers.hpp:619
ABICountMode
ABI resolution counting mode (ABI_DEC bit) – binary vs decimal pulses per revolution.
Definition as5047u_registers.hpp:639
uint16_t value
Definition as5047u_registers.hpp:600
uint16_t PWMon
Definition as5047u_registers.hpp:609
uint16_t IWIDTH
Definition as5047u_registers.hpp:602
IndexWidth
Index pulse width options (IWIDTH bit)
Definition as5047u_registers.hpp:614
RotationDirection
Rotation direction setting (DIR bit) – defines incremental output phase sense.
Definition as5047u_registers.hpp:624
DynamicCompensation
Dynamic angle error compensation (DAEC) mode (DAECDIS bit)
Definition as5047u_registers.hpp:634
PWMMode
PWM output enable (PWMon bit)
Definition as5047u_registers.hpp:649
uint16_t UVW_ABI
Definition as5047u_registers.hpp:605
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:598
OutputInterfaceMode
Output interface selection for ABI vs UVW and PWM mapping (UVW_ABI bit)
Definition as5047u_registers.hpp:629
uint16_t NOISESET
Definition as5047u_registers.hpp:603
SETTINGS3 – Custom setting register 3 (0x001A, default 0x0000)
Definition as5047u_registers.hpp:691
UVWPolePairs
UVW pole pair count (UVWPP) options for BLDC commutation.
Definition as5047u_registers.hpp:703
uint16_t HYS
Definition as5047u_registers.hpp:697
Hysteresis
Incremental output hysteresis (HYS) settings:
Definition as5047u_registers.hpp:714
uint16_t UVWPP
Definition as5047u_registers.hpp:696
struct AS5047U_REG::SETTINGS3::@51::@53 bits
uint16_t value
Definition as5047u_registers.hpp:694
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:692
ABIResolution
ABI interface resolution (ABIRES) codes – see description for binary vs decimal mode interpretation.
Definition as5047u_registers.hpp:722
uint16_t reserved_8_15
Definition as5047u_registers.hpp:699
uint16_t ABIRES
Definition as5047u_registers.hpp:698
SINDATA – Raw digital sine channel data (0x3FFA, default 0x0000)
Definition as5047u_registers.hpp:236
int16_t SINDATA
Definition as5047u_registers.hpp:241
struct AS5047U_REG::SINDATA::@15::@17 bits
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:237
uint16_t value
Definition as5047u_registers.hpp:239
VEL – Velocity register (0x3FFC, read-only)
Definition as5047u_registers.hpp:281
struct AS5047U_REG::VEL::@21::@23 bits
uint16_t reserved_14_15
Definition as5047u_registers.hpp:287
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:282
uint16_t value
Definition as5047u_registers.hpp:284
uint16_t VEL_value
Definition as5047u_registers.hpp:286
ZPOSL – Zero Position LSB register (0x0017, default 0x0000)
Definition as5047u_registers.hpp:505
struct AS5047U_REG::ZPOSL::@42::@44 bits
uint16_t Dia2_en
Definition as5047u_registers.hpp:512
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:506
uint16_t Dia1_en
Definition as5047u_registers.hpp:511
uint16_t ZPOSL_bits
Definition as5047u_registers.hpp:510
uint16_t value
Definition as5047u_registers.hpp:508
uint16_t reserved_8_15
Definition as5047u_registers.hpp:513
ZPOSM – Zero Position MSB register (0x0016, default 0x0000)
Definition as5047u_registers.hpp:482
struct AS5047U_REG::ZPOSM::@39::@41 bits
uint16_t reserved_8_15
Definition as5047u_registers.hpp:488
uint16_t ZPOSM_bits
Definition as5047u_registers.hpp:487
static constexpr uint16_t ADDRESS
Definition as5047u_registers.hpp:483
uint16_t value
Definition as5047u_registers.hpp:485