rfal_analogConfigTbl.h 85 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487
  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 "../../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), \
  282. (uint8_t)(V10)
  283. /*! Macro for Configuration Setting with twelve register-mask-value sets:
  284. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  285. #define MODE_ENTRY_12_REG( \
  286. MODE, \
  287. R0, \
  288. M0, \
  289. V0, \
  290. R1, \
  291. M1, \
  292. V1, \
  293. R2, \
  294. M2, \
  295. V2, \
  296. R3, \
  297. M3, \
  298. V3, \
  299. R4, \
  300. M4, \
  301. V4, \
  302. R5, \
  303. M5, \
  304. V5, \
  305. R6, \
  306. M6, \
  307. V6, \
  308. R7, \
  309. M7, \
  310. V7, \
  311. R8, \
  312. M8, \
  313. V8, \
  314. R9, \
  315. M9, \
  316. V9, \
  317. R10, \
  318. M10, \
  319. V10, \
  320. R11, \
  321. M11, \
  322. V11) \
  323. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE) & 0xFFU), 12, \
  324. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0) & 0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  325. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1) & 0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  326. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2) & 0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  327. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3) & 0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  328. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4) & 0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  329. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5) & 0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  330. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6) & 0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  331. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7) & 0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  332. (uint8_t)((uint16_t)(R8) >> 8U), (uint8_t)((R8) & 0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  333. (uint8_t)((uint16_t)(R9) >> 8U), (uint8_t)((R9) & 0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  334. (uint8_t)((uint16_t)(R10) >> 8U), (uint8_t)((R10) & 0xFFU), (uint8_t)(M10), \
  335. (uint8_t)(V10), (uint8_t)((uint16_t)(R11) >> 8U), (uint8_t)((R11) & 0xFFU), \
  336. (uint8_t)(M11), (uint8_t)(V11)
  337. /*! Macro for Configuration Setting with thirteen register-mask-value sets:
  338. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  339. #define MODE_ENTRY_13_REG( \
  340. MODE, \
  341. R0, \
  342. M0, \
  343. V0, \
  344. R1, \
  345. M1, \
  346. V1, \
  347. R2, \
  348. M2, \
  349. V2, \
  350. R3, \
  351. M3, \
  352. V3, \
  353. R4, \
  354. M4, \
  355. V4, \
  356. R5, \
  357. M5, \
  358. V5, \
  359. R6, \
  360. M6, \
  361. V6, \
  362. R7, \
  363. M7, \
  364. V7, \
  365. R8, \
  366. M8, \
  367. V8, \
  368. R9, \
  369. M9, \
  370. V9, \
  371. R10, \
  372. M10, \
  373. V10, \
  374. R11, \
  375. M11, \
  376. V11, \
  377. R12, \
  378. M12, \
  379. V12) \
  380. (uint8_t)((uint16_t)(MODE) >> 8U), (uint8_t)((MODE) & 0xFFU), 13, \
  381. (uint8_t)((uint16_t)(R0) >> 8U), (uint8_t)((R0) & 0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  382. (uint8_t)((uint16_t)(R1) >> 8U), (uint8_t)((R1) & 0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  383. (uint8_t)((uint16_t)(R2) >> 8U), (uint8_t)((R2) & 0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  384. (uint8_t)((uint16_t)(R3) >> 8U), (uint8_t)((R3) & 0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  385. (uint8_t)((uint16_t)(R4) >> 8U), (uint8_t)((R4) & 0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  386. (uint8_t)((uint16_t)(R5) >> 8U), (uint8_t)((R5) & 0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  387. (uint8_t)((uint16_t)(R6) >> 8U), (uint8_t)((R6) & 0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  388. (uint8_t)((uint16_t)(R7) >> 8U), (uint8_t)((R7) & 0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  389. (uint8_t)((uint16_t)(R8) >> 8U), (uint8_t)((R8) & 0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  390. (uint8_t)((uint16_t)(R9) >> 8U), (uint8_t)((R9) & 0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  391. (uint8_t)((uint16_t)(R10) >> 8U), (uint8_t)((R10) & 0xFFU), (uint8_t)(M10), \
  392. (uint8_t)(V10), (uint8_t)((uint16_t)(R11) >> 8U), (uint8_t)((R11) & 0xFFU), \
  393. (uint8_t)(M11), (uint8_t)(V11), (uint8_t)((uint16_t)(R12) >> 8U), \
  394. (uint8_t)((R12) & 0xFFU), (uint8_t)(M12), (uint8_t)(V12)
  395. /*! Macro for Configuration Setting with fourteen register-mask-value sets:
  396. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  397. #define MODE_ENTRY_14_REG( \
  398. MODE, \
  399. R0, \
  400. M0, \
  401. V0, \
  402. R1, \
  403. M1, \
  404. V1, \
  405. R2, \
  406. M2, \
  407. V2, \
  408. R3, \
  409. M3, \
  410. V3, \
  411. R4, \
  412. M4, \
  413. V4, \
  414. R5, \
  415. M5, \
  416. V5, \
  417. R6, \
  418. M6, \
  419. V6, \
  420. R7, \
  421. M7, \
  422. V7, \
  423. R8, \
  424. M8, \
  425. V8, \
  426. R9, \
  427. M9, \
  428. V9, \
  429. R10, \
  430. M10, \
  431. V10, \
  432. R11, \
  433. M11, \
  434. V11, \
  435. R12, \
  436. M12, \
  437. V12, \
  438. R13, \
  439. M13, \
  440. V13, \
  441. R14, \
  442. M14, \
  443. V14, \
  444. R15, \
  445. M15, \
  446. V15) \
  447. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE) & 0xFFU), 14, \
  448. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0) & 0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  449. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1) & 0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  450. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2) & 0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  451. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3) & 0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  452. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4) & 0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  453. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5) & 0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  454. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6) & 0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  455. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7) & 0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  456. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8) & 0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  457. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9) & 0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  458. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10) & 0xFFU), (uint8_t)(M10), \
  459. (uint8_t)(V10), (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11) & 0xFFU), \
  460. (uint8_t)(M11), (uint8_t)(V11), (uint8_t)((uint16_t)(R12) >> 8), \
  461. (uint8_t)((R12) & 0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  462. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13) & 0xFFU), (uint8_t)(M13), (uint8_t)(V13)
  463. /*! Macro for Configuration Setting with fifteen register-mask-value sets:
  464. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  465. #define MODE_ENTRY_15_REG( \
  466. MODE, \
  467. R0, \
  468. M0, \
  469. V0, \
  470. R1, \
  471. M1, \
  472. V1, \
  473. R2, \
  474. M2, \
  475. V2, \
  476. R3, \
  477. M3, \
  478. V3, \
  479. R4, \
  480. M4, \
  481. V4, \
  482. R5, \
  483. M5, \
  484. V5, \
  485. R6, \
  486. M6, \
  487. V6, \
  488. R7, \
  489. M7, \
  490. V7, \
  491. R8, \
  492. M8, \
  493. V8, \
  494. R9, \
  495. M9, \
  496. V9, \
  497. R10, \
  498. M10, \
  499. V10, \
  500. R11, \
  501. M11, \
  502. V11, \
  503. R12, \
  504. M12, \
  505. V12, \
  506. R13, \
  507. M13, \
  508. V13, \
  509. R14, \
  510. M14, \
  511. V14, \
  512. R15, \
  513. M15, \
  514. V15) \
  515. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE) & 0xFFU), 15, \
  516. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0) & 0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  517. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1) & 0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  518. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2) & 0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  519. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3) & 0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  520. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4) & 0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  521. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5) & 0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  522. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6) & 0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  523. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7) & 0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  524. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8) & 0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  525. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9) & 0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  526. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10) & 0xFFU), (uint8_t)(M10), \
  527. (uint8_t)(V10), (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11) & 0xFFU), \
  528. (uint8_t)(M11), (uint8_t)(V11), (uint8_t)((uint16_t)(R12) >> 8), \
  529. (uint8_t)((R12) & 0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  530. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13) & 0xFFU), (uint8_t)(M13), \
  531. (uint8_t)(V13), (uint8_t)((uint16_t)(R14) >> 8), (uint8_t)((R14) & 0xFFU), \
  532. (uint8_t)(M14), (uint8_t)(V14)
  533. /*! Macro for Configuration Setting with sixteen register-mask-value sets:
  534. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  535. #define MODE_ENTRY_16_REG( \
  536. MODE, \
  537. R0, \
  538. M0, \
  539. V0, \
  540. R1, \
  541. M1, \
  542. V1, \
  543. R2, \
  544. M2, \
  545. V2, \
  546. R3, \
  547. M3, \
  548. V3, \
  549. R4, \
  550. M4, \
  551. V4, \
  552. R5, \
  553. M5, \
  554. V5, \
  555. R6, \
  556. M6, \
  557. V6, \
  558. R7, \
  559. M7, \
  560. V7, \
  561. R8, \
  562. M8, \
  563. V8, \
  564. R9, \
  565. M9, \
  566. V9, \
  567. R10, \
  568. M10, \
  569. V10, \
  570. R11, \
  571. M11, \
  572. V11, \
  573. R12, \
  574. M12, \
  575. V12, \
  576. R13, \
  577. M13, \
  578. V13, \
  579. R14, \
  580. M14, \
  581. V14, \
  582. R15, \
  583. M15, \
  584. V15) \
  585. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE) & 0xFFU), 16, \
  586. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0) & 0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  587. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1) & 0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  588. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2) & 0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  589. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3) & 0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  590. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4) & 0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  591. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5) & 0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  592. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6) & 0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  593. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7) & 0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  594. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8) & 0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  595. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9) & 0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  596. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10) & 0xFFU), (uint8_t)(M10), \
  597. (uint8_t)(V10), (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11) & 0xFFU), \
  598. (uint8_t)(M11), (uint8_t)(V11), (uint8_t)((uint16_t)(R12) >> 8), \
  599. (uint8_t)((R12) & 0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  600. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13) & 0xFFU), (uint8_t)(M13), \
  601. (uint8_t)(V13), (uint8_t)((uint16_t)(R14) >> 8), (uint8_t)((R14) & 0xFFU), \
  602. (uint8_t)(M14), (uint8_t)(V14), (uint8_t)((uint16_t)(R15) >> 8), \
  603. (uint8_t)((R15) & 0xFFU), (uint8_t)(M15), (uint8_t)(V15)
  604. /*! Macro for Configuration Setting with seventeen register-mask-value sets:
  605. * - Configuration ID[2], Number of Register sets to follow[1], Register[2], Mask[1], Value[1], Register[2], Mask[1], Value[1], Register[2]... */
  606. #define MODE_ENTRY_17_REG( \
  607. MODE, \
  608. R0, \
  609. M0, \
  610. V0, \
  611. R1, \
  612. M1, \
  613. V1, \
  614. R2, \
  615. M2, \
  616. V2, \
  617. R3, \
  618. M3, \
  619. V3, \
  620. R4, \
  621. M4, \
  622. V4, \
  623. R5, \
  624. M5, \
  625. V5, \
  626. R6, \
  627. M6, \
  628. V6, \
  629. R7, \
  630. M7, \
  631. V7, \
  632. R8, \
  633. M8, \
  634. V8, \
  635. R9, \
  636. M9, \
  637. V9, \
  638. R10, \
  639. M10, \
  640. V10, \
  641. R11, \
  642. M11, \
  643. V11, \
  644. R12, \
  645. M12, \
  646. V12, \
  647. R13, \
  648. M13, \
  649. V13, \
  650. R14, \
  651. M14, \
  652. V14, \
  653. R15, \
  654. M15, \
  655. V15, \
  656. R16, \
  657. M16, \
  658. V16) \
  659. (uint8_t)((uint16_t)(MODE) >> 8), (uint8_t)((MODE) & 0xFFU), 17, \
  660. (uint8_t)((uint16_t)(R0) >> 8), (uint8_t)((R0) & 0xFFU), (uint8_t)(M0), (uint8_t)(V0), \
  661. (uint8_t)((uint16_t)(R1) >> 8), (uint8_t)((R1) & 0xFFU), (uint8_t)(M1), (uint8_t)(V1), \
  662. (uint8_t)((uint16_t)(R2) >> 8), (uint8_t)((R2) & 0xFFU), (uint8_t)(M2), (uint8_t)(V2), \
  663. (uint8_t)((uint16_t)(R3) >> 8), (uint8_t)((R3) & 0xFFU), (uint8_t)(M3), (uint8_t)(V3), \
  664. (uint8_t)((uint16_t)(R4) >> 8), (uint8_t)((R4) & 0xFFU), (uint8_t)(M4), (uint8_t)(V4), \
  665. (uint8_t)((uint16_t)(R5) >> 8), (uint8_t)((R5) & 0xFFU), (uint8_t)(M5), (uint8_t)(V5), \
  666. (uint8_t)((uint16_t)(R6) >> 8), (uint8_t)((R6) & 0xFFU), (uint8_t)(M6), (uint8_t)(V6), \
  667. (uint8_t)((uint16_t)(R7) >> 8), (uint8_t)((R7) & 0xFFU), (uint8_t)(M7), (uint8_t)(V7), \
  668. (uint8_t)((uint16_t)(R8) >> 8), (uint8_t)((R8) & 0xFFU), (uint8_t)(M8), (uint8_t)(V8), \
  669. (uint8_t)((uint16_t)(R9) >> 8), (uint8_t)((R9) & 0xFFU), (uint8_t)(M9), (uint8_t)(V9), \
  670. (uint8_t)((uint16_t)(R10) >> 8), (uint8_t)((R10) & 0xFFU), (uint8_t)(M10), \
  671. (uint8_t)(V10), (uint8_t)((uint16_t)(R11) >> 8), (uint8_t)((R11) & 0xFFU), \
  672. (uint8_t)(M11), (uint8_t)(V11), (uint8_t)((uint16_t)(R12) >> 8), \
  673. (uint8_t)((R12) & 0xFFU), (uint8_t)(M12), (uint8_t)(V12), \
  674. (uint8_t)((uint16_t)(R13) >> 8), (uint8_t)((R13) & 0xFFU), (uint8_t)(M13), \
  675. (uint8_t)(V13), (uint8_t)((uint16_t)(R14) >> 8), (uint8_t)((R14) & 0xFFU), \
  676. (uint8_t)(M14), (uint8_t)(V14), (uint8_t)((uint16_t)(R15) >> 8), \
  677. (uint8_t)((R15) & 0xFFU), (uint8_t)(M15), (uint8_t)(V15), \
  678. (uint8_t)((uint16_t)(R16) >> 8), (uint8_t)((R16) & 0xFFU), (uint8_t)(M16), (uint8_t)(V16)
  679. /*
  680. ******************************************************************************
  681. * GLOBAL DATA TYPES
  682. ******************************************************************************
  683. */
  684. /* 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 */
  685. const uint8_t rfalAnalogConfigDefaultSettings[] = {
  686. /****** Default Analog Configuration for Chip-Specific Reset ******/
  687. MODE_ENTRY_17_REG(
  688. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_INIT),
  689. ST25R3916_REG_IO_CONF1,
  690. (ST25R3916_REG_IO_CONF1_out_cl_mask | ST25R3916_REG_IO_CONF1_lf_clk_off),
  691. 0x07 /* Disable MCU_CLK */
  692. ,
  693. ST25R3916_REG_IO_CONF2,
  694. (ST25R3916_REG_IO_CONF2_miso_pd1 | ST25R3916_REG_IO_CONF2_miso_pd2),
  695. 0x18 /* SPI Pull downs */
  696. ,
  697. ST25R3916_REG_IO_CONF2,
  698. ST25R3916_REG_IO_CONF2_aat_en,
  699. ST25R3916_REG_IO_CONF2_aat_en /* Enable AAT */
  700. ,
  701. ST25R3916_REG_TX_DRIVER,
  702. ST25R3916_REG_TX_DRIVER_d_res_mask,
  703. 0x00 /* Set RFO resistance Active Tx */
  704. ,
  705. ST25R3916_REG_RES_AM_MOD,
  706. 0xFF,
  707. 0x80 /* Use minimum non-overlap */
  708. ,
  709. ST25R3916_REG_FIELD_THRESHOLD_ACTV,
  710. ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_mask,
  711. ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_105mV /* Lower activation threshold (higher than deactivation)*/
  712. ,
  713. ST25R3916_REG_FIELD_THRESHOLD_ACTV,
  714. ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_mask,
  715. ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_105mV /* Lower activation threshold (higher than deactivation)*/
  716. ,
  717. ST25R3916_REG_FIELD_THRESHOLD_DEACTV,
  718. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_mask,
  719. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_75mV /* Lower deactivation threshold */
  720. ,
  721. ST25R3916_REG_FIELD_THRESHOLD_DEACTV,
  722. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_mask,
  723. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_75mV /* Lower deactivation threshold */
  724. ,
  725. ST25R3916_REG_AUX_MOD,
  726. ST25R3916_REG_AUX_MOD_lm_ext,
  727. 0x00 /* Disable External Load Modulation */
  728. ,
  729. ST25R3916_REG_AUX_MOD,
  730. ST25R3916_REG_AUX_MOD_lm_dri,
  731. ST25R3916_REG_AUX_MOD_lm_dri /* Use internal Load Modulation */
  732. ,
  733. ST25R3916_REG_PASSIVE_TARGET,
  734. ST25R3916_REG_PASSIVE_TARGET_fdel_mask,
  735. (5U
  736. << ST25R3916_REG_PASSIVE_TARGET_fdel_shift) /* Adjust the FDT to be aligned with the bitgrid */
  737. ,
  738. ST25R3916_REG_PT_MOD,
  739. (ST25R3916_REG_PT_MOD_ptm_res_mask | ST25R3916_REG_PT_MOD_pt_res_mask),
  740. 0x5f /* Reduce RFO resistance in Modulated state */
  741. ,
  742. ST25R3916_REG_EMD_SUP_CONF,
  743. ST25R3916_REG_EMD_SUP_CONF_rx_start_emv,
  744. ST25R3916_REG_EMD_SUP_CONF_rx_start_emv_on /* Enable start on first 4 bits */
  745. ,
  746. ST25R3916_REG_ANT_TUNE_A,
  747. 0xFF,
  748. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  749. ,
  750. ST25R3916_REG_ANT_TUNE_B,
  751. 0xFF,
  752. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  753. ,
  754. 0x84U,
  755. 0x10,
  756. 0x10 /* Avoid chip internal overheat protection */
  757. )
  758. /****** Default Analog Configuration for Chip-Specific Poll Common ******/
  759. ,
  760. MODE_ENTRY_9_REG(
  761. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_POLL_COMMON),
  762. ST25R3916_REG_MODE,
  763. ST25R3916_REG_MODE_tr_am,
  764. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  765. ,
  766. ST25R3916_REG_TX_DRIVER,
  767. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  768. ST25R3916_REG_TX_DRIVER_am_mod_12percent /* Set Modulation index */
  769. ,
  770. ST25R3916_REG_AUX_MOD,
  771. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  772. 0x00 /* Use AM via regulator */
  773. ,
  774. ST25R3916_REG_ANT_TUNE_A,
  775. 0xFF,
  776. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  777. ,
  778. ST25R3916_REG_ANT_TUNE_B,
  779. 0xFF,
  780. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  781. ,
  782. ST25R3916_REG_OVERSHOOT_CONF1,
  783. 0xFF,
  784. 0x00 /* Disable Overshoot Protection */
  785. ,
  786. ST25R3916_REG_OVERSHOOT_CONF2,
  787. 0xFF,
  788. 0x00 /* Disable Overshoot Protection */
  789. ,
  790. ST25R3916_REG_UNDERSHOOT_CONF1,
  791. 0xFF,
  792. 0x00 /* Disable Undershoot Protection */
  793. ,
  794. ST25R3916_REG_UNDERSHOOT_CONF2,
  795. 0xFF,
  796. 0x00 /* Disable Undershoot Protection */
  797. )
  798. /****** Default Analog Configuration for Poll NFC-A Rx Common ******/
  799. ,
  800. MODE_ENTRY_1_REG(
  801. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA |
  802. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  803. ST25R3916_REG_AUX,
  804. ST25R3916_REG_AUX_dis_corr,
  805. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  806. )
  807. /****** Default Analog Configuration for Poll NFC-A Tx 106 ******/
  808. ,
  809. MODE_ENTRY_5_REG(
  810. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_106 |
  811. RFAL_ANALOG_CONFIG_TX),
  812. ST25R3916_REG_MODE,
  813. ST25R3916_REG_MODE_tr_am,
  814. ST25R3916_REG_MODE_tr_am_ook /* Use OOK */
  815. ,
  816. ST25R3916_REG_OVERSHOOT_CONF1,
  817. 0xFF,
  818. 0x40 /* Set default Overshoot Protection */
  819. ,
  820. ST25R3916_REG_OVERSHOOT_CONF2,
  821. 0xFF,
  822. 0x03 /* Set default Overshoot Protection */
  823. ,
  824. ST25R3916_REG_UNDERSHOOT_CONF1,
  825. 0xFF,
  826. 0x40 /* Set default Undershoot Protection */
  827. ,
  828. ST25R3916_REG_UNDERSHOOT_CONF2,
  829. 0xFF,
  830. 0x03 /* Set default Undershoot Protection */
  831. )
  832. /****** Default Analog Configuration for Poll NFC-A Rx 106 ******/
  833. ,
  834. MODE_ENTRY_6_REG(
  835. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_106 |
  836. RFAL_ANALOG_CONFIG_RX),
  837. ST25R3916_REG_RX_CONF1,
  838. 0xFF,
  839. 0x08,
  840. ST25R3916_REG_RX_CONF2,
  841. 0xFF,
  842. 0x2D,
  843. ST25R3916_REG_RX_CONF3,
  844. 0xFF,
  845. 0x00,
  846. ST25R3916_REG_RX_CONF4,
  847. 0xFF,
  848. 0x00,
  849. ST25R3916_REG_CORR_CONF1,
  850. 0xFF,
  851. 0x51,
  852. ST25R3916_REG_CORR_CONF2,
  853. 0xFF,
  854. 0x00)
  855. /****** Default Analog Configuration for Poll NFC-A Tx 212 ******/
  856. ,
  857. MODE_ENTRY_7_REG(
  858. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_212 |
  859. RFAL_ANALOG_CONFIG_TX),
  860. ST25R3916_REG_MODE,
  861. ST25R3916_REG_MODE_tr_am,
  862. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  863. ,
  864. ST25R3916_REG_AUX_MOD,
  865. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  866. 0x88 /* Use Resistive AM */
  867. ,
  868. ST25R3916_REG_RES_AM_MOD,
  869. ST25R3916_REG_RES_AM_MOD_md_res_mask,
  870. 0x7F /* Set Resistive modulation */
  871. ,
  872. ST25R3916_REG_OVERSHOOT_CONF1,
  873. 0xFF,
  874. 0x40 /* Set default Overshoot Protection */
  875. ,
  876. ST25R3916_REG_OVERSHOOT_CONF2,
  877. 0xFF,
  878. 0x03 /* Set default Overshoot Protection */
  879. ,
  880. ST25R3916_REG_UNDERSHOOT_CONF1,
  881. 0xFF,
  882. 0x40 /* Set default Undershoot Protection */
  883. ,
  884. ST25R3916_REG_UNDERSHOOT_CONF2,
  885. 0xFF,
  886. 0x03 /* Set default Undershoot Protection */
  887. )
  888. /****** Default Analog Configuration for Poll NFC-A Rx 212 ******/
  889. ,
  890. MODE_ENTRY_6_REG(
  891. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_212 |
  892. RFAL_ANALOG_CONFIG_RX),
  893. ST25R3916_REG_RX_CONF1,
  894. 0xFF,
  895. 0x02,
  896. ST25R3916_REG_RX_CONF2,
  897. 0xFF,
  898. 0x3D,
  899. ST25R3916_REG_RX_CONF3,
  900. 0xFF,
  901. 0x00,
  902. ST25R3916_REG_RX_CONF4,
  903. 0xFF,
  904. 0x00,
  905. ST25R3916_REG_CORR_CONF1,
  906. 0xFF,
  907. 0x14,
  908. ST25R3916_REG_CORR_CONF2,
  909. 0xFF,
  910. 0x00)
  911. /****** Default Analog Configuration for Poll NFC-A Tx 424 ******/
  912. ,
  913. MODE_ENTRY_7_REG(
  914. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_424 |
  915. RFAL_ANALOG_CONFIG_TX),
  916. ST25R3916_REG_MODE,
  917. ST25R3916_REG_MODE_tr_am,
  918. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  919. ,
  920. ST25R3916_REG_AUX_MOD,
  921. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  922. 0x88 /* Use Resistive AM */
  923. ,
  924. ST25R3916_REG_RES_AM_MOD,
  925. ST25R3916_REG_RES_AM_MOD_md_res_mask,
  926. 0x7F /* Set Resistive modulation */
  927. ,
  928. ST25R3916_REG_OVERSHOOT_CONF1,
  929. 0xFF,
  930. 0x40 /* Set default Overshoot Protection */
  931. ,
  932. ST25R3916_REG_OVERSHOOT_CONF2,
  933. 0xFF,
  934. 0x03 /* Set default Overshoot Protection */
  935. ,
  936. ST25R3916_REG_UNDERSHOOT_CONF1,
  937. 0xFF,
  938. 0x40 /* Set default Undershoot Protection */
  939. ,
  940. ST25R3916_REG_UNDERSHOOT_CONF2,
  941. 0xFF,
  942. 0x03 /* Set default Undershoot Protection */
  943. )
  944. /****** Default Analog Configuration for Poll NFC-A Rx 424 ******/
  945. ,
  946. MODE_ENTRY_6_REG(
  947. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_424 |
  948. RFAL_ANALOG_CONFIG_RX),
  949. ST25R3916_REG_RX_CONF1,
  950. 0xFF,
  951. 0x42,
  952. ST25R3916_REG_RX_CONF2,
  953. 0xFF,
  954. 0x3D,
  955. ST25R3916_REG_RX_CONF3,
  956. 0xFF,
  957. 0x00,
  958. ST25R3916_REG_RX_CONF4,
  959. 0xFF,
  960. 0x00,
  961. ST25R3916_REG_CORR_CONF1,
  962. 0xFF,
  963. 0x54,
  964. ST25R3916_REG_CORR_CONF2,
  965. 0xFF,
  966. 0x00)
  967. /****** Default Analog Configuration for Poll NFC-A Tx 848 ******/
  968. ,
  969. MODE_ENTRY_7_REG(
  970. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_848 |
  971. RFAL_ANALOG_CONFIG_TX),
  972. ST25R3916_REG_MODE,
  973. ST25R3916_REG_MODE_tr_am,
  974. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  975. ,
  976. ST25R3916_REG_TX_DRIVER,
  977. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  978. ST25R3916_REG_TX_DRIVER_am_mod_40percent /* Set Modulation index */
  979. ,
  980. ST25R3916_REG_AUX_MOD,
  981. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  982. 0x00 /* Use AM via regulator */
  983. ,
  984. ST25R3916_REG_OVERSHOOT_CONF1,
  985. 0xFF,
  986. 0x00 /* Disable Overshoot Protection */
  987. ,
  988. ST25R3916_REG_OVERSHOOT_CONF2,
  989. 0xFF,
  990. 0x00 /* Disable Overshoot Protection */
  991. ,
  992. ST25R3916_REG_UNDERSHOOT_CONF1,
  993. 0xFF,
  994. 0x00 /* Disable Undershoot Protection */
  995. ,
  996. ST25R3916_REG_UNDERSHOOT_CONF2,
  997. 0xFF,
  998. 0x00 /* Disable Undershoot Protection */
  999. )
  1000. /****** Default Analog Configuration for Poll NFC-A Rx 848 ******/
  1001. ,
  1002. MODE_ENTRY_6_REG(
  1003. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_848 |
  1004. RFAL_ANALOG_CONFIG_RX),
  1005. ST25R3916_REG_RX_CONF1,
  1006. 0xFF,
  1007. 0x42,
  1008. ST25R3916_REG_RX_CONF2,
  1009. 0xFF,
  1010. 0x3D,
  1011. ST25R3916_REG_RX_CONF3,
  1012. 0xFF,
  1013. 0x00,
  1014. ST25R3916_REG_RX_CONF4,
  1015. 0xFF,
  1016. 0x00,
  1017. ST25R3916_REG_CORR_CONF1,
  1018. 0xFF,
  1019. 0x44,
  1020. ST25R3916_REG_CORR_CONF2,
  1021. 0xFF,
  1022. 0x00)
  1023. /****** Default Analog Configuration for Poll NFC-A Anticolision setting ******/
  1024. ,
  1025. MODE_ENTRY_1_REG(
  1026. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA |
  1027. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_ANTICOL),
  1028. ST25R3916_REG_CORR_CONF1,
  1029. ST25R3916_REG_CORR_CONF1_corr_s6,
  1030. 0x00 /* Set collision detection level different from data */
  1031. )
  1032. #ifdef RFAL_USE_COHE
  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_coherent /* Use Coherent Receiver */
  1041. )
  1042. #else
  1043. /****** Default Analog Configuration for Poll NFC-B Rx Common ******/
  1044. ,
  1045. MODE_ENTRY_1_REG(
  1046. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB |
  1047. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1048. ST25R3916_REG_AUX,
  1049. ST25R3916_REG_AUX_dis_corr,
  1050. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  1051. )
  1052. #endif /*RFAL_USE_COHE*/
  1053. /****** Default Analog Configuration for Poll NFC-B Rx 106 ******/
  1054. ,
  1055. MODE_ENTRY_6_REG(
  1056. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_106 |
  1057. RFAL_ANALOG_CONFIG_RX),
  1058. ST25R3916_REG_RX_CONF1,
  1059. 0xFF,
  1060. 0x04,
  1061. ST25R3916_REG_RX_CONF2,
  1062. 0xFF,
  1063. 0x3D,
  1064. ST25R3916_REG_RX_CONF3,
  1065. 0xFF,
  1066. 0x00,
  1067. ST25R3916_REG_RX_CONF4,
  1068. 0xFF,
  1069. 0x00,
  1070. ST25R3916_REG_CORR_CONF1,
  1071. 0xFF,
  1072. 0x1B,
  1073. ST25R3916_REG_CORR_CONF2,
  1074. 0xFF,
  1075. 0x00)
  1076. /****** Default Analog Configuration for Poll NFC-B Rx 212 ******/
  1077. ,
  1078. MODE_ENTRY_6_REG(
  1079. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_212 |
  1080. RFAL_ANALOG_CONFIG_RX),
  1081. ST25R3916_REG_RX_CONF1,
  1082. 0xFF,
  1083. 0x02,
  1084. ST25R3916_REG_RX_CONF2,
  1085. 0xFF,
  1086. 0x3D,
  1087. ST25R3916_REG_RX_CONF3,
  1088. 0xFF,
  1089. 0x00,
  1090. ST25R3916_REG_RX_CONF4,
  1091. 0xFF,
  1092. 0x00,
  1093. ST25R3916_REG_CORR_CONF1,
  1094. 0xFF,
  1095. 0x14,
  1096. ST25R3916_REG_CORR_CONF2,
  1097. 0xFF,
  1098. 0x00)
  1099. /****** Default Analog Configuration for Poll NFC-B Rx 424 ******/
  1100. ,
  1101. MODE_ENTRY_6_REG(
  1102. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_424 |
  1103. RFAL_ANALOG_CONFIG_RX),
  1104. ST25R3916_REG_RX_CONF1,
  1105. 0xFF,
  1106. 0x42,
  1107. ST25R3916_REG_RX_CONF2,
  1108. 0xFF,
  1109. 0x3D,
  1110. ST25R3916_REG_RX_CONF3,
  1111. 0xFF,
  1112. 0x00,
  1113. ST25R3916_REG_RX_CONF4,
  1114. 0xFF,
  1115. 0x00,
  1116. ST25R3916_REG_CORR_CONF1,
  1117. 0xFF,
  1118. 0x54,
  1119. ST25R3916_REG_CORR_CONF2,
  1120. 0xFF,
  1121. 0x00)
  1122. /****** Default Analog Configuration for Poll NFC-B Rx 848 ******/
  1123. ,
  1124. MODE_ENTRY_6_REG(
  1125. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_848 |
  1126. RFAL_ANALOG_CONFIG_RX),
  1127. ST25R3916_REG_RX_CONF1,
  1128. 0xFF,
  1129. 0x42,
  1130. ST25R3916_REG_RX_CONF2,
  1131. 0xFF,
  1132. 0x3D,
  1133. ST25R3916_REG_RX_CONF3,
  1134. 0xFF,
  1135. 0x00,
  1136. ST25R3916_REG_RX_CONF4,
  1137. 0xFF,
  1138. 0x00,
  1139. ST25R3916_REG_CORR_CONF1,
  1140. 0xFF,
  1141. 0x44,
  1142. ST25R3916_REG_CORR_CONF2,
  1143. 0xFF,
  1144. 0x00)
  1145. #ifdef RFAL_USE_COHE
  1146. /****** Default Analog Configuration for Poll NFC-F Rx Common ******/
  1147. ,
  1148. MODE_ENTRY_7_REG(
  1149. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCF |
  1150. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1151. ST25R3916_REG_AUX,
  1152. ST25R3916_REG_AUX_dis_corr,
  1153. ST25R3916_REG_AUX_dis_corr_coherent /* Use Pulse Receiver */
  1154. ,
  1155. ST25R3916_REG_RX_CONF1,
  1156. 0xFF,
  1157. 0x13,
  1158. ST25R3916_REG_RX_CONF2,
  1159. 0xFF,
  1160. 0x3D,
  1161. ST25R3916_REG_RX_CONF3,
  1162. 0xFF,
  1163. 0x00,
  1164. ST25R3916_REG_RX_CONF4,
  1165. 0xFF,
  1166. 0x00,
  1167. ST25R3916_REG_CORR_CONF1,
  1168. 0xFF,
  1169. 0x54,
  1170. ST25R3916_REG_CORR_CONF2,
  1171. 0xFF,
  1172. 0x00)
  1173. #else
  1174. /****** Default Analog Configuration for Poll NFC-F Rx Common ******/
  1175. ,
  1176. MODE_ENTRY_7_REG(
  1177. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCF |
  1178. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1179. ST25R3916_REG_AUX,
  1180. ST25R3916_REG_AUX_dis_corr,
  1181. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  1182. ,
  1183. ST25R3916_REG_RX_CONF1,
  1184. 0xFF,
  1185. 0x13,
  1186. ST25R3916_REG_RX_CONF2,
  1187. 0xFF,
  1188. 0x3D,
  1189. ST25R3916_REG_RX_CONF3,
  1190. 0xFF,
  1191. 0x00,
  1192. ST25R3916_REG_RX_CONF4,
  1193. 0xFF,
  1194. 0x00,
  1195. ST25R3916_REG_CORR_CONF1,
  1196. 0xFF,
  1197. 0x54,
  1198. ST25R3916_REG_CORR_CONF2,
  1199. 0xFF,
  1200. 0x00)
  1201. #endif /*RFAL_USE_COHE*/
  1202. ,
  1203. MODE_ENTRY_1_REG(
  1204. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV | RFAL_ANALOG_CONFIG_BITRATE_1OF4 |
  1205. RFAL_ANALOG_CONFIG_TX),
  1206. ST25R3916_REG_MODE,
  1207. ST25R3916_REG_MODE_tr_am,
  1208. ST25R3916_REG_MODE_tr_am_ook /* Use OOK */
  1209. )
  1210. #ifdef RFAL_USE_COHE
  1211. /****** Default Analog Configuration for Poll NFC-V Rx Common ******/
  1212. ,
  1213. MODE_ENTRY_7_REG(
  1214. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV |
  1215. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1216. ST25R3916_REG_AUX,
  1217. ST25R3916_REG_AUX_dis_corr,
  1218. ST25R3916_REG_AUX_dis_corr_coherent /* Use Pulse Receiver */
  1219. ,
  1220. ST25R3916_REG_RX_CONF1,
  1221. 0xFF,
  1222. 0x13,
  1223. ST25R3916_REG_RX_CONF2,
  1224. 0xFF,
  1225. 0x2D,
  1226. ST25R3916_REG_RX_CONF3,
  1227. 0xFF,
  1228. 0x00,
  1229. ST25R3916_REG_RX_CONF4,
  1230. 0xFF,
  1231. 0x00,
  1232. ST25R3916_REG_CORR_CONF1,
  1233. 0xFF,
  1234. 0x13,
  1235. ST25R3916_REG_CORR_CONF2,
  1236. 0xFF,
  1237. 0x01)
  1238. #else
  1239. /****** Default Analog Configuration for Poll NFC-V Rx Common ******/
  1240. ,
  1241. MODE_ENTRY_7_REG(
  1242. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV |
  1243. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1244. ST25R3916_REG_AUX,
  1245. ST25R3916_REG_AUX_dis_corr,
  1246. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  1247. ,
  1248. ST25R3916_REG_RX_CONF1,
  1249. 0xFF,
  1250. 0x13,
  1251. ST25R3916_REG_RX_CONF2,
  1252. 0xFF,
  1253. 0x2D,
  1254. ST25R3916_REG_RX_CONF3,
  1255. 0xFF,
  1256. 0x00,
  1257. ST25R3916_REG_RX_CONF4,
  1258. 0xFF,
  1259. 0x00,
  1260. ST25R3916_REG_CORR_CONF1,
  1261. 0xFF,
  1262. 0x13,
  1263. ST25R3916_REG_CORR_CONF2,
  1264. 0xFF,
  1265. 0x01)
  1266. #endif /*RFAL_USE_COHE*/
  1267. /****** Default Analog Configuration for Poll AP2P Tx 106 ******/
  1268. ,
  1269. MODE_ENTRY_5_REG(
  1270. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_106 |
  1271. RFAL_ANALOG_CONFIG_TX),
  1272. ST25R3916_REG_MODE,
  1273. ST25R3916_REG_MODE_tr_am,
  1274. ST25R3916_REG_MODE_tr_am_ook /* Use OOK modulation */
  1275. ,
  1276. ST25R3916_REG_OVERSHOOT_CONF1,
  1277. 0xFF,
  1278. 0x40 /* Set default Overshoot Protection */
  1279. ,
  1280. ST25R3916_REG_OVERSHOOT_CONF2,
  1281. 0xFF,
  1282. 0x03 /* Set default Overshoot Protection */
  1283. ,
  1284. ST25R3916_REG_UNDERSHOOT_CONF1,
  1285. 0xFF,
  1286. 0x40 /* Set default Undershoot Protection */
  1287. ,
  1288. ST25R3916_REG_UNDERSHOOT_CONF2,
  1289. 0xFF,
  1290. 0x03 /* Set default Undershoot Protection */
  1291. )
  1292. /****** Default Analog Configuration for Poll AP2P Tx 212 ******/
  1293. ,
  1294. MODE_ENTRY_1_REG(
  1295. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_212 |
  1296. RFAL_ANALOG_CONFIG_TX),
  1297. ST25R3916_REG_MODE,
  1298. ST25R3916_REG_MODE_tr_am,
  1299. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1300. )
  1301. /****** Default Analog Configuration for Poll AP2P Tx 424 ******/
  1302. ,
  1303. MODE_ENTRY_1_REG(
  1304. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_424 |
  1305. RFAL_ANALOG_CONFIG_TX),
  1306. ST25R3916_REG_MODE,
  1307. ST25R3916_REG_MODE_tr_am,
  1308. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1309. )
  1310. /****** Default Analog Configuration for Chip-Specific Listen On ******/
  1311. ,
  1312. MODE_ENTRY_6_REG(
  1313. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_LISTEN_ON),
  1314. ST25R3916_REG_ANT_TUNE_A,
  1315. 0xFF,
  1316. 0x00 /* Set Antenna Tuning (Listener): ANTL */
  1317. ,
  1318. ST25R3916_REG_ANT_TUNE_B,
  1319. 0xFF,
  1320. 0xff /* Set Antenna Tuning (Listener): ANTL */
  1321. ,
  1322. ST25R3916_REG_OVERSHOOT_CONF1,
  1323. 0xFF,
  1324. 0x00 /* Disable Overshoot Protection */
  1325. ,
  1326. ST25R3916_REG_OVERSHOOT_CONF2,
  1327. 0xFF,
  1328. 0x00 /* Disable Overshoot Protection */
  1329. ,
  1330. ST25R3916_REG_UNDERSHOOT_CONF1,
  1331. 0xFF,
  1332. 0x00 /* Disable Undershoot Protection */
  1333. ,
  1334. ST25R3916_REG_UNDERSHOOT_CONF2,
  1335. 0xFF,
  1336. 0x00 /* Disable Undershoot Protection */
  1337. )
  1338. /****** Default Analog Configuration for Listen AP2P Tx Common ******/
  1339. ,
  1340. MODE_ENTRY_7_REG(
  1341. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1342. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_TX),
  1343. ST25R3916_REG_ANT_TUNE_A,
  1344. 0xFF,
  1345. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  1346. ,
  1347. ST25R3916_REG_ANT_TUNE_B,
  1348. 0xFF,
  1349. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  1350. ,
  1351. ST25R3916_REG_TX_DRIVER,
  1352. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  1353. ST25R3916_REG_TX_DRIVER_am_mod_12percent /* Set Modulation index */
  1354. ,
  1355. ST25R3916_REG_OVERSHOOT_CONF1,
  1356. 0xFF,
  1357. 0x00 /* Disable Overshoot Protection */
  1358. ,
  1359. ST25R3916_REG_OVERSHOOT_CONF2,
  1360. 0xFF,
  1361. 0x00 /* Disable Overshoot Protection */
  1362. ,
  1363. ST25R3916_REG_UNDERSHOOT_CONF1,
  1364. 0xFF,
  1365. 0x00 /* Disable Undershoot Protection */
  1366. ,
  1367. ST25R3916_REG_UNDERSHOOT_CONF2,
  1368. 0xFF,
  1369. 0x00 /* Disable Undershoot Protection */
  1370. )
  1371. /****** Default Analog Configuration for Listen AP2P Rx Common ******/
  1372. ,
  1373. MODE_ENTRY_3_REG(
  1374. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1375. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  1376. ST25R3916_REG_RX_CONF1,
  1377. ST25R3916_REG_RX_CONF1_lp_mask,
  1378. ST25R3916_REG_RX_CONF1_lp_1200khz /* Set Rx filter configuration */
  1379. ,
  1380. ST25R3916_REG_RX_CONF1,
  1381. ST25R3916_REG_RX_CONF1_hz_mask,
  1382. ST25R3916_REG_RX_CONF1_hz_12_200khz /* Set Rx filter configuration */
  1383. ,
  1384. ST25R3916_REG_RX_CONF2,
  1385. ST25R3916_REG_RX_CONF2_amd_sel,
  1386. ST25R3916_REG_RX_CONF2_amd_sel_mixer /* AM demodulator: mixer */
  1387. )
  1388. /****** Default Analog Configuration for Listen AP2P Tx 106 ******/
  1389. ,
  1390. MODE_ENTRY_5_REG(
  1391. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1392. RFAL_ANALOG_CONFIG_BITRATE_106 | RFAL_ANALOG_CONFIG_TX),
  1393. ST25R3916_REG_MODE,
  1394. ST25R3916_REG_MODE_tr_am,
  1395. ST25R3916_REG_MODE_tr_am_ook /* Use OOK modulation */
  1396. ,
  1397. ST25R3916_REG_OVERSHOOT_CONF1,
  1398. 0xFF,
  1399. 0x40 /* Set default Overshoot Protection */
  1400. ,
  1401. ST25R3916_REG_OVERSHOOT_CONF2,
  1402. 0xFF,
  1403. 0x03 /* Set default Overshoot Protection */
  1404. ,
  1405. ST25R3916_REG_UNDERSHOOT_CONF1,
  1406. 0xFF,
  1407. 0x40 /* Set default Undershoot Protection */
  1408. ,
  1409. ST25R3916_REG_UNDERSHOOT_CONF2,
  1410. 0xFF,
  1411. 0x03 /* Set default Undershoot Protection */
  1412. )
  1413. /****** Default Analog Configuration for Listen AP2P Tx 212 ******/
  1414. ,
  1415. MODE_ENTRY_1_REG(
  1416. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1417. RFAL_ANALOG_CONFIG_BITRATE_212 | RFAL_ANALOG_CONFIG_TX),
  1418. ST25R3916_REG_MODE,
  1419. ST25R3916_REG_MODE_tr_am,
  1420. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1421. )
  1422. /****** Default Analog Configuration for Listen AP2P Tx 424 ******/
  1423. ,
  1424. MODE_ENTRY_1_REG(
  1425. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  1426. RFAL_ANALOG_CONFIG_BITRATE_424 | RFAL_ANALOG_CONFIG_TX),
  1427. ST25R3916_REG_MODE,
  1428. ST25R3916_REG_MODE_tr_am,
  1429. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  1430. )
  1431. };
  1432. #endif /* ST25R3916_ANALOGCONFIG_H */