F2837xD_sdfm_drivers.h 16 KB

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