1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
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
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
|
//###########################################################################
//
// FILE: F2837xD_sdfm_drivers.h
//
// TITLE: Defines and Macros for the SDFM driver Controller
//
//###########################################################################
// $TI Release: F2837xD Support Library v3.05.00.00 $
// $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
// $Copyright:
// Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the
// distribution.
//
// Neither the name of Texas Instruments Incorporated nor the names of
// its contributors may be used to endorse or promote products derived
// from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// $
//###########################################################################
#ifndef F2837xD_SDFM_DRIVERS_H
#define F2837xD_SDFM_DRIVERS_H
#ifdef __cplusplus
extern "C" {
#endif
//
// Defines
//
//
// This is used to select either SDFM module 1 & SDFM module 2
//
#define SDFM1 1 //Can be used to select SDFM module 1
#define SDFM2 2 //Can be used to select SDFM module 2
//
// Max OSR values of different modules
//
#define COMPARATOR_MAX_OSR 32 //Max OSR for comparator
#define DATA_FILTER_MAX_OSR 256 //Max OSR for Data filter
//
// Different Input Control modes
// These values can be passed as argument to Sdfm_configureInputCtrl()
//
#define MODE_0 0 //Used to select Mode0 :
//Modulator clock rate = Modulator data rate
#define MODE_1 1 //Used to select MODE1 :
//Modulator clock rate = (Modulator data rate / 2)
#define MODE_2 2 //Used to select MODE2 :
//Manchester encoded data
//(Modulator clock is encoded into data)
#define MODE_3 3 //Used to select MODE3 :
//Modulator clock rate = (2 x Modulator data rate)
//
// The following are values that can be passed to following functions
//
// (1) Sdfm_configureInputCtrl()
// (2) Sdfm_configureComparator()
// (3) Sdfm_configureData_filter()
// (4) Sdfm_configureInterrupt()
//
#define FILTER1 0x01 //Used to select filter1 for comparator or Data filter
#define FILTER2 0x02 //Used to select filter2 for comparator or Data filter
#define FILTER3 0x04 //Used to select filter3 for comparator or Data filter
#define FILTER4 0x08 //Used to select filter4 for comparator or Data filter
//
// The following are values that can be passed to Sdfm_configureData_filter()
//
#define FILTER_DISABLE 0 //Used to disable filter
#define FILTER_ENABLE 1 //Used to enable filter
//
// The following are values that can be passed to following functions
//
// (1) Sdfm_configureComparator()
// (2) Sdfm_configureData_filter()
//
#define SINCFAST 0x00 //Used to select Sincfast filter type for comparator
//or Data filter
#define SINC1 0x01 //Used to select Sinc1 filter type for comparator
//or Data filter
#define SINC2 0x02 //Used to select Sinc2 filter type for comparator
//or Data filter
#define SINC3 0x03 //Used to select Sinc3 filter type for comparator
//or Data filter
//
// Enable / Disable High-level threshold interrupt for Comparator filter output
// These values can be passed as argument to Sdfm_configureInterrupt()
//
#define IEH_DISABLE 0 //Used to disable over value interrupt to CPU
#define IEH_ENABLE 1 //Used to enable over value interrupt to CPU
//
// Enable / Disable Low-level threshold interrupt for Comparator filter output
// These values can be passed as argument to Sdfm_configureInterrupt()
//
#define IEL_DISABLE 0 //Used to disable under value interrupt to CPU
#define IEL_ENABLE 1 //Used to enable under value interrupt to CPU
//
//Enable / Disable modulator failure interrupt
// These values can be passed as argument to Sdfm_configureInterrupt()
//
#define MFIE_DISABLE 0 //Used to disable modulator failure interrupt to CPU
#define MFIE_ENABLE 1 //Used to enable modulator failure interrupt to CPU
//
// Enable / Disable Acknowledge flag
// These values can be passed as argument to Sdfm_configureInterrupt()
//
#define AE_DISABLE 0 //Used to disable new filter data acknowledge
//interrupt to CPU
#define AE_ENABLE 1 //Used to enable new filter data acknowledge
//interrupt to CPU
//
// Sinc Filter Reset enable / disable for External Reset from PWM Compare
// output
// This following value can be passed to Sdfm_configureExternalreset()
//
#define FILTER_1_EXT_RESET_DISABLE 0
#define FILTER_1_EXT_RESET_ENABLE 1
#define FILTER_2_EXT_RESET_DISABLE 0
#define FILTER_2_EXT_RESET_ENABLE 1
#define FILTER_3_EXT_RESET_DISABLE 0
#define FILTER_3_EXT_RESET_ENABLE 1
#define FILTER_4_EXT_RESET_DISABLE 0
#define FILTER_4_EXT_RESET_ENABLE 1
//
// Filter output data can be represented in 16 bit (or) 32 bit format
// This value can be passed to Sdfm_configureData_filter()
//
#define DATA_16_BIT 0 //Data stored in 16b 2's complement
#define DATA_32_BIT 1 //Data stored in 32b 2's complement
//
// Macro to read the SDFM1 filter data in 16 bit format
//
#define SDFM1_READ_FILTER1_DATA_16BIT *(volatile Uint16 *)0x5E17
#define SDFM1_READ_FILTER2_DATA_16BIT *(volatile Uint16 *)0x5E27
#define SDFM1_READ_FILTER3_DATA_16BIT *(volatile Uint16 *)0x5E37
#define SDFM1_READ_FILTER4_DATA_16BIT *(volatile Uint16 *)0x5E47
//
// Macro to read the SDFM1 filter data in 32 bit format
//
#define SDFM1_READ_FILTER1_DATA_32BIT *(volatile Uint32 *)0x5E16
#define SDFM1_READ_FILTER2_DATA_32BIT *(volatile Uint32 *)0x5E26
#define SDFM1_READ_FILTER3_DATA_32BIT *(volatile Uint32 *)0x5E36
#define SDFM1_READ_FILTER4_DATA_32BIT *(volatile Uint32 *)0x5E46
//
// Macro to read the SDFM2 filter data in 16 bit format
//
#define SDFM2_READ_FILTER1_DATA_16BIT *(volatile Uint16 *)0x5E97
#define SDFM2_READ_FILTER2_DATA_16BIT *(volatile Uint16 *)0x5EA7
#define SDFM2_READ_FILTER3_DATA_16BIT *(volatile Uint16 *)0x5EB7
#define SDFM2_READ_FILTER4_DATA_16BIT *(volatile Uint16 *)0x5EC7
//
// Macro to read the SDFM2 filter data in 32 bit format
//
#define SDFM2_READ_FILTER1_DATA_32BIT *(volatile Uint16 *)0x5E96
#define SDFM2_READ_FILTER2_DATA_32BIT *(volatile Uint16 *)0x5EA6
#define SDFM2_READ_FILTER3_DATA_32BIT *(volatile Uint16 *)0x5EB6
#define SDFM2_READ_FILTER4_DATA_32BIT *(volatile Uint16 *)0x5EC6
//
// The following are defines for different OSR values
//
#define OSR_1 0
#define OSR_2 1
#define OSR_3 2
#define OSR_4 3
#define OSR_5 4
#define OSR_6 5
#define OSR_7 6
#define OSR_8 7
#define OSR_9 8
#define OSR_10 9
#define OSR_11 10
#define OSR_12 11
#define OSR_13 12
#define OSR_14 13
#define OSR_15 14
#define OSR_16 15
#define OSR_17 16
#define OSR_18 17
#define OSR_19 18
#define OSR_20 19
#define OSR_21 20
#define OSR_22 21
#define OSR_23 22
#define OSR_24 23
#define OSR_25 24
#define OSR_26 25
#define OSR_27 26
#define OSR_28 27
#define OSR_29 28
#define OSR_30 29
#define OSR_31 30
#define OSR_32 31
#define OSR_33 32
#define OSR_34 33
#define OSR_35 34
#define OSR_36 35
#define OSR_37 36
#define OSR_38 37
#define OSR_39 38
#define OSR_40 39
#define OSR_41 40
#define OSR_42 41
#define OSR_43 42
#define OSR_44 43
#define OSR_45 44
#define OSR_46 45
#define OSR_47 46
#define OSR_48 47
#define OSR_49 48
#define OSR_50 49
#define OSR_51 50
#define OSR_52 51
#define OSR_53 52
#define OSR_54 53
#define OSR_55 54
#define OSR_56 55
#define OSR_57 56
#define OSR_58 57
#define OSR_59 58
#define OSR_60 59
#define OSR_61 60
#define OSR_62 61
#define OSR_63 62
#define OSR_64 63
#define OSR_65 64
#define OSR_66 65
#define OSR_67 66
#define OSR_68 67
#define OSR_69 68
#define OSR_70 69
#define OSR_71 70
#define OSR_72 71
#define OSR_73 72
#define OSR_74 73
#define OSR_75 74
#define OSR_76 75
#define OSR_77 76
#define OSR_78 77
#define OSR_79 78
#define OSR_80 79
#define OSR_81 80
#define OSR_82 81
#define OSR_83 82
#define OSR_84 83
#define OSR_85 84
#define OSR_86 85
#define OSR_87 86
#define OSR_88 87
#define OSR_89 88
#define OSR_90 89
#define OSR_91 90
#define OSR_92 91
#define OSR_93 92
#define OSR_94 93
#define OSR_95 94
#define OSR_96 95
#define OSR_97 96
#define OSR_98 97
#define OSR_99 98
#define OSR_100 99
#define OSR_101 100
#define OSR_102 101
#define OSR_103 102
#define OSR_104 103
#define OSR_105 104
#define OSR_106 105
#define OSR_107 106
#define OSR_108 107
#define OSR_109 108
#define OSR_110 109
#define OSR_111 110
#define OSR_112 111
#define OSR_113 112
#define OSR_114 113
#define OSR_115 114
#define OSR_116 115
#define OSR_117 116
#define OSR_118 117
#define OSR_119 118
#define OSR_120 119
#define OSR_121 120
#define OSR_122 121
#define OSR_123 122
#define OSR_124 123
#define OSR_125 124
#define OSR_126 125
#define OSR_127 126
#define OSR_128 127
#define OSR_129 128
#define OSR_130 129
#define OSR_131 130
#define OSR_132 131
#define OSR_133 132
#define OSR_134 133
#define OSR_135 134
#define OSR_136 135
#define OSR_137 136
#define OSR_138 137
#define OSR_139 138
#define OSR_140 139
#define OSR_141 140
#define OSR_142 141
#define OSR_143 142
#define OSR_144 143
#define OSR_145 144
#define OSR_146 145
#define OSR_147 146
#define OSR_148 147
#define OSR_149 148
#define OSR_150 149
#define OSR_151 150
#define OSR_152 151
#define OSR_153 152
#define OSR_154 153
#define OSR_155 154
#define OSR_156 155
#define OSR_157 156
#define OSR_158 157
#define OSR_159 158
#define OSR_160 159
#define OSR_161 160
#define OSR_162 161
#define OSR_163 162
#define OSR_164 163
#define OSR_165 164
#define OSR_166 165
#define OSR_167 166
#define OSR_168 167
#define OSR_169 168
#define OSR_170 169
#define OSR_171 170
#define OSR_172 171
#define OSR_173 172
#define OSR_174 173
#define OSR_175 174
#define OSR_176 175
#define OSR_177 176
#define OSR_178 177
#define OSR_179 178
#define OSR_180 179
#define OSR_181 180
#define OSR_182 181
#define OSR_183 182
#define OSR_184 183
#define OSR_185 184
#define OSR_186 185
#define OSR_187 186
#define OSR_188 187
#define OSR_189 188
#define OSR_190 189
#define OSR_191 190
#define OSR_192 191
#define OSR_193 192
#define OSR_194 193
#define OSR_195 194
#define OSR_196 195
#define OSR_197 196
#define OSR_198 197
#define OSR_199 198
#define OSR_200 199
#define OSR_201 200
#define OSR_202 201
#define OSR_203 202
#define OSR_204 203
#define OSR_205 204
#define OSR_206 205
#define OSR_207 206
#define OSR_208 207
#define OSR_209 208
#define OSR_210 209
#define OSR_211 210
#define OSR_212 211
#define OSR_213 212
#define OSR_214 213
#define OSR_215 214
#define OSR_216 215
#define OSR_217 216
#define OSR_218 217
#define OSR_219 218
#define OSR_220 219
#define OSR_221 220
#define OSR_222 221
#define OSR_223 222
#define OSR_224 223
#define OSR_225 224
#define OSR_226 225
#define OSR_227 226
#define OSR_228 227
#define OSR_229 228
#define OSR_230 229
#define OSR_231 230
#define OSR_232 231
#define OSR_233 232
#define OSR_234 233
#define OSR_235 234
#define OSR_236 235
#define OSR_237 236
#define OSR_238 237
#define OSR_239 238
#define OSR_240 239
#define OSR_241 240
#define OSR_242 241
#define OSR_243 242
#define OSR_244 243
#define OSR_245 244
#define OSR_246 245
#define OSR_247 246
#define OSR_248 247
#define OSR_249 248
#define OSR_250 249
#define OSR_251 250
#define OSR_252 251
#define OSR_253 252
#define OSR_254 253
#define OSR_255 254
#define OSR_256 255
//
// The following are defines for different OSR values
//
#define SHIFT_0_BITS 0
#define SHIFT_1_BITS 1
#define SHIFT_2_BITS 2
#define SHIFT_3_BITS 3
#define SHIFT_4_BITS 4
#define SHIFT_5_BITS 5
#define SHIFT_6_BITS 6
#define SHIFT_7_BITS 7
#define SHIFT_8_BITS 8
#define SHIFT_9_BITS 9
#define SHIFT_10_BITS 10
#define SHIFT_11_BITS 11
#define SHIFT_12_BITS 12
#define SHIFT_13_BITS 13
#define SHIFT_14_BITS 14
#define SHIFT_15_BITS 15
#define SHIFT_16_BITS 16
#define SHIFT_17_BITS 17
#define SHIFT_18_BITS 18
#define SHIFT_19_BITS 19
#define SHIFT_20_BITS 20
#define SHIFT_21_BITS 21
#define SHIFT_22_BITS 22
#define SHIFT_23_BITS 23
#define SHIFT_24_BITS 24
#define SHIFT_25_BITS 25
#define SHIFT_26_BITS 26
#define SHIFT_27_BITS 27
#define SHIFT_28_BITS 28
#define SHIFT_29_BITS 29
#define SHIFT_30_BITS 30
#define SHIFT_31_BITS 31
//
// Function prototypes
//
extern void Sdfm_configureInputCtrl(Uint16 SDFM_number,
Uint16 Filter_number, Uint16 mode);
extern void Sdfm_configureComparator(Uint16 SDFM_number,
Uint16 Filter_number, Uint16 Filter_type,
Uint16 OSR, Uint16 HLT, Uint16 LLT);
extern void Sdfm_configureData_filter(Uint16 sdfmNumber, Uint16 filterNumber,
Uint16 Filter_switch, Uint16 filterType,
Uint16 OSR, Uint16 DR_switch,
Uint16 shift_bits);
extern void Sdfm_enableMFE(Uint16 SDFM_number);
extern void Sdfm_disableMFE(Uint16 SDFM_number);
extern void Sdfm_configureInterrupt(Uint16 SDFM_number, Uint16 Filter_number,
Uint16 IEH_Switch, Uint16 IEL_Switch,
Uint16 MFIE_Switch, Uint16 AE_Switch);
extern void Sdfm_enableMIE(Uint16 SDFM_number);
extern void Sdfm_disableMIE(Uint16 SDFM_number);
extern void Sdfm_configureExternalreset(Uint16 SDFM_number,
Uint16 filter1_Config_ext_reset,
Uint16 filter2_Config_ext_reset,
Uint16 filter3_Config_ext_reset,
Uint16 filter4_Config_ext_reset);
extern Uint32 Sdfm_readFlagRegister(Uint16 SDFM_number);
extern void Sdfm_clearFlagRegister(Uint16 sdfmNumber,
Uint32 sdfmReadFlagRegister);
#ifdef __cplusplus
}
#endif /* extern "C" */
#endif // - end of F2837xD_SDFM_DRIVERS_H
//
// End of file
//
|