TLI493D  2.0.1
With this Sensor, you can detect the position of a Joystick etc. without any additional mechanical components. You just have to provide a magnet that is fixed to a movable component.
Tli493d_conf.h
Go to the documentation of this file.
1 #ifndef TLI493D_CONF_H_INCLUDED
2 #define TLI493D_CONF_H_INCLUDED
3 
4 #include "RegMask.h"
5 
6 #ifndef TRUE
7 #define TRUE 1
8 #endif
9 #ifndef FALSE
10 #define FALSE 0
11 #endif
12 
13 //master contrlled mode should be used in combination with power down mode
14 #define TLI493D_DEFAULTMODE MASTERCONTROLLEDMODE
15 
16 #define TLI493D_STARTUPDELAY 60
17 #define TLI493D_RESETDELAY 30
18 
19 #define TLI493D_NUM_OF_REGMASKS 51
20 #define TLI493D_NUM_OF_ACCMODES 4
21 #define TLI493D_MSB_MASK 0x07F8
22 #define TLI493D_LSB_MASK 0x0007
23 #define TLI493D_MAX_WU_THR 2048
24 #define TLI493D_MEASUREMENT_READOUT 7
25 
26 #define TLI493D_B_MULT_FULL 1.0/7.7
27 #define TLI493D_B_MULT_X2 1.0/15.4
28 #define TLI493D_B_MULT_X4 1.0/30.8
29 #define TLI493D_B_MULT_FULL_LOW 2.08 //for 8 bit resolution
30 #define TLI493D_TEMP_MULT 0.24 //range 0.21 to 0.27
31 #define TLI493D_TEMP_MULT_LOW 3.84 //for 8 bit resolution
32 #define TLI493D_TEMP_OFFSET 1180 //range 1000 to 1360
33 #define TLI493D_TEMP_25 25 //room temperature offset
34 
35 namespace tli493d
36 {
42 {
43  BX1 = 0,
44  BX2,
45  BY1,
46  BY2,
47  BZ1,
48  BZ2,
51  ID, //diagnosis
52  P, FF, CF, T, PD_3, PD_0, FRM, //diagnosis (Diag)
53  XL, //wake up threshold MSBs
54  XH,
55  YL,
56  YH,
57  ZL,
58  ZH,
59  WA, WU, XH2, XL2, //wake up (WU) & wake up threshold LSBs
60  TST, YH2, YL2, //TMode
61  PH, ZH2, ZL2, //TPhase
62  DT, AM, TRIG, X2, TL_mag, CP, //Config
63  FP, IICadr, PR, CA, INT, MODE, //MOD1
65  PRD, Res13, //MOD2
66  Res14, X4, //Config2
68  Ver,
69 };
70 
72 {
75  MOD1_REGISTER = 0x11,
76  MOD2_REGISTER = 0x13,
78 };
79 
80 const RegMask_t regMasks[] = {
81  { REGMASK_READ, 0, 0xFF, 0 }, // R_BX1
82  { REGMASK_READ, 4, 0xF0, 4 }, // R_BX2
83  { REGMASK_READ, 1, 0xFF, 0 }, // R_BY1
84  { REGMASK_READ, 4, 0x0F, 0 }, // R_BY2
85  { REGMASK_READ, 2, 0xFF, 0 }, // R_BZ1
86  { REGMASK_READ, 5, 0x0F, 0 }, // R_BZ2
87  { REGMASK_READ, 3, 0xFF, 0 }, // R_TEMP1
88  { REGMASK_READ, 5, 0xC0, 6 }, // R_TEMP2
89  { REGMASK_READ, 5, 0x30, 4 }, // ID
90 
91  { REGMASK_READ, 6, 0x80, 7}, // P
92  { REGMASK_READ, 6, 0x40, 6}, // FF
93  { REGMASK_READ, 6, 0x20, 5}, // CF
94  { REGMASK_READ, 6, 0x10, 4}, // T
95  { REGMASK_READ, 6, 0x08, 3}, // PD3
96  { REGMASK_READ, 6, 0x04, 2}, // PD0
97  { REGMASK_READ, 6, 0x03, 0}, // FRM
98 
99  { REGMASK_WRITE, 7, 0xFF, 0}, // XL (MSB)
100  { REGMASK_WRITE, 8, 0xFF, 0}, // XH
101  { REGMASK_WRITE, 9, 0xFF, 0}, // YL
102  { REGMASK_WRITE, 10, 0xFF, 0}, // YH
103  { REGMASK_WRITE, 11, 0xFF, 0}, // ZL
104  { REGMASK_WRITE, 12, 0xFF, 0}, // ZH
105 
106  { REGMASK_READ, 13, 0x80, 7}, // WA
107  { REGMASK_WRITE, 13, 0x40, 6}, // WU
108  { REGMASK_WRITE, 13, 0x38, 3}, // XH2 (LSB)
109  { REGMASK_WRITE, 13, 0x07, 0}, // XL2
110 
111  { REGMASK_WRITE, 14, 0xC0, 6 }, // TST
112  { REGMASK_WRITE, 14, 0x38, 3 }, // YH2
113  { REGMASK_WRITE, 14, 0x07, 0 }, // YL2
114 
115  { REGMASK_WRITE, 15, 0xC0, 6 }, // PH
116  { REGMASK_WRITE, 15, 0x38, 3 }, // ZH2
117  { REGMASK_WRITE, 15, 0x07, 0 }, // ZL2
118 
119  // CONFIG
120  { REGMASK_WRITE, 16, 0x80, 7}, // DT
121  { REGMASK_WRITE, 16, 0x40, 6}, // AM
122  { REGMASK_WRITE, 16, 0x30, 4}, // TRIG
123  { REGMASK_WRITE, 16, 0x08, 3}, // X2
124  { REGMASK_WRITE, 16, 0x06, 1}, // TL_mag
125  { REGMASK_WRITE, 16, 0x01, 0}, // CP
126 
127  // MOD1
128  { REGMASK_WRITE, 17, 0x80, 7}, // FP
129  { REGMASK_WRITE, 17, 0x60, 5}, // IICadr
130  { REGMASK_WRITE, 17, 0x10, 4}, // PR
131  { REGMASK_WRITE, 17, 0x08, 3}, // CA
132  { REGMASK_WRITE, 17, 0x04, 2}, // INT
133  { REGMASK_WRITE, 17, 0x03, 0}, // MODE
134 
135  { REGMASK_WRITE, 18, 0xFF, 0 }, // Res12
136  { REGMASK_WRITE, 19, 0xE0, 5 }, // PRD
137  { REGMASK_WRITE, 19, 0x1F, 0 }, // RES13
138 
139  // CONFIG2
140  { REGMASK_WRITE, 20, 0xFE, 7 }, // Res14
141  { REGMASK_WRITE, 20, 0x01, 0 }, // X4
142 
143  { REGMASK_WRITE, 21, 0xFF, 0 }, // Res15
144 
145  { REGMASK_READ, 22, 0xFF, 0 }, // Version
146 
147 };
148 
149 const uint8_t resetValues[] = {
150  //register 05h, 11h uses different reset values for different types
151  //12h 14h 15h are reserved and initialized to 0
152  //version register (16h) can be initialized with C9h, D9h or E9h
153  0x80,
154  0x80, 0x80, 0x80, 0x00, 0x00,
155  0x60, 0x80, 0x7F, 0x80, 0x7F,
156  0x80, 0x7F, 0x38, 0x38, 0x38,
157  0x01, 0x00, 0x00, 0x00, 0x00,
158  0x00, 0xC9,
159 };
160 }
161 #endif
Definition: Tli493d_conf.h:61
Definition: Tli493d_conf.h:60
Definition: Tli493d_conf.h:55
Definition: Tli493d_conf.h:63
Definition: Tli493d_conf.h:65
Definition: Tli493d_conf.h:48
Registers_e
Definition: Tli493d_conf.h:41
RegisterAddr_e
Definition: Tli493d_conf.h:71
Definition: Tli493d_conf.h:63
Definition: Tli493d_conf.h:65
Definition: Tli493d_conf.h:52
Definition: Tli493d_conf.h:50
Definition: Tli493d_conf.h:63
Definition: Tli493d_conf.h:59
Definition: Tli493d_conf.h:52
Definition: Tli493d_conf.h:54
Definition: Tli493d_conf.h:62
Definition: Tli493d_conf.h:63
Definition: Tli493d_conf.h:62
Definition: Tli493d_conf.h:52
Definition: Tli493d_conf.h:63
Definition: Tli493d_conf.h:66
const uint8_t resetValues[]
Definition: Tli493d_conf.h:149
Definition: Tli493d_conf.h:59
Definition: BusInterface.h:9
Definition: Tli493d_conf.h:43
Definition: RegMask.h:12
Definition: Tli493d_conf.h:62
Definition: Tli493d_conf.h:46
Definition: Tli493d_conf.h:58
Definition: Tli493d_conf.h:61
Definition: Tli493d_conf.h:68
Definition: Tli493d_conf.h:77
Definition: Tli493d_conf.h:51
Definition: Tli493d_conf.h:57
Definition: Tli493d_conf.h:60
Definition: Tli493d_conf.h:66
Definition: Tli493d_conf.h:44
Definition: Tli493d_conf.h:74
Definition: Tli493d_conf.h:52
Definition: Tli493d_conf.h:52
const RegMask_t regMasks[]
Definition: Tli493d_conf.h:80
Definition: Tli493d_conf.h:62
Definition: Tli493d_conf.h:76
Definition: Tli493d_conf.h:49
Definition: Tli493d_conf.h:59
Definition: Tli493d_conf.h:52
Definition: Tli493d_conf.h:67
Definition: Tli493d_conf.h:45
Definition: Tli493d_conf.h:62
Definition: Tli493d_conf.h:64
Definition: Tli493d_conf.h:59
Definition: Tli493d_conf.h:53
Definition: Tli493d_conf.h:56
Definition: Tli493d_conf.h:47
Definition: Tli493d_conf.h:73
Definition: Tli493d_conf.h:63
Definition: Tli493d_conf.h:75
Definition: Tli493d_conf.h:61
Definition: Tli493d_conf.h:62
Definition: Tli493d_conf.h:52
Definition: Tli493d_conf.h:60