custom_analog_config.c 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777
  1. #include "rfal_analogConfigTbl.h"
  2. const uint8_t rfalAnalogConfigCustomSettings[] = {
  3. /****** Default Analog Configuration for Chip-Specific Reset ******/
  4. MODE_ENTRY_16_REG(
  5. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_INIT),
  6. ST25R3916_REG_IO_CONF1,
  7. (ST25R3916_REG_IO_CONF1_out_cl_mask | ST25R3916_REG_IO_CONF1_lf_clk_off),
  8. 0x07 /* Disable MCU_CLK */
  9. ,
  10. ST25R3916_REG_IO_CONF2,
  11. (ST25R3916_REG_IO_CONF2_miso_pd1 | ST25R3916_REG_IO_CONF2_miso_pd2),
  12. 0x18 /* SPI Pull downs */
  13. // , ST25R3916_REG_IO_CONF2, ST25R3916_REG_IO_CONF2_aat_en, ST25R3916_REG_IO_CONF2_aat_en /* Enable AAT */
  14. ,
  15. ST25R3916_REG_TX_DRIVER,
  16. ST25R3916_REG_TX_DRIVER_d_res_mask,
  17. 0x00 /* Set RFO resistance Active Tx */
  18. ,
  19. ST25R3916_REG_RES_AM_MOD,
  20. 0xFF,
  21. 0x80 /* Use minimum non-overlap */
  22. ,
  23. ST25R3916_REG_FIELD_THRESHOLD_ACTV,
  24. ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_mask,
  25. ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_105mV /* Lower activation threshold (higher than deactivation)*/
  26. ,
  27. ST25R3916_REG_FIELD_THRESHOLD_ACTV,
  28. ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_mask,
  29. ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_105mV /* Lower activation threshold (higher than deactivation)*/
  30. ,
  31. ST25R3916_REG_FIELD_THRESHOLD_DEACTV,
  32. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_mask,
  33. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_75mV /* Lower deactivation threshold */
  34. ,
  35. ST25R3916_REG_FIELD_THRESHOLD_DEACTV,
  36. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_mask,
  37. ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_75mV /* Lower deactivation threshold */
  38. ,
  39. ST25R3916_REG_AUX_MOD,
  40. ST25R3916_REG_AUX_MOD_lm_ext,
  41. ST25R3916_REG_AUX_MOD_lm_ext /* Disable External Load Modulation */
  42. ,
  43. ST25R3916_REG_AUX_MOD,
  44. ST25R3916_REG_AUX_MOD_lm_dri,
  45. ST25R3916_REG_AUX_MOD_lm_dri /* Use internal Load Modulation */
  46. ,
  47. ST25R3916_REG_PASSIVE_TARGET,
  48. ST25R3916_REG_PASSIVE_TARGET_fdel_mask,
  49. (5U
  50. << ST25R3916_REG_PASSIVE_TARGET_fdel_shift) /* Adjust the FDT to be aligned with the bitgrid */
  51. ,
  52. ST25R3916_REG_PT_MOD,
  53. (ST25R3916_REG_PT_MOD_ptm_res_mask | ST25R3916_REG_PT_MOD_pt_res_mask),
  54. 0x0f /* Reduce RFO resistance in Modulated state */
  55. ,
  56. ST25R3916_REG_EMD_SUP_CONF,
  57. ST25R3916_REG_EMD_SUP_CONF_rx_start_emv,
  58. ST25R3916_REG_EMD_SUP_CONF_rx_start_emv_on /* Enable start on first 4 bits */
  59. ,
  60. ST25R3916_REG_ANT_TUNE_A,
  61. 0xFF,
  62. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  63. ,
  64. ST25R3916_REG_ANT_TUNE_B,
  65. 0xFF,
  66. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  67. ,
  68. 0x84U,
  69. 0x10,
  70. 0x10 /* Avoid chip internal overheat protection */
  71. )
  72. /****** Default Analog Configuration for Chip-Specific Poll Common ******/
  73. ,
  74. MODE_ENTRY_9_REG(
  75. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_POLL_COMMON),
  76. ST25R3916_REG_MODE,
  77. ST25R3916_REG_MODE_tr_am,
  78. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  79. ,
  80. ST25R3916_REG_TX_DRIVER,
  81. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  82. ST25R3916_REG_TX_DRIVER_am_mod_12percent /* Set Modulation index */
  83. ,
  84. ST25R3916_REG_AUX_MOD,
  85. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  86. 0x00 /* Use AM via regulator */
  87. ,
  88. ST25R3916_REG_ANT_TUNE_A,
  89. 0xFF,
  90. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  91. ,
  92. ST25R3916_REG_ANT_TUNE_B,
  93. 0xFF,
  94. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  95. ,
  96. ST25R3916_REG_OVERSHOOT_CONF1,
  97. 0xFF,
  98. 0x00 /* Disable Overshoot Protection */
  99. ,
  100. ST25R3916_REG_OVERSHOOT_CONF2,
  101. 0xFF,
  102. 0x00 /* Disable Overshoot Protection */
  103. ,
  104. ST25R3916_REG_UNDERSHOOT_CONF1,
  105. 0xFF,
  106. 0x00 /* Disable Undershoot Protection */
  107. ,
  108. ST25R3916_REG_UNDERSHOOT_CONF2,
  109. 0xFF,
  110. 0x00 /* Disable Undershoot Protection */
  111. )
  112. /****** Default Analog Configuration for Poll NFC-A Rx Common ******/
  113. ,
  114. MODE_ENTRY_1_REG(
  115. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA |
  116. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  117. ST25R3916_REG_AUX,
  118. ST25R3916_REG_AUX_dis_corr,
  119. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  120. )
  121. /****** Default Analog Configuration for Poll NFC-A Tx 106 ******/
  122. ,
  123. MODE_ENTRY_5_REG(
  124. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_106 |
  125. RFAL_ANALOG_CONFIG_TX),
  126. ST25R3916_REG_MODE,
  127. ST25R3916_REG_MODE_tr_am,
  128. ST25R3916_REG_MODE_tr_am_ook /* Use OOK */
  129. ,
  130. ST25R3916_REG_OVERSHOOT_CONF1,
  131. 0xFF,
  132. 0x40 /* Set default Overshoot Protection */
  133. ,
  134. ST25R3916_REG_OVERSHOOT_CONF2,
  135. 0xFF,
  136. 0x03 /* Set default Overshoot Protection */
  137. ,
  138. ST25R3916_REG_UNDERSHOOT_CONF1,
  139. 0xFF,
  140. 0x40 /* Set default Undershoot Protection */
  141. ,
  142. ST25R3916_REG_UNDERSHOOT_CONF2,
  143. 0xFF,
  144. 0x03 /* Set default Undershoot Protection */
  145. )
  146. /****** Default Analog Configuration for Poll NFC-A Rx 106 ******/
  147. ,
  148. MODE_ENTRY_6_REG(
  149. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_106 |
  150. RFAL_ANALOG_CONFIG_RX),
  151. ST25R3916_REG_RX_CONF1,
  152. 0xFF,
  153. 0x08,
  154. ST25R3916_REG_RX_CONF2,
  155. 0xFF,
  156. 0x2D,
  157. ST25R3916_REG_RX_CONF3,
  158. 0xFF,
  159. 0x00,
  160. ST25R3916_REG_RX_CONF4,
  161. 0xFF,
  162. 0x00,
  163. ST25R3916_REG_CORR_CONF1,
  164. 0xFF,
  165. 0x51,
  166. ST25R3916_REG_CORR_CONF2,
  167. 0xFF,
  168. 0x00)
  169. /****** Default Analog Configuration for Poll NFC-A Tx 212 ******/
  170. ,
  171. MODE_ENTRY_7_REG(
  172. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_212 |
  173. RFAL_ANALOG_CONFIG_TX),
  174. ST25R3916_REG_MODE,
  175. ST25R3916_REG_MODE_tr_am,
  176. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  177. ,
  178. ST25R3916_REG_AUX_MOD,
  179. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  180. 0x88 /* Use Resistive AM */
  181. ,
  182. ST25R3916_REG_RES_AM_MOD,
  183. ST25R3916_REG_RES_AM_MOD_md_res_mask,
  184. 0x7F /* Set Resistive modulation */
  185. ,
  186. ST25R3916_REG_OVERSHOOT_CONF1,
  187. 0xFF,
  188. 0x40 /* Set default Overshoot Protection */
  189. ,
  190. ST25R3916_REG_OVERSHOOT_CONF2,
  191. 0xFF,
  192. 0x03 /* Set default Overshoot Protection */
  193. ,
  194. ST25R3916_REG_UNDERSHOOT_CONF1,
  195. 0xFF,
  196. 0x40 /* Set default Undershoot Protection */
  197. ,
  198. ST25R3916_REG_UNDERSHOOT_CONF2,
  199. 0xFF,
  200. 0x03 /* Set default Undershoot Protection */
  201. )
  202. /****** Default Analog Configuration for Poll NFC-A Rx 212 ******/
  203. ,
  204. MODE_ENTRY_6_REG(
  205. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_212 |
  206. RFAL_ANALOG_CONFIG_RX),
  207. ST25R3916_REG_RX_CONF1,
  208. 0xFF,
  209. 0x02,
  210. ST25R3916_REG_RX_CONF2,
  211. 0xFF,
  212. 0x3D,
  213. ST25R3916_REG_RX_CONF3,
  214. 0xFF,
  215. 0x00,
  216. ST25R3916_REG_RX_CONF4,
  217. 0xFF,
  218. 0x00,
  219. ST25R3916_REG_CORR_CONF1,
  220. 0xFF,
  221. 0x14,
  222. ST25R3916_REG_CORR_CONF2,
  223. 0xFF,
  224. 0x00)
  225. /****** Default Analog Configuration for Poll NFC-A Tx 424 ******/
  226. ,
  227. MODE_ENTRY_7_REG(
  228. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_424 |
  229. RFAL_ANALOG_CONFIG_TX),
  230. ST25R3916_REG_MODE,
  231. ST25R3916_REG_MODE_tr_am,
  232. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  233. ,
  234. ST25R3916_REG_AUX_MOD,
  235. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  236. 0x88 /* Use Resistive AM */
  237. ,
  238. ST25R3916_REG_RES_AM_MOD,
  239. ST25R3916_REG_RES_AM_MOD_md_res_mask,
  240. 0x7F /* Set Resistive modulation */
  241. ,
  242. ST25R3916_REG_OVERSHOOT_CONF1,
  243. 0xFF,
  244. 0x40 /* Set default Overshoot Protection */
  245. ,
  246. ST25R3916_REG_OVERSHOOT_CONF2,
  247. 0xFF,
  248. 0x03 /* Set default Overshoot Protection */
  249. ,
  250. ST25R3916_REG_UNDERSHOOT_CONF1,
  251. 0xFF,
  252. 0x40 /* Set default Undershoot Protection */
  253. ,
  254. ST25R3916_REG_UNDERSHOOT_CONF2,
  255. 0xFF,
  256. 0x03 /* Set default Undershoot Protection */
  257. )
  258. /****** Default Analog Configuration for Poll NFC-A Rx 424 ******/
  259. ,
  260. MODE_ENTRY_6_REG(
  261. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_424 |
  262. RFAL_ANALOG_CONFIG_RX),
  263. ST25R3916_REG_RX_CONF1,
  264. 0xFF,
  265. 0x42,
  266. ST25R3916_REG_RX_CONF2,
  267. 0xFF,
  268. 0x3D,
  269. ST25R3916_REG_RX_CONF3,
  270. 0xFF,
  271. 0x00,
  272. ST25R3916_REG_RX_CONF4,
  273. 0xFF,
  274. 0x00,
  275. ST25R3916_REG_CORR_CONF1,
  276. 0xFF,
  277. 0x54,
  278. ST25R3916_REG_CORR_CONF2,
  279. 0xFF,
  280. 0x00)
  281. /****** Default Analog Configuration for Poll NFC-A Tx 848 ******/
  282. ,
  283. MODE_ENTRY_7_REG(
  284. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_848 |
  285. RFAL_ANALOG_CONFIG_TX),
  286. ST25R3916_REG_MODE,
  287. ST25R3916_REG_MODE_tr_am,
  288. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  289. ,
  290. ST25R3916_REG_TX_DRIVER,
  291. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  292. ST25R3916_REG_TX_DRIVER_am_mod_40percent /* Set Modulation index */
  293. ,
  294. ST25R3916_REG_AUX_MOD,
  295. (ST25R3916_REG_AUX_MOD_dis_reg_am | ST25R3916_REG_AUX_MOD_res_am),
  296. 0x00 /* Use AM via regulator */
  297. ,
  298. ST25R3916_REG_OVERSHOOT_CONF1,
  299. 0xFF,
  300. 0x00 /* Disable Overshoot Protection */
  301. ,
  302. ST25R3916_REG_OVERSHOOT_CONF2,
  303. 0xFF,
  304. 0x00 /* Disable Overshoot Protection */
  305. ,
  306. ST25R3916_REG_UNDERSHOOT_CONF1,
  307. 0xFF,
  308. 0x00 /* Disable Undershoot Protection */
  309. ,
  310. ST25R3916_REG_UNDERSHOOT_CONF2,
  311. 0xFF,
  312. 0x00 /* Disable Undershoot Protection */
  313. )
  314. /****** Default Analog Configuration for Poll NFC-A Rx 848 ******/
  315. ,
  316. MODE_ENTRY_6_REG(
  317. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA | RFAL_ANALOG_CONFIG_BITRATE_848 |
  318. RFAL_ANALOG_CONFIG_RX),
  319. ST25R3916_REG_RX_CONF1,
  320. 0xFF,
  321. 0x42,
  322. ST25R3916_REG_RX_CONF2,
  323. 0xFF,
  324. 0x3D,
  325. ST25R3916_REG_RX_CONF3,
  326. 0xFF,
  327. 0x00,
  328. ST25R3916_REG_RX_CONF4,
  329. 0xFF,
  330. 0x00,
  331. ST25R3916_REG_CORR_CONF1,
  332. 0xFF,
  333. 0x44,
  334. ST25R3916_REG_CORR_CONF2,
  335. 0xFF,
  336. 0x00)
  337. /****** Default Analog Configuration for Poll NFC-A Anticolision setting ******/
  338. ,
  339. MODE_ENTRY_1_REG(
  340. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCA |
  341. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_ANTICOL),
  342. ST25R3916_REG_CORR_CONF1,
  343. ST25R3916_REG_CORR_CONF1_corr_s6,
  344. 0x00 /* Set collision detection level different from data */
  345. )
  346. #ifdef RFAL_USE_COHE
  347. /****** Default Analog Configuration for Poll NFC-B Rx Common ******/
  348. ,
  349. MODE_ENTRY_1_REG(
  350. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB |
  351. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  352. ST25R3916_REG_AUX,
  353. ST25R3916_REG_AUX_dis_corr,
  354. ST25R3916_REG_AUX_dis_corr_coherent /* Use Coherent Receiver */
  355. )
  356. #else
  357. /****** Default Analog Configuration for Poll NFC-B Rx Common ******/
  358. ,
  359. MODE_ENTRY_1_REG(
  360. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB |
  361. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  362. ST25R3916_REG_AUX,
  363. ST25R3916_REG_AUX_dis_corr,
  364. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  365. )
  366. #endif /*RFAL_USE_COHE*/
  367. /****** Default Analog Configuration for Poll NFC-B Rx 106 ******/
  368. ,
  369. MODE_ENTRY_6_REG(
  370. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_106 |
  371. RFAL_ANALOG_CONFIG_RX),
  372. ST25R3916_REG_RX_CONF1,
  373. 0xFF,
  374. 0x04,
  375. ST25R3916_REG_RX_CONF2,
  376. 0xFF,
  377. 0x3D,
  378. ST25R3916_REG_RX_CONF3,
  379. 0xFF,
  380. 0x00,
  381. ST25R3916_REG_RX_CONF4,
  382. 0xFF,
  383. 0x00,
  384. ST25R3916_REG_CORR_CONF1,
  385. 0xFF,
  386. 0x1B,
  387. ST25R3916_REG_CORR_CONF2,
  388. 0xFF,
  389. 0x00)
  390. /****** Default Analog Configuration for Poll NFC-B Rx 212 ******/
  391. ,
  392. MODE_ENTRY_6_REG(
  393. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_212 |
  394. RFAL_ANALOG_CONFIG_RX),
  395. ST25R3916_REG_RX_CONF1,
  396. 0xFF,
  397. 0x02,
  398. ST25R3916_REG_RX_CONF2,
  399. 0xFF,
  400. 0x3D,
  401. ST25R3916_REG_RX_CONF3,
  402. 0xFF,
  403. 0x00,
  404. ST25R3916_REG_RX_CONF4,
  405. 0xFF,
  406. 0x00,
  407. ST25R3916_REG_CORR_CONF1,
  408. 0xFF,
  409. 0x14,
  410. ST25R3916_REG_CORR_CONF2,
  411. 0xFF,
  412. 0x00)
  413. /****** Default Analog Configuration for Poll NFC-B Rx 424 ******/
  414. ,
  415. MODE_ENTRY_6_REG(
  416. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_424 |
  417. RFAL_ANALOG_CONFIG_RX),
  418. ST25R3916_REG_RX_CONF1,
  419. 0xFF,
  420. 0x42,
  421. ST25R3916_REG_RX_CONF2,
  422. 0xFF,
  423. 0x3D,
  424. ST25R3916_REG_RX_CONF3,
  425. 0xFF,
  426. 0x00,
  427. ST25R3916_REG_RX_CONF4,
  428. 0xFF,
  429. 0x00,
  430. ST25R3916_REG_CORR_CONF1,
  431. 0xFF,
  432. 0x54,
  433. ST25R3916_REG_CORR_CONF2,
  434. 0xFF,
  435. 0x00)
  436. /****** Default Analog Configuration for Poll NFC-B Rx 848 ******/
  437. ,
  438. MODE_ENTRY_6_REG(
  439. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCB | RFAL_ANALOG_CONFIG_BITRATE_848 |
  440. RFAL_ANALOG_CONFIG_RX),
  441. ST25R3916_REG_RX_CONF1,
  442. 0xFF,
  443. 0x42,
  444. ST25R3916_REG_RX_CONF2,
  445. 0xFF,
  446. 0x3D,
  447. ST25R3916_REG_RX_CONF3,
  448. 0xFF,
  449. 0x00,
  450. ST25R3916_REG_RX_CONF4,
  451. 0xFF,
  452. 0x00,
  453. ST25R3916_REG_CORR_CONF1,
  454. 0xFF,
  455. 0x44,
  456. ST25R3916_REG_CORR_CONF2,
  457. 0xFF,
  458. 0x00)
  459. #ifdef RFAL_USE_COHE
  460. /****** Default Analog Configuration for Poll NFC-F Rx Common ******/
  461. ,
  462. MODE_ENTRY_7_REG(
  463. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCF |
  464. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  465. ST25R3916_REG_AUX,
  466. ST25R3916_REG_AUX_dis_corr,
  467. ST25R3916_REG_AUX_dis_corr_coherent /* Use Pulse Receiver */
  468. ,
  469. ST25R3916_REG_RX_CONF1,
  470. 0xFF,
  471. 0x13,
  472. ST25R3916_REG_RX_CONF2,
  473. 0xFF,
  474. 0x3D,
  475. ST25R3916_REG_RX_CONF3,
  476. 0xFF,
  477. 0x00,
  478. ST25R3916_REG_RX_CONF4,
  479. 0xFF,
  480. 0x00,
  481. ST25R3916_REG_CORR_CONF1,
  482. 0xFF,
  483. 0x54,
  484. ST25R3916_REG_CORR_CONF2,
  485. 0xFF,
  486. 0x00)
  487. #else
  488. /****** Default Analog Configuration for Poll NFC-F Rx Common ******/
  489. ,
  490. MODE_ENTRY_7_REG(
  491. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCF |
  492. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  493. ST25R3916_REG_AUX,
  494. ST25R3916_REG_AUX_dis_corr,
  495. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  496. ,
  497. ST25R3916_REG_RX_CONF1,
  498. 0xFF,
  499. 0x13,
  500. ST25R3916_REG_RX_CONF2,
  501. 0xFF,
  502. 0x3D,
  503. ST25R3916_REG_RX_CONF3,
  504. 0xFF,
  505. 0x00,
  506. ST25R3916_REG_RX_CONF4,
  507. 0xFF,
  508. 0x00,
  509. ST25R3916_REG_CORR_CONF1,
  510. 0xFF,
  511. 0x54,
  512. ST25R3916_REG_CORR_CONF2,
  513. 0xFF,
  514. 0x00)
  515. #endif /*RFAL_USE_COHE*/
  516. ,
  517. MODE_ENTRY_1_REG(
  518. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV | RFAL_ANALOG_CONFIG_BITRATE_1OF4 |
  519. RFAL_ANALOG_CONFIG_TX),
  520. ST25R3916_REG_MODE,
  521. ST25R3916_REG_MODE_tr_am,
  522. ST25R3916_REG_MODE_tr_am_ook /* Use OOK */
  523. )
  524. #ifdef RFAL_USE_COHE
  525. /****** Default Analog Configuration for Poll NFC-V Rx Common ******/
  526. ,
  527. MODE_ENTRY_7_REG(
  528. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV |
  529. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  530. ST25R3916_REG_AUX,
  531. ST25R3916_REG_AUX_dis_corr,
  532. ST25R3916_REG_AUX_dis_corr_coherent /* Use Pulse Receiver */
  533. ,
  534. ST25R3916_REG_RX_CONF1,
  535. 0xFF,
  536. 0x13,
  537. ST25R3916_REG_RX_CONF2,
  538. 0xFF,
  539. 0x2D,
  540. ST25R3916_REG_RX_CONF3,
  541. 0xFF,
  542. 0x00,
  543. ST25R3916_REG_RX_CONF4,
  544. 0xFF,
  545. 0x00,
  546. ST25R3916_REG_CORR_CONF1,
  547. 0xFF,
  548. 0x13,
  549. ST25R3916_REG_CORR_CONF2,
  550. 0xFF,
  551. 0x01)
  552. #else
  553. /****** Default Analog Configuration for Poll NFC-V Rx Common ******/
  554. ,
  555. MODE_ENTRY_7_REG(
  556. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_NFCV |
  557. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  558. ST25R3916_REG_AUX,
  559. ST25R3916_REG_AUX_dis_corr,
  560. ST25R3916_REG_AUX_dis_corr_correlator /* Use Correlator Receiver */
  561. ,
  562. ST25R3916_REG_RX_CONF1,
  563. 0xFF,
  564. 0x13,
  565. ST25R3916_REG_RX_CONF2,
  566. 0xFF,
  567. 0x2D,
  568. ST25R3916_REG_RX_CONF3,
  569. 0xFF,
  570. 0x00,
  571. ST25R3916_REG_RX_CONF4,
  572. 0xFF,
  573. 0x00,
  574. ST25R3916_REG_CORR_CONF1,
  575. 0xFF,
  576. 0x13,
  577. ST25R3916_REG_CORR_CONF2,
  578. 0xFF,
  579. 0x01)
  580. #endif /*RFAL_USE_COHE*/
  581. /****** Default Analog Configuration for Poll AP2P Tx 106 ******/
  582. ,
  583. MODE_ENTRY_5_REG(
  584. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_106 |
  585. RFAL_ANALOG_CONFIG_TX),
  586. ST25R3916_REG_MODE,
  587. ST25R3916_REG_MODE_tr_am,
  588. ST25R3916_REG_MODE_tr_am_ook /* Use OOK modulation */
  589. ,
  590. ST25R3916_REG_OVERSHOOT_CONF1,
  591. 0xFF,
  592. 0x40 /* Set default Overshoot Protection */
  593. ,
  594. ST25R3916_REG_OVERSHOOT_CONF2,
  595. 0xFF,
  596. 0x03 /* Set default Overshoot Protection */
  597. ,
  598. ST25R3916_REG_UNDERSHOOT_CONF1,
  599. 0xFF,
  600. 0x40 /* Set default Undershoot Protection */
  601. ,
  602. ST25R3916_REG_UNDERSHOOT_CONF2,
  603. 0xFF,
  604. 0x03 /* Set default Undershoot Protection */
  605. )
  606. /****** Default Analog Configuration for Poll AP2P Tx 212 ******/
  607. ,
  608. MODE_ENTRY_1_REG(
  609. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_212 |
  610. RFAL_ANALOG_CONFIG_TX),
  611. ST25R3916_REG_MODE,
  612. ST25R3916_REG_MODE_tr_am,
  613. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  614. )
  615. /****** Default Analog Configuration for Poll AP2P Tx 424 ******/
  616. ,
  617. MODE_ENTRY_1_REG(
  618. (RFAL_ANALOG_CONFIG_POLL | RFAL_ANALOG_CONFIG_TECH_AP2P | RFAL_ANALOG_CONFIG_BITRATE_424 |
  619. RFAL_ANALOG_CONFIG_TX),
  620. ST25R3916_REG_MODE,
  621. ST25R3916_REG_MODE_tr_am,
  622. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  623. )
  624. /****** Default Analog Configuration for Chip-Specific Listen On ******/
  625. ,
  626. MODE_ENTRY_6_REG(
  627. (RFAL_ANALOG_CONFIG_TECH_CHIP | RFAL_ANALOG_CONFIG_CHIP_LISTEN_ON),
  628. ST25R3916_REG_ANT_TUNE_A,
  629. 0xFF,
  630. 0x00 /* Set Antenna Tuning (Listener): ANTL */
  631. ,
  632. ST25R3916_REG_ANT_TUNE_B,
  633. 0xFF,
  634. 0xff /* Set Antenna Tuning (Listener): ANTL */
  635. ,
  636. ST25R3916_REG_OVERSHOOT_CONF1,
  637. 0xFF,
  638. 0x00 /* Disable Overshoot Protection */
  639. ,
  640. ST25R3916_REG_OVERSHOOT_CONF2,
  641. 0xFF,
  642. 0x00 /* Disable Overshoot Protection */
  643. ,
  644. ST25R3916_REG_UNDERSHOOT_CONF1,
  645. 0xFF,
  646. 0x00 /* Disable Undershoot Protection */
  647. ,
  648. ST25R3916_REG_UNDERSHOOT_CONF2,
  649. 0xFF,
  650. 0x00 /* Disable Undershoot Protection */
  651. )
  652. /****** Default Analog Configuration for Listen AP2P Tx Common ******/
  653. ,
  654. MODE_ENTRY_7_REG(
  655. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  656. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_TX),
  657. ST25R3916_REG_ANT_TUNE_A,
  658. 0xFF,
  659. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  660. ,
  661. ST25R3916_REG_ANT_TUNE_B,
  662. 0xFF,
  663. 0x82 /* Set Antenna Tuning (Poller): ANTL */
  664. ,
  665. ST25R3916_REG_TX_DRIVER,
  666. ST25R3916_REG_TX_DRIVER_am_mod_mask,
  667. ST25R3916_REG_TX_DRIVER_am_mod_12percent /* Set Modulation index */
  668. ,
  669. ST25R3916_REG_OVERSHOOT_CONF1,
  670. 0xFF,
  671. 0x00 /* Disable Overshoot Protection */
  672. ,
  673. ST25R3916_REG_OVERSHOOT_CONF2,
  674. 0xFF,
  675. 0x00 /* Disable Overshoot Protection */
  676. ,
  677. ST25R3916_REG_UNDERSHOOT_CONF1,
  678. 0xFF,
  679. 0x00 /* Disable Undershoot Protection */
  680. ,
  681. ST25R3916_REG_UNDERSHOOT_CONF2,
  682. 0xFF,
  683. 0x00 /* Disable Undershoot Protection */
  684. )
  685. /****** Default Analog Configuration for Listen AP2P Rx Common ******/
  686. ,
  687. MODE_ENTRY_3_REG(
  688. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  689. RFAL_ANALOG_CONFIG_BITRATE_COMMON | RFAL_ANALOG_CONFIG_RX),
  690. ST25R3916_REG_RX_CONF1,
  691. ST25R3916_REG_RX_CONF1_lp_mask,
  692. ST25R3916_REG_RX_CONF1_lp_1200khz /* Set Rx filter configuration */
  693. ,
  694. ST25R3916_REG_RX_CONF1,
  695. ST25R3916_REG_RX_CONF1_hz_mask,
  696. ST25R3916_REG_RX_CONF1_hz_12_200khz /* Set Rx filter configuration */
  697. ,
  698. ST25R3916_REG_RX_CONF2,
  699. ST25R3916_REG_RX_CONF2_amd_sel,
  700. ST25R3916_REG_RX_CONF2_amd_sel_mixer /* AM demodulator: mixer */
  701. )
  702. /****** Default Analog Configuration for Listen AP2P Tx 106 ******/
  703. ,
  704. MODE_ENTRY_5_REG(
  705. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  706. RFAL_ANALOG_CONFIG_BITRATE_106 | RFAL_ANALOG_CONFIG_TX),
  707. ST25R3916_REG_MODE,
  708. ST25R3916_REG_MODE_tr_am,
  709. ST25R3916_REG_MODE_tr_am_ook /* Use OOK modulation */
  710. ,
  711. ST25R3916_REG_OVERSHOOT_CONF1,
  712. 0xFF,
  713. 0x40 /* Set default Overshoot Protection */
  714. ,
  715. ST25R3916_REG_OVERSHOOT_CONF2,
  716. 0xFF,
  717. 0x03 /* Set default Overshoot Protection */
  718. ,
  719. ST25R3916_REG_UNDERSHOOT_CONF1,
  720. 0xFF,
  721. 0x40 /* Set default Undershoot Protection */
  722. ,
  723. ST25R3916_REG_UNDERSHOOT_CONF2,
  724. 0xFF,
  725. 0x03 /* Set default Undershoot Protection */
  726. )
  727. /****** Default Analog Configuration for Listen AP2P Tx 212 ******/
  728. ,
  729. MODE_ENTRY_1_REG(
  730. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  731. RFAL_ANALOG_CONFIG_BITRATE_212 | RFAL_ANALOG_CONFIG_TX),
  732. ST25R3916_REG_MODE,
  733. ST25R3916_REG_MODE_tr_am,
  734. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  735. )
  736. /****** Default Analog Configuration for Listen AP2P Tx 424 ******/
  737. ,
  738. MODE_ENTRY_1_REG(
  739. (RFAL_ANALOG_CONFIG_LISTEN | RFAL_ANALOG_CONFIG_TECH_AP2P |
  740. RFAL_ANALOG_CONFIG_BITRATE_424 | RFAL_ANALOG_CONFIG_TX),
  741. ST25R3916_REG_MODE,
  742. ST25R3916_REG_MODE_tr_am,
  743. ST25R3916_REG_MODE_tr_am_am /* Use AM modulation */
  744. )
  745. };
  746. const uint16_t rfalAnalogConfigCustomSettingsLength = sizeof(rfalAnalogConfigCustomSettings);