rfal_analogConfigTbl.h 85 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477
  1. /******************************************************************************
  2. * \attention
  3. *
  4. * <h2><center>&copy; COPYRIGHT 2020 STMicroelectronics</center></h2>
  5. *
  6. * Licensed under ST MYLIBERTY SOFTWARE LICENSE AGREEMENT (the "License");
  7. * You may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at:
  9. *
  10. * www.st.com/myliberty
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
  15. * AND SPECIFICALLY DISCLAIMING THE IMPLIED WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
  17. * See the License for the specific language governing permissions and
  18. * limitations under the License.
  19. *
  20. ******************************************************************************/
  21. /*
  22. * PROJECT: ST25R391x firmware
  23. * Revision:
  24. * LANGUAGE: ISO C99
  25. */
  26. /*! \file rfal_analogConfig.h
  27. *
  28. * \author bkam
  29. *
  30. * \brief ST25R3916 Analog Configuration Settings
  31. *
  32. */
  33. #ifndef ST25R3916_ANALOGCONFIG_H
  34. #define ST25R3916_ANALOGCONFIG_H
  35. /*
  36. ******************************************************************************
  37. * INCLUDES
  38. ******************************************************************************
  39. */
  40. #include "rfal_analogConfig.h"
  41. #include "st25r3916_com.h"
  42. /*
  43. ******************************************************************************
  44. * DEFINES
  45. ******************************************************************************
  46. */
  47. /*
  48. ******************************************************************************
  49. * GLOBAL MACROS
  50. ******************************************************************************
  51. */
  52. /*! Macro for Configuration Setting with only one register-mask-value set:
  53. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1] */
  54. #define MODE_ENTRY_1_REG(MODE, R0, M0, V0) \
  55. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 1, \
  56. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0)
  57. /*! Macro for Configuration Setting with only two register-mask-value sets:
  58. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1] */
  59. #define MODE_ENTRY_2_REG(MODE, R0, M0, V0, R1, M1, V1) \
  60. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 2, \
  61. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  62. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1)
  63. /*! Macro for Configuration Setting with only three register-mask-value sets:
  64. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  65. #define MODE_ENTRY_3_REG(MODE, R0, M0, V0, R1, M1, V1, R2, M2, V2) \
  66. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 3, \
  67. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  68. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  69. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2)
  70. /*! Macro for Configuration Setting with only four register-mask-value sets:
  71. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  72. #define MODE_ENTRY_4_REG(MODE, R0, M0, V0, R1, M1, V1, R2, M2, V2, R3, M3, V3) \
  73. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 4, \
  74. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  75. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  76. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  77. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3)
  78. /*! Macro for Configuration Setting with only five register-mask-value sets:
  79. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  80. #define MODE_ENTRY_5_REG(MODE, R0, M0, V0, R1, M1, V1, R2, M2, V2, R3, M3, V3, R4, M4, V4) \
  81. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 5, \
  82. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  83. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  84. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  85. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  86. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4)
  87. /*! Macro for Configuration Setting with only six register-mask-value sets:
  88. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  89. #define MODE_ENTRY_6_REG( \
  90. MODE, R0, M0, V0, R1, M1, V1, R2, M2, V2, R3, M3, V3, R4, M4, V4, R5, M5, V5) \
  91. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 6, \
  92. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  93. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  94. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  95. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  96. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  97. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5)
  98. /*! Macro for Configuration Setting with only seven register-mask-value sets:
  99. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  100. #define MODE_ENTRY_7_REG( \
  101. MODE, R0, M0, V0, R1, M1, V1, R2, M2, V2, R3, M3, V3, R4, M4, V4, R5, M5, V5, R6, M6, V6) \
  102. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 7, \
  103. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  104. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  105. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  106. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  107. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  108. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  109. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6)
  110. /*! Macro for Configuration Setting with only eight register-mask-value sets:
  111. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  112. #define MODE_ENTRY_8_REG( \
  113. MODE, \
  114. R0, \
  115. M0, \
  116. V0, \
  117. R1, \
  118. M1, \
  119. V1, \
  120. R2, \
  121. M2, \
  122. V2, \
  123. R3, \
  124. M3, \
  125. V3, \
  126. R4, \
  127. M4, \
  128. V4, \
  129. R5, \
  130. M5, \
  131. V5, \
  132. R6, \
  133. M6, \
  134. V6, \
  135. R7, \
  136. M7, \
  137. V7) \
  138. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 8, \
  139. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  140. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  141. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  142. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  143. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  144. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  145. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  146. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7)
  147. /*! Macro for Configuration Setting with only nine register-mask-value sets:
  148. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  149. #define MODE_ENTRY_9_REG( \
  150. MODE, \
  151. R0, \
  152. M0, \
  153. V0, \
  154. R1, \
  155. M1, \
  156. V1, \
  157. R2, \
  158. M2, \
  159. V2, \
  160. R3, \
  161. M3, \
  162. V3, \
  163. R4, \
  164. M4, \
  165. V4, \
  166. R5, \
  167. M5, \
  168. V5, \
  169. R6, \
  170. M6, \
  171. V6, \
  172. R7, \
  173. M7, \
  174. V7, \
  175. R8, \
  176. M8, \
  177. V8) \
  178. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 9, \
  179. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  180. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  181. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  182. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  183. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  184. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  185. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  186. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  187. (uint8_t)((uint16_t)(R8) >> 8U), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8)
  188. /*! Macro for Configuration Setting with only ten register-mask-value sets:
  189. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  190. #define MODE_ENTRY_10_REG( \
  191. MODE, \
  192. R0, \
  193. M0, \
  194. V0, \
  195. R1, \
  196. M1, \
  197. V1, \
  198. R2, \
  199. M2, \
  200. V2, \
  201. R3, \
  202. M3, \
  203. V3, \
  204. R4, \
  205. M4, \
  206. V4, \
  207. R5, \
  208. M5, \
  209. V5, \
  210. R6, \
  211. M6, \
  212. V6, \
  213. R7, \
  214. M7, \
  215. V7, \
  216. R8, \
  217. M8, \
  218. V8, \
  219. R9, \
  220. M9, \
  221. V9) \
  222. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 10, \
  223. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  224. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  225. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  226. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  227. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  228. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  229. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  230. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  231. (uint8_t)((uint16_t)(R8) >> 8U), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  232. (uint8_t)((uint16_t)(R9) >> 8U), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9)
  233. /*! Macro for Configuration Setting with eleven register-mask-value sets:
  234. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  235. #define MODE_ENTRY_11_REG( \
  236. MODE, \
  237. R0, \
  238. M0, \
  239. V0, \
  240. R1, \
  241. M1, \
  242. V1, \
  243. R2, \
  244. M2, \
  245. V2, \
  246. R3, \
  247. M3, \
  248. V3, \
  249. R4, \
  250. M4, \
  251. V4, \
  252. R5, \
  253. M5, \
  254. V5, \
  255. R6, \
  256. M6, \
  257. V6, \
  258. R7, \
  259. M7, \
  260. V7, \
  261. R8, \
  262. M8, \
  263. V8, \
  264. R9, \
  265. M9, \
  266. V9, \
  267. R10, \
  268. M10, \
  269. V10) \
  270. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 11, \
  271. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  272. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  273. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  274. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  275. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  276. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  277. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  278. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  279. (uint8_t)((uint16_t)(R8) >> 8U), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  280. (uint8_t)((uint16_t)(R9) >> 8U), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  281. (uint8_t)((uint16_t)(R10) >> 8U), (uint8_t)((R10)&0xFFU), (uint8_t)(M10), (uint8_t)(V10)
  282. /*! Macro for Configuration Setting with twelve register-mask-value sets:
  283. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  284. #define MODE_ENTRY_12_REG( \
  285. MODE, \
  286. R0, \
  287. M0, \
  288. V0, \
  289. R1, \
  290. M1, \
  291. V1, \
  292. R2, \
  293. M2, \
  294. V2, \
  295. R3, \
  296. M3, \
  297. V3, \
  298. R4, \
  299. M4, \
  300. V4, \
  301. R5, \
  302. M5, \
  303. V5, \
  304. R6, \
  305. M6, \
  306. V6, \
  307. R7, \
  308. M7, \
  309. V7, \
  310. R8, \
  311. M8, \
  312. V8, \
  313. R9, \
  314. M9, \
  315. V9, \
  316. R10, \
  317. M10, \
  318. V10, \
  319. R11, \
  320. M11, \
  321. V11) \
  322. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 12, \
  323. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  324. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  325. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  326. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  327. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  328. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  329. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  330. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  331. (uint8_t)((uint16_t)(R8) >> 8U), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  332. (uint8_t)((uint16_t)(R9) >> 8U), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  333. (uint8_t)((uint16_t)(R10) >> 8U), (uint8_t)((R10)&0xFFU), (uint8_t)(M10), (uint8_t)(V10), \
  334. (uint8_t)((uint16_t)(R11) >> 8U), (uint8_t)((R11)&0xFFU), (uint8_t)(M11), (uint8_t)(V11)
  335. /*! Macro for Configuration Setting with thirteen register-mask-value sets:
  336. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  337. #define MODE_ENTRY_13_REG( \
  338. MODE, \
  339. R0, \
  340. M0, \
  341. V0, \
  342. R1, \
  343. M1, \
  344. V1, \
  345. R2, \
  346. M2, \
  347. V2, \
  348. R3, \
  349. M3, \
  350. V3, \
  351. R4, \
  352. M4, \
  353. V4, \
  354. R5, \
  355. M5, \
  356. V5, \
  357. R6, \
  358. M6, \
  359. V6, \
  360. R7, \
  361. M7, \
  362. V7, \
  363. R8, \
  364. M8, \
  365. V8, \
  366. R9, \
  367. M9, \
  368. V9, \
  369. R10, \
  370. M10, \
  371. V10, \
  372. R11, \
  373. M11, \
  374. V11, \
  375. R12, \
  376. M12, \
  377. V12) \
  378. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE)&0xFFU), 13, \
  379. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  380. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  381. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  382. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  383. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  384. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  385. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  386. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  387. (uint8_t)((uint16_t)(R8) >> 8U), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  388. (uint8_t)((uint16_t)(R9) >> 8U), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  389. (uint8_t)((uint16_t)(R10) >> 8U), (uint8_t)((R10)&0xFFU), (uint8_t)(M10), (uint8_t)(V10), \
  390. (uint8_t)((uint16_t)(R11) >> 8U), (uint8_t)((R11)&0xFFU), (uint8_t)(M11), (uint8_t)(V11), \
  391. (uint8_t)((uint16_t)(R12) >> 8U), (uint8_t)((R12)&0xFFU), (uint8_t)(M12), (uint8_t)(V12)
  392. /*! Macro for Configuration Setting with fourteen register-mask-value sets:
  393. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  394. #define MODE_ENTRY_14_REG( \
  395. MODE, \
  396. R0, \
  397. M0, \
  398. V0, \
  399. R1, \
  400. M1, \
  401. V1, \
  402. R2, \
  403. M2, \
  404. V2, \
  405. R3, \
  406. M3, \
  407. V3, \
  408. R4, \
  409. M4, \
  410. V4, \
  411. R5, \
  412. M5, \
  413. V5, \
  414. R6, \
  415. M6, \
  416. V6, \
  417. R7, \
  418. M7, \
  419. V7, \
  420. R8, \
  421. M8, \
  422. V8, \
  423. R9, \
  424. M9, \
  425. V9, \
  426. R10, \
  427. M10, \
  428. V10, \
  429. R11, \
  430. M11, \
  431. V11, \
  432. R12, \
  433. M12, \
  434. V12, \
  435. R13, \
  436. M13, \
  437. V13, \
  438. R14, \
  439. M14, \
  440. V14, \
  441. R15, \
  442. M15, \
  443. V15) \
  444. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE)&0xFFU), 14, \
  445. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  446. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  447. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  448. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  449. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  450. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  451. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  452. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  453. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  454. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  455. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10)&0xFFU), (uint8_t)(M10), (uint8_t)(V10), \
  456. (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11)&0xFFU), (uint8_t)(M11), (uint8_t)(V11), \
  457. (uint8_t)((uint16_t)(R12) >> 8), (uint8_t)((R12)&0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  458. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13)&0xFFU), (uint8_t)(M13), (uint8_t)(V13)
  459. /*! Macro for Configuration Setting with fifteen register-mask-value sets:
  460. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  461. #define MODE_ENTRY_15_REG( \
  462. MODE, \
  463. R0, \
  464. M0, \
  465. V0, \
  466. R1, \
  467. M1, \
  468. V1, \
  469. R2, \
  470. M2, \
  471. V2, \
  472. R3, \
  473. M3, \
  474. V3, \
  475. R4, \
  476. M4, \
  477. V4, \
  478. R5, \
  479. M5, \
  480. V5, \
  481. R6, \
  482. M6, \
  483. V6, \
  484. R7, \
  485. M7, \
  486. V7, \
  487. R8, \
  488. M8, \
  489. V8, \
  490. R9, \
  491. M9, \
  492. V9, \
  493. R10, \
  494. M10, \
  495. V10, \
  496. R11, \
  497. M11, \
  498. V11, \
  499. R12, \
  500. M12, \
  501. V12, \
  502. R13, \
  503. M13, \
  504. V13, \
  505. R14, \
  506. M14, \
  507. V14, \
  508. R15, \
  509. M15, \
  510. V15) \
  511. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE)&0xFFU), 15, \
  512. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  513. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  514. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  515. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  516. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  517. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  518. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  519. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  520. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  521. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  522. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10)&0xFFU), (uint8_t)(M10), (uint8_t)(V10), \
  523. (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11)&0xFFU), (uint8_t)(M11), (uint8_t)(V11), \
  524. (uint8_t)((uint16_t)(R12) >> 8), (uint8_t)((R12)&0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  525. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13)&0xFFU), (uint8_t)(M13), (uint8_t)(V13), \
  526. (uint8_t)((uint16_t)(R14) >> 8), (uint8_t)((R14)&0xFFU), (uint8_t)(M14), (uint8_t)(V14)
  527. /*! Macro for Configuration Setting with sixteen register-mask-value sets:
  528. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  529. #define MODE_ENTRY_16_REG( \
  530. MODE, \
  531. R0, \
  532. M0, \
  533. V0, \
  534. R1, \
  535. M1, \
  536. V1, \
  537. R2, \
  538. M2, \
  539. V2, \
  540. R3, \
  541. M3, \
  542. V3, \
  543. R4, \
  544. M4, \
  545. V4, \
  546. R5, \
  547. M5, \
  548. V5, \
  549. R6, \
  550. M6, \
  551. V6, \
  552. R7, \
  553. M7, \
  554. V7, \
  555. R8, \
  556. M8, \
  557. V8, \
  558. R9, \
  559. M9, \
  560. V9, \
  561. R10, \
  562. M10, \
  563. V10, \
  564. R11, \
  565. M11, \
  566. V11, \
  567. R12, \
  568. M12, \
  569. V12, \
  570. R13, \
  571. M13, \
  572. V13, \
  573. R14, \
  574. M14, \
  575. V14, \
  576. R15, \
  577. M15, \
  578. V15) \
  579. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE)&0xFFU), 16, \
  580. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  581. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  582. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  583. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  584. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  585. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  586. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  587. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  588. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  589. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  590. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10)&0xFFU), (uint8_t)(M10), (uint8_t)(V10), \
  591. (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11)&0xFFU), (uint8_t)(M11), (uint8_t)(V11), \
  592. (uint8_t)((uint16_t)(R12) >> 8), (uint8_t)((R12)&0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  593. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13)&0xFFU), (uint8_t)(M13), (uint8_t)(V13), \
  594. (uint8_t)((uint16_t)(R14) >> 8), (uint8_t)((R14)&0xFFU), (uint8_t)(M14), (uint8_t)(V14), \
  595. (uint8_t)((uint16_t)(R15) >> 8), (uint8_t)((R15)&0xFFU), (uint8_t)(M15), (uint8_t)(V15)
  596. /*! Macro for Configuration Setting with seventeen register-mask-value sets:
  597. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  598. #define MODE_ENTRY_17_REG( \
  599. MODE, \
  600. R0, \
  601. M0, \
  602. V0, \
  603. R1, \
  604. M1, \
  605. V1, \
  606. R2, \
  607. M2, \
  608. V2, \
  609. R3, \
  610. M3, \
  611. V3, \
  612. R4, \
  613. M4, \
  614. V4, \
  615. R5, \
  616. M5, \
  617. V5, \
  618. R6, \
  619. M6, \
  620. V6, \
  621. R7, \
  622. M7, \
  623. V7, \
  624. R8, \
  625. M8, \
  626. V8, \
  627. R9, \
  628. M9, \
  629. V9, \
  630. R10, \
  631. M10, \
  632. V10, \
  633. R11, \
  634. M11, \
  635. V11, \
  636. R12, \
  637. M12, \
  638. V12, \
  639. R13, \
  640. M13, \
  641. V13, \
  642. R14, \
  643. M14, \
  644. V14, \
  645. R15, \
  646. M15, \
  647. V15, \
  648. R16, \
  649. M16, \
  650. V16) \
  651. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE)&0xFFU), 17, \
  652. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0)&0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  653. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1)&0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  654. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2)&0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  655. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3)&0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  656. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4)&0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  657. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5)&0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  658. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6)&0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  659. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7)&0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  660. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8)&0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  661. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9)&0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  662. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10)&0xFFU), (uint8_t)(M10), (uint8_t)(V10), \
  663. (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11)&0xFFU), (uint8_t)(M11), (uint8_t)(V11), \
  664. (uint8_t)((uint16_t)(R12) >> 8), (uint8_t)((R12)&0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  665. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13)&0xFFU), (uint8_t)(M13), (uint8_t)(V13), \
  666. (uint8_t)((uint16_t)(R14) >> 8), (uint8_t)((R14)&0xFFU), (uint8_t)(M14), (uint8_t)(V14), \
  667. (uint8_t)((uint16_t)(R15) >> 8), (uint8_t)((R15)&0xFFU), (uint8_t)(M15), (uint8_t)(V15), \
  668. (uint8_t)((uint16_t)(R16) >> 8), (uint8_t)((R16)&0xFFU), (uint8_t)(M16), (uint8_t)(V16)
  669. /*
  670. ******************************************************************************
  671. * GLOBAL DATA TYPES
  672. ******************************************************************************
  673. */
  674. /* PRQA S 3406 1 # MISRA 8.6 - Externally generated table included by the library */ /* PRQA S 1514 1 # MISRA 8.9 - Externally generated table included by the library */
  675. const uint8_t rfalAnalogConfigDefaultSettings[] = {
  676. /****** Default Analog Configuration for Chip-Specific Reset ******/
  677. MODE_ENTRY_17_REG(
  678. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_INIT),
  679. ST25R3916_REG_IO_CONF1,
  680. (ST25R3916_REG_IO_CONF1_out_cl_mask | ST25R3916_REG_IO_CONF1_lf_clk_off),
  681. 0x07 /* Disable MCU_CLK */
  682. ,
  683. ST25R3916_REG_IO_CONF2,
  684. (ST25R3916_REG_IO_CONF2_miso_pd1 | ST25R3916_REG_IO_CONF2_miso_pd2),
  685. 0x18 /* SPI Pull downs */
  686. ,
  687. ST25R3916_REG_IO_CONF2,
  688. ST25R3916_REG_IO_CONF2_aat_en,
  689. ST25R3916_REG_IO_CONF2_aat_en /* Enable AAT */
  690. ,
  691. ST25R3916_REG_TX_DRIVER,
  692. ST25R3916_REG_TX_DRIVER_d_res_mask,
  693. 0x00 /* Set RFO resistance Active Tx */
  694. ,
  695. ST25R3916_REG_RES_AM_MOD,
  696. 0xFF,
  697. 0x80 /* Use minimum non-overlap */
  698. ,
  699. ST25R3916_REG_FIELD_THRESHOLD_ACTV,
  700. ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_mask,
  701. ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_105mV /* Lower activation threshold (higher than deactivation)*/
  702. ,
  703. ST25R3916_REG_FIELD_THRESHOLD_ACTV,
  704. ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_mask,
  705. ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_105mV /* Lower activation threshold (higher than deactivation)*/
  706. ,
  707. ST25R3916_REG_FIELD_THRESHOLD_DEACTV,
  708. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_mask,
  709. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_75mV /* Lower deactivation threshold */
  710. ,
  711. ST25R3916_REG_FIELD_THRESHOLD_DEACTV,
  712. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_mask,
  713. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_75mV /* Lower deactivation threshold */
  714. ,
  715. ST25R3916_REG_AUX_MOD,
  716. ST25R3916_REG_AUX_MOD_lm_ext,
  717. 0x00 /* Disable External Load Modulation */
  718. ,
  719. ST25R3916_REG_AUX_MOD,
  720. ST25R3916_REG_AUX_MOD_lm_dri,
  721. ST25R3916_REG_AUX_MOD_lm_dri /* Use internal Load Modulation */
  722. ,
  723. ST25R3916_REG_PASSIVE_TARGET,
  724. ST25R3916_REG_PASSIVE_TARGET_fdel_mask,
  725. (5U
  726. << ST25R3916_REG_PASSIVE_TARGET_fdel_shift) /* Adjust the FDT to be aligned with the bitgrid */
  727. ,
  728. ST25R3916_REG_PT_MOD,
  729. (ST25R3916_REG_PT_MOD_ptm_res_mask | ST25R3916_REG_PT_MOD_pt_res_mask),
  730. 0x5f /* Reduce RFO resistance in Modulated state */
  731. ,
  732. ST25R3916_REG_EMD_SUP_CONF,
  733. ST25R3916_REG_EMD_SUP_CONF_rx_start_emv,
  734. ST25R3916_REG_EMD_SUP_CONF_rx_start_emv_on /* Enable start on first 4 bits */
  735. ,
  736. ST25R3916_REG_ANT_TUNE_A,
  737. 0xFF,
  738. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  739. ,
  740. ST25R3916_REG_ANT_TUNE_B,
  741. 0xFF,
  742. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  743. ,
  744. 0x84U,
  745. 0x10,
  746. 0x10 /* Avoid chip internal overheat protection */
  747. )
  748. /****** Default Analog Configuration for Chip-Specific Poll Common ******/
  749. ,
  750. MODE_ENTRY_9_REG(
  751. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_POLL_COMMON),
  752. ST25R3916_REG_MODE,
  753. ST25R3916_REG_MODE_tr_am,
  754. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  755. ,
  756. ST25R3916_REG_TX_DRIVER,
  757. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  758. ST25R3916_REG_TX_DRIVER_am_mod_12percent /* Set Modulation index */
  759. ,
  760. ST25R3916_REG_AUX_MOD,
  761. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  762. 0x00 /* Use AM via regulator */
  763. ,
  764. ST25R3916_REG_ANT_TUNE_A,
  765. 0xFF,
  766. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  767. ,
  768. ST25R3916_REG_ANT_TUNE_B,
  769. 0xFF,
  770. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  771. ,
  772. ST25R3916_REG_OVERSHOOT_CONF1,
  773. 0xFF,
  774. 0x00 /* Disable Overshoot Protection */
  775. ,
  776. ST25R3916_REG_OVERSHOOT_CONF2,
  777. 0xFF,
  778. 0x00 /* Disable Overshoot Protection */
  779. ,
  780. ST25R3916_REG_UNDERSHOOT_CONF1,
  781. 0xFF,
  782. 0x00 /* Disable Undershoot Protection */
  783. ,
  784. ST25R3916_REG_UNDERSHOOT_CONF2,
  785. 0xFF,
  786. 0x00 /* Disable Undershoot Protection */
  787. )
  788. /****** Default Analog Configuration for Poll NFC-A Rx Common ******/
  789. ,
  790. MODE_ENTRY_1_REG(
  791. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA |
  792. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  793. ST25R3916_REG_AUX,
  794. ST25R3916_REG_AUX_dis_corr,
  795. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  796. )
  797. /****** Default Analog Configuration for Poll NFC-A Tx 106 ******/
  798. ,
  799. MODE_ENTRY_5_REG(
  800. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_106 |
  801. RFAL_ANALOG_CONFIG_TX),
  802. ST25R3916_REG_MODE,
  803. ST25R3916_REG_MODE_tr_am,
  804. ST25R3916_REG_MODE_tr_am_ook /* Use OOK */
  805. ,
  806. ST25R3916_REG_OVERSHOOT_CONF1,
  807. 0xFF,
  808. 0x40 /* Set default Overshoot Protection */
  809. ,
  810. ST25R3916_REG_OVERSHOOT_CONF2,
  811. 0xFF,
  812. 0x03 /* Set default Overshoot Protection */
  813. ,
  814. ST25R3916_REG_UNDERSHOOT_CONF1,
  815. 0xFF,
  816. 0x40 /* Set default Undershoot Protection */
  817. ,
  818. ST25R3916_REG_UNDERSHOOT_CONF2,
  819. 0xFF,
  820. 0x03 /* Set default Undershoot Protection */
  821. )
  822. /****** Default Analog Configuration for Poll NFC-A Rx 106 ******/
  823. ,
  824. MODE_ENTRY_6_REG(
  825. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_106 |
  826. RFAL_ANALOG_CONFIG_RX),
  827. ST25R3916_REG_RX_CONF1,
  828. 0xFF,
  829. 0x08,
  830. ST25R3916_REG_RX_CONF2,
  831. 0xFF,
  832. 0x2D,
  833. ST25R3916_REG_RX_CONF3,
  834. 0xFF,
  835. 0x00,
  836. ST25R3916_REG_RX_CONF4,
  837. 0xFF,
  838. 0x00,
  839. ST25R3916_REG_CORR_CONF1,
  840. 0xFF,
  841. 0x51,
  842. ST25R3916_REG_CORR_CONF2,
  843. 0xFF,
  844. 0x00)
  845. /****** Default Analog Configuration for Poll NFC-A Tx 212 ******/
  846. ,
  847. MODE_ENTRY_7_REG(
  848. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_212 |
  849. RFAL_ANALOG_CONFIG_TX),
  850. ST25R3916_REG_MODE,
  851. ST25R3916_REG_MODE_tr_am,
  852. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  853. ,
  854. ST25R3916_REG_AUX_MOD,
  855. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  856. 0x88 /* Use Resistive AM */
  857. ,
  858. ST25R3916_REG_RES_AM_MOD,
  859. ST25R3916_REG_RES_AM_MOD_md_res_mask,
  860. 0x7F /* Set Resistive modulation */
  861. ,
  862. ST25R3916_REG_OVERSHOOT_CONF1,
  863. 0xFF,
  864. 0x40 /* Set default Overshoot Protection */
  865. ,
  866. ST25R3916_REG_OVERSHOOT_CONF2,
  867. 0xFF,
  868. 0x03 /* Set default Overshoot Protection */
  869. ,
  870. ST25R3916_REG_UNDERSHOOT_CONF1,
  871. 0xFF,
  872. 0x40 /* Set default Undershoot Protection */
  873. ,
  874. ST25R3916_REG_UNDERSHOOT_CONF2,
  875. 0xFF,
  876. 0x03 /* Set default Undershoot Protection */
  877. )
  878. /****** Default Analog Configuration for Poll NFC-A Rx 212 ******/
  879. ,
  880. MODE_ENTRY_6_REG(
  881. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_212 |
  882. RFAL_ANALOG_CONFIG_RX),
  883. ST25R3916_REG_RX_CONF1,
  884. 0xFF,
  885. 0x02,
  886. ST25R3916_REG_RX_CONF2,
  887. 0xFF,
  888. 0x3D,
  889. ST25R3916_REG_RX_CONF3,
  890. 0xFF,
  891. 0x00,
  892. ST25R3916_REG_RX_CONF4,
  893. 0xFF,
  894. 0x00,
  895. ST25R3916_REG_CORR_CONF1,
  896. 0xFF,
  897. 0x14,
  898. ST25R3916_REG_CORR_CONF2,
  899. 0xFF,
  900. 0x00)
  901. /****** Default Analog Configuration for Poll NFC-A Tx 424 ******/
  902. ,
  903. MODE_ENTRY_7_REG(
  904. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_424 |
  905. RFAL_ANALOG_CONFIG_TX),
  906. ST25R3916_REG_MODE,
  907. ST25R3916_REG_MODE_tr_am,
  908. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  909. ,
  910. ST25R3916_REG_AUX_MOD,
  911. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  912. 0x88 /* Use Resistive AM */
  913. ,
  914. ST25R3916_REG_RES_AM_MOD,
  915. ST25R3916_REG_RES_AM_MOD_md_res_mask,
  916. 0x7F /* Set Resistive modulation */
  917. ,
  918. ST25R3916_REG_OVERSHOOT_CONF1,
  919. 0xFF,
  920. 0x40 /* Set default Overshoot Protection */
  921. ,
  922. ST25R3916_REG_OVERSHOOT_CONF2,
  923. 0xFF,
  924. 0x03 /* Set default Overshoot Protection */
  925. ,
  926. ST25R3916_REG_UNDERSHOOT_CONF1,
  927. 0xFF,
  928. 0x40 /* Set default Undershoot Protection */
  929. ,
  930. ST25R3916_REG_UNDERSHOOT_CONF2,
  931. 0xFF,
  932. 0x03 /* Set default Undershoot Protection */
  933. )
  934. /****** Default Analog Configuration for Poll NFC-A Rx 424 ******/
  935. ,
  936. MODE_ENTRY_6_REG(
  937. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_424 |
  938. RFAL_ANALOG_CONFIG_RX),
  939. ST25R3916_REG_RX_CONF1,
  940. 0xFF,
  941. 0x42,
  942. ST25R3916_REG_RX_CONF2,
  943. 0xFF,
  944. 0x3D,
  945. ST25R3916_REG_RX_CONF3,
  946. 0xFF,
  947. 0x00,
  948. ST25R3916_REG_RX_CONF4,
  949. 0xFF,
  950. 0x00,
  951. ST25R3916_REG_CORR_CONF1,
  952. 0xFF,
  953. 0x54,
  954. ST25R3916_REG_CORR_CONF2,
  955. 0xFF,
  956. 0x00)
  957. /****** Default Analog Configuration for Poll NFC-A Tx 848 ******/
  958. ,
  959. MODE_ENTRY_7_REG(
  960. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_848 |
  961. RFAL_ANALOG_CONFIG_TX),
  962. ST25R3916_REG_MODE,
  963. ST25R3916_REG_MODE_tr_am,
  964. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  965. ,
  966. ST25R3916_REG_TX_DRIVER,
  967. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  968. ST25R3916_REG_TX_DRIVER_am_mod_40percent /* Set Modulation index */
  969. ,
  970. ST25R3916_REG_AUX_MOD,
  971. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  972. 0x00 /* Use AM via regulator */
  973. ,
  974. ST25R3916_REG_OVERSHOOT_CONF1,
  975. 0xFF,
  976. 0x00 /* Disable Overshoot Protection */
  977. ,
  978. ST25R3916_REG_OVERSHOOT_CONF2,
  979. 0xFF,
  980. 0x00 /* Disable Overshoot Protection */
  981. ,
  982. ST25R3916_REG_UNDERSHOOT_CONF1,
  983. 0xFF,
  984. 0x00 /* Disable Undershoot Protection */
  985. ,
  986. ST25R3916_REG_UNDERSHOOT_CONF2,
  987. 0xFF,
  988. 0x00 /* Disable Undershoot Protection */
  989. )
  990. /****** Default Analog Configuration for Poll NFC-A Rx 848 ******/
  991. ,
  992. MODE_ENTRY_6_REG(
  993. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_848 |
  994. RFAL_ANALOG_CONFIG_RX),
  995. ST25R3916_REG_RX_CONF1,
  996. 0xFF,
  997. 0x42,
  998. ST25R3916_REG_RX_CONF2,
  999. 0xFF,
  1000. 0x3D,
  1001. ST25R3916_REG_RX_CONF3,
  1002. 0xFF,
  1003. 0x00,
  1004. ST25R3916_REG_RX_CONF4,
  1005. 0xFF,
  1006. 0x00,
  1007. ST25R3916_REG_CORR_CONF1,
  1008. 0xFF,
  1009. 0x44,
  1010. ST25R3916_REG_CORR_CONF2,
  1011. 0xFF,
  1012. 0x00)
  1013. /****** Default Analog Configuration for Poll NFC-A Anticolision setting ******/
  1014. ,
  1015. MODE_ENTRY_1_REG(
  1016. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA |
  1017. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_ANTICOL),
  1018. ST25R3916_REG_CORR_CONF1,
  1019. ST25R3916_REG_CORR_CONF1_corr_s6,
  1020. 0x00 /* Set collision detection level different from data */
  1021. )
  1022. #ifdef RFAL_USE_COHE
  1023. /****** Default Analog Configuration for Poll NFC-B Rx Common ******/
  1024. ,
  1025. MODE_ENTRY_1_REG(
  1026. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB |
  1027. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1028. ST25R3916_REG_AUX,
  1029. ST25R3916_REG_AUX_dis_corr,
  1030. ST25R3916_REG_AUX_dis_corr_coherent /* Use Coherent Receiver */
  1031. )
  1032. #else
  1033. /****** Default Analog Configuration for Poll NFC-B Rx Common ******/
  1034. ,
  1035. MODE_ENTRY_1_REG(
  1036. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB |
  1037. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1038. ST25R3916_REG_AUX,
  1039. ST25R3916_REG_AUX_dis_corr,
  1040. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  1041. )
  1042. #endif /*RFAL_USE_COHE*/
  1043. /****** Default Analog Configuration for Poll NFC-B Rx 106 ******/
  1044. ,
  1045. MODE_ENTRY_6_REG(
  1046. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_106 |
  1047. RFAL_ANALOG_CONFIG_RX),
  1048. ST25R3916_REG_RX_CONF1,
  1049. 0xFF,
  1050. 0x04,
  1051. ST25R3916_REG_RX_CONF2,
  1052. 0xFF,
  1053. 0x3D,
  1054. ST25R3916_REG_RX_CONF3,
  1055. 0xFF,
  1056. 0x00,
  1057. ST25R3916_REG_RX_CONF4,
  1058. 0xFF,
  1059. 0x00,
  1060. ST25R3916_REG_CORR_CONF1,
  1061. 0xFF,
  1062. 0x1B,
  1063. ST25R3916_REG_CORR_CONF2,
  1064. 0xFF,
  1065. 0x00)
  1066. /****** Default Analog Configuration for Poll NFC-B Rx 212 ******/
  1067. ,
  1068. MODE_ENTRY_6_REG(
  1069. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_212 |
  1070. RFAL_ANALOG_CONFIG_RX),
  1071. ST25R3916_REG_RX_CONF1,
  1072. 0xFF,
  1073. 0x02,
  1074. ST25R3916_REG_RX_CONF2,
  1075. 0xFF,
  1076. 0x3D,
  1077. ST25R3916_REG_RX_CONF3,
  1078. 0xFF,
  1079. 0x00,
  1080. ST25R3916_REG_RX_CONF4,
  1081. 0xFF,
  1082. 0x00,
  1083. ST25R3916_REG_CORR_CONF1,
  1084. 0xFF,
  1085. 0x14,
  1086. ST25R3916_REG_CORR_CONF2,
  1087. 0xFF,
  1088. 0x00)
  1089. /****** Default Analog Configuration for Poll NFC-B Rx 424 ******/
  1090. ,
  1091. MODE_ENTRY_6_REG(
  1092. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_424 |
  1093. RFAL_ANALOG_CONFIG_RX),
  1094. ST25R3916_REG_RX_CONF1,
  1095. 0xFF,
  1096. 0x42,
  1097. ST25R3916_REG_RX_CONF2,
  1098. 0xFF,
  1099. 0x3D,
  1100. ST25R3916_REG_RX_CONF3,
  1101. 0xFF,
  1102. 0x00,
  1103. ST25R3916_REG_RX_CONF4,
  1104. 0xFF,
  1105. 0x00,
  1106. ST25R3916_REG_CORR_CONF1,
  1107. 0xFF,
  1108. 0x54,
  1109. ST25R3916_REG_CORR_CONF2,
  1110. 0xFF,
  1111. 0x00)
  1112. /****** Default Analog Configuration for Poll NFC-B Rx 848 ******/
  1113. ,
  1114. MODE_ENTRY_6_REG(
  1115. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_848 |
  1116. RFAL_ANALOG_CONFIG_RX),
  1117. ST25R3916_REG_RX_CONF1,
  1118. 0xFF,
  1119. 0x42,
  1120. ST25R3916_REG_RX_CONF2,
  1121. 0xFF,
  1122. 0x3D,
  1123. ST25R3916_REG_RX_CONF3,
  1124. 0xFF,
  1125. 0x00,
  1126. ST25R3916_REG_RX_CONF4,
  1127. 0xFF,
  1128. 0x00,
  1129. ST25R3916_REG_CORR_CONF1,
  1130. 0xFF,
  1131. 0x44,
  1132. ST25R3916_REG_CORR_CONF2,
  1133. 0xFF,
  1134. 0x00)
  1135. #ifdef RFAL_USE_COHE
  1136. /****** Default Analog Configuration for Poll NFC-F Rx Common ******/
  1137. ,
  1138. MODE_ENTRY_7_REG(
  1139. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCF |
  1140. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1141. ST25R3916_REG_AUX,
  1142. ST25R3916_REG_AUX_dis_corr,
  1143. ST25R3916_REG_AUX_dis_corr_coherent /* Use Pulse Receiver */
  1144. ,
  1145. ST25R3916_REG_RX_CONF1,
  1146. 0xFF,
  1147. 0x13,
  1148. ST25R3916_REG_RX_CONF2,
  1149. 0xFF,
  1150. 0x3D,
  1151. ST25R3916_REG_RX_CONF3,
  1152. 0xFF,
  1153. 0x00,
  1154. ST25R3916_REG_RX_CONF4,
  1155. 0xFF,
  1156. 0x00,
  1157. ST25R3916_REG_CORR_CONF1,
  1158. 0xFF,
  1159. 0x54,
  1160. ST25R3916_REG_CORR_CONF2,
  1161. 0xFF,
  1162. 0x00)
  1163. #else
  1164. /****** Default Analog Configuration for Poll NFC-F Rx Common ******/
  1165. ,
  1166. MODE_ENTRY_7_REG(
  1167. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCF |
  1168. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1169. ST25R3916_REG_AUX,
  1170. ST25R3916_REG_AUX_dis_corr,
  1171. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  1172. ,
  1173. ST25R3916_REG_RX_CONF1,
  1174. 0xFF,
  1175. 0x13,
  1176. ST25R3916_REG_RX_CONF2,
  1177. 0xFF,
  1178. 0x3D,
  1179. ST25R3916_REG_RX_CONF3,
  1180. 0xFF,
  1181. 0x00,
  1182. ST25R3916_REG_RX_CONF4,
  1183. 0xFF,
  1184. 0x00,
  1185. ST25R3916_REG_CORR_CONF1,
  1186. 0xFF,
  1187. 0x54,
  1188. ST25R3916_REG_CORR_CONF2,
  1189. 0xFF,
  1190. 0x00)
  1191. #endif /*RFAL_USE_COHE*/
  1192. ,
  1193. MODE_ENTRY_1_REG(
  1194. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV | RFAL_ANALOG_CONFIG_BITRATE_1OF4 |
  1195. RFAL_ANALOG_CONFIG_TX),
  1196. ST25R3916_REG_MODE,
  1197. ST25R3916_REG_MODE_tr_am,
  1198. ST25R3916_REG_MODE_tr_am_ook /* Use OOK */
  1199. )
  1200. #ifdef RFAL_USE_COHE
  1201. /****** Default Analog Configuration for Poll NFC-V Rx Common ******/
  1202. ,
  1203. MODE_ENTRY_7_REG(
  1204. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV |
  1205. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1206. ST25R3916_REG_AUX,
  1207. ST25R3916_REG_AUX_dis_corr,
  1208. ST25R3916_REG_AUX_dis_corr_coherent /* Use Pulse Receiver */
  1209. ,
  1210. ST25R3916_REG_RX_CONF1,
  1211. 0xFF,
  1212. 0x13,
  1213. ST25R3916_REG_RX_CONF2,
  1214. 0xFF,
  1215. 0x2D,
  1216. ST25R3916_REG_RX_CONF3,
  1217. 0xFF,
  1218. 0x00,
  1219. ST25R3916_REG_RX_CONF4,
  1220. 0xFF,
  1221. 0x00,
  1222. ST25R3916_REG_CORR_CONF1,
  1223. 0xFF,
  1224. 0x13,
  1225. ST25R3916_REG_CORR_CONF2,
  1226. 0xFF,
  1227. 0x01)
  1228. #else
  1229. /****** Default Analog Configuration for Poll NFC-V Rx Common ******/
  1230. ,
  1231. MODE_ENTRY_7_REG(
  1232. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV |
  1233. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1234. ST25R3916_REG_AUX,
  1235. ST25R3916_REG_AUX_dis_corr,
  1236. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  1237. ,
  1238. ST25R3916_REG_RX_CONF1,
  1239. 0xFF,
  1240. 0x13,
  1241. ST25R3916_REG_RX_CONF2,
  1242. 0xFF,
  1243. 0x2D,
  1244. ST25R3916_REG_RX_CONF3,
  1245. 0xFF,
  1246. 0x00,
  1247. ST25R3916_REG_RX_CONF4,
  1248. 0xFF,
  1249. 0x00,
  1250. ST25R3916_REG_CORR_CONF1,
  1251. 0xFF,
  1252. 0x13,
  1253. ST25R3916_REG_CORR_CONF2,
  1254. 0xFF,
  1255. 0x01)
  1256. #endif /*RFAL_USE_COHE*/
  1257. /****** Default Analog Configuration for Poll AP2P Tx 106 ******/
  1258. ,
  1259. MODE_ENTRY_5_REG(
  1260. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_106 |
  1261. RFAL_ANALOG_CONFIG_TX),
  1262. ST25R3916_REG_MODE,
  1263. ST25R3916_REG_MODE_tr_am,
  1264. ST25R3916_REG_MODE_tr_am_ook /* Use OOK modulation */
  1265. ,
  1266. ST25R3916_REG_OVERSHOOT_CONF1,
  1267. 0xFF,
  1268. 0x40 /* Set default Overshoot Protection */
  1269. ,
  1270. ST25R3916_REG_OVERSHOOT_CONF2,
  1271. 0xFF,
  1272. 0x03 /* Set default Overshoot Protection */
  1273. ,
  1274. ST25R3916_REG_UNDERSHOOT_CONF1,
  1275. 0xFF,
  1276. 0x40 /* Set default Undershoot Protection */
  1277. ,
  1278. ST25R3916_REG_UNDERSHOOT_CONF2,
  1279. 0xFF,
  1280. 0x03 /* Set default Undershoot Protection */
  1281. )
  1282. /****** Default Analog Configuration for Poll AP2P Tx 212 ******/
  1283. ,
  1284. MODE_ENTRY_1_REG(
  1285. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_212 |
  1286. RFAL_ANALOG_CONFIG_TX),
  1287. ST25R3916_REG_MODE,
  1288. ST25R3916_REG_MODE_tr_am,
  1289. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1290. )
  1291. /****** Default Analog Configuration for Poll AP2P Tx 424 ******/
  1292. ,
  1293. MODE_ENTRY_1_REG(
  1294. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_424 |
  1295. RFAL_ANALOG_CONFIG_TX),
  1296. ST25R3916_REG_MODE,
  1297. ST25R3916_REG_MODE_tr_am,
  1298. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1299. )
  1300. /****** Default Analog Configuration for Chip-Specific Listen On ******/
  1301. ,
  1302. MODE_ENTRY_6_REG(
  1303. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_LISTEN_ON),
  1304. ST25R3916_REG_ANT_TUNE_A,
  1305. 0xFF,
  1306. 0x00 /* Set Antenna Tuning (Listener): ANTL */
  1307. ,
  1308. ST25R3916_REG_ANT_TUNE_B,
  1309. 0xFF,
  1310. 0xff /* Set Antenna Tuning (Listener): ANTL */
  1311. ,
  1312. ST25R3916_REG_OVERSHOOT_CONF1,
  1313. 0xFF,
  1314. 0x00 /* Disable Overshoot Protection */
  1315. ,
  1316. ST25R3916_REG_OVERSHOOT_CONF2,
  1317. 0xFF,
  1318. 0x00 /* Disable Overshoot Protection */
  1319. ,
  1320. ST25R3916_REG_UNDERSHOOT_CONF1,
  1321. 0xFF,
  1322. 0x00 /* Disable Undershoot Protection */
  1323. ,
  1324. ST25R3916_REG_UNDERSHOOT_CONF2,
  1325. 0xFF,
  1326. 0x00 /* Disable Undershoot Protection */
  1327. )
  1328. /****** Default Analog Configuration for Listen AP2P Tx Common ******/
  1329. ,
  1330. MODE_ENTRY_7_REG(
  1331. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1332. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_TX),
  1333. ST25R3916_REG_ANT_TUNE_A,
  1334. 0xFF,
  1335. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  1336. ,
  1337. ST25R3916_REG_ANT_TUNE_B,
  1338. 0xFF,
  1339. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  1340. ,
  1341. ST25R3916_REG_TX_DRIVER,
  1342. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  1343. ST25R3916_REG_TX_DRIVER_am_mod_12percent /* Set Modulation index */
  1344. ,
  1345. ST25R3916_REG_OVERSHOOT_CONF1,
  1346. 0xFF,
  1347. 0x00 /* Disable Overshoot Protection */
  1348. ,
  1349. ST25R3916_REG_OVERSHOOT_CONF2,
  1350. 0xFF,
  1351. 0x00 /* Disable Overshoot Protection */
  1352. ,
  1353. ST25R3916_REG_UNDERSHOOT_CONF1,
  1354. 0xFF,
  1355. 0x00 /* Disable Undershoot Protection */
  1356. ,
  1357. ST25R3916_REG_UNDERSHOOT_CONF2,
  1358. 0xFF,
  1359. 0x00 /* Disable Undershoot Protection */
  1360. )
  1361. /****** Default Analog Configuration for Listen AP2P Rx Common ******/
  1362. ,
  1363. MODE_ENTRY_3_REG(
  1364. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1365. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1366. ST25R3916_REG_RX_CONF1,
  1367. ST25R3916_REG_RX_CONF1_lp_mask,
  1368. ST25R3916_REG_RX_CONF1_lp_1200khz /* Set Rx filter configuration */
  1369. ,
  1370. ST25R3916_REG_RX_CONF1,
  1371. ST25R3916_REG_RX_CONF1_hz_mask,
  1372. ST25R3916_REG_RX_CONF1_hz_12_200khz /* Set Rx filter configuration */
  1373. ,
  1374. ST25R3916_REG_RX_CONF2,
  1375. ST25R3916_REG_RX_CONF2_amd_sel,
  1376. ST25R3916_REG_RX_CONF2_amd_sel_mixer /* AM demodulator: mixer */
  1377. )
  1378. /****** Default Analog Configuration for Listen AP2P Tx 106 ******/
  1379. ,
  1380. MODE_ENTRY_5_REG(
  1381. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1382. RFAL_ANALOG_CONFIG_BITRATE_106 | RFAL_ANALOG_CONFIG_TX),
  1383. ST25R3916_REG_MODE,
  1384. ST25R3916_REG_MODE_tr_am,
  1385. ST25R3916_REG_MODE_tr_am_ook /* Use OOK modulation */
  1386. ,
  1387. ST25R3916_REG_OVERSHOOT_CONF1,
  1388. 0xFF,
  1389. 0x40 /* Set default Overshoot Protection */
  1390. ,
  1391. ST25R3916_REG_OVERSHOOT_CONF2,
  1392. 0xFF,
  1393. 0x03 /* Set default Overshoot Protection */
  1394. ,
  1395. ST25R3916_REG_UNDERSHOOT_CONF1,
  1396. 0xFF,
  1397. 0x40 /* Set default Undershoot Protection */
  1398. ,
  1399. ST25R3916_REG_UNDERSHOOT_CONF2,
  1400. 0xFF,
  1401. 0x03 /* Set default Undershoot Protection */
  1402. )
  1403. /****** Default Analog Configuration for Listen AP2P Tx 212 ******/
  1404. ,
  1405. MODE_ENTRY_1_REG(
  1406. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1407. RFAL_ANALOG_CONFIG_BITRATE_212 | RFAL_ANALOG_CONFIG_TX),
  1408. ST25R3916_REG_MODE,
  1409. ST25R3916_REG_MODE_tr_am,
  1410. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1411. )
  1412. /****** Default Analog Configuration for Listen AP2P Tx 424 ******/
  1413. ,
  1414. MODE_ENTRY_1_REG(
  1415. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1416. RFAL_ANALOG_CONFIG_BITRATE_424 | RFAL_ANALOG_CONFIG_TX),
  1417. ST25R3916_REG_MODE,
  1418. ST25R3916_REG_MODE_tr_am,
  1419. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1420. )
  1421. };
  1422. #endif /* ST25R3916_ANALOGCONFIG_H */