PAN312x_Rf_CTK_Setting.c 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. /***************************************************************************************************
  2. * This file is generated by PANCHIP RF CTK
  3. * @datetime 2025-08-01 15:11:39
  4. * @device PAN3120
  5. * @fwid 0x0003
  6. * @version 0x0000
  7. **************************************************************************************************/
  8. #include "PAN312x_Rf_CTK_Setting.h"
  9. static const __ctk_item_t(1) __ctk_item_1 = {
  10. /* addr */ 0x0100,
  11. /* size */ 1,
  12. /* data */ {
  13. // [6:6]: RCLTRIM_TIMER_EN = Off
  14. // [3:0]: WUT_DIV = 65536
  15. 0x00
  16. }
  17. };
  18. static const __ctk_item_t(3) __ctk_item_2 = {
  19. /* addr */ 0x0101,
  20. /* size */ 3,
  21. /* data */ {
  22. // [7]: IRQ_ENABLE.NODE_ID_DONE = false
  23. // [6]: IRQ_ENABLE.LENGTH_DONE = false
  24. // [5]: IRQ_ENABLE.NODE_ID_ERROR = false
  25. // [4]: IRQ_ENABLE.RX_TIMEOUT = false
  26. // [3]: IRQ_ENABLE.CRC_ERROR = true
  27. // [2]: IRQ_ENABLE.RX_COMPLETE = false
  28. // [1]: IRQ_ENABLE.RX_DONE = true
  29. // [0]: IRQ_ENABLE.TX_DONE = true
  30. 0x0b,
  31. // [6]: IRQ_ENABLE.ACK_ERROR = false
  32. // [5]: IRQ_ENABLE.ACK_TIMEOUT = false
  33. // [4]: IRQ_ENABLE.WAKEUP = false
  34. // [3]: IRQ_ENABLE.HEADER_CRC_DONE = false
  35. 0x00,
  36. // [7]: IRQ_ENABLE.RSSI_TIMEOUT = false
  37. // [6]: IRQ_ENABLE.PREAMBLE_TIMEOUT = false
  38. // [5]: IRQ_ENABLE.SYNCWORD_DONE = false
  39. // [4]: IRQ_ENABLE.PREAMBLE_DONE = false
  40. // [3]: IRQ_ENABLE.RSSI_VALID = false
  41. // [2]: IRQ_ENABLE.RX_FIFO_TH = false
  42. // [1]: IRQ_ENABLE.TX_FIFO_TH = false
  43. // [0]: IRQ_ENABLE.SYNCWORD_TIMEOUT = false
  44. 0x00
  45. }
  46. };
  47. static const __ctk_item_t(5) __ctk_item_3 = {
  48. /* addr */ 0x0200,
  49. /* size */ 5,
  50. /* data */ {
  51. // [7:7]: IDLE_IF_POSSIBLE = false
  52. // [6:6]: SLEEP_TIMER_EN = Off
  53. // [5:5]: AUTO_CLEAR_STATUS = true
  54. 0x20,
  55. // [7:7]: PACKET_FILTER_INTERRUPT_EN = false
  56. // [6:6]: PACKET_FILTER_PAT3_ENABLE = true
  57. // [5:5]: PACKET_FILTER_PAT2_ENABLE = true
  58. // [4:4]: PACKET_FILTER_PAT1_ENABLE = true
  59. // [3:3]: PACKET_FILTER_MODE = Reset
  60. 0x78,
  61. // [7:5]: TX_NODE_ID_SIZE = 4-bytes
  62. // [4:2]: RX_NODE_ID_SIZE = 4-bytes
  63. // [1:1]: NODE_ID_POSITION = Before Length
  64. 0x90,
  65. // [5:5]: TX_CRC_ENABLE = true
  66. // [2:2]: ACK_CHECK_EN = Off
  67. // [0:0]: TX_PACKET_TYPE = Variable Length
  68. 0x21,
  69. // [7:7]: RX_CRC_HOST = false
  70. // [6:6]: RX_CRC_HARDWARE = true
  71. // [5:5]: RX_CRC_ENABLE = true
  72. // [4:4]: RX_READ_PL_BY_CMD = false
  73. // [1:1]: RX_LENGTH_IN_PAYLOAD = false
  74. // [0:0]: RX_PACKET_TYPE = Variable Length
  75. 0x61
  76. }
  77. };
  78. static const __ctk_item_t(12) __ctk_item_4 = {
  79. /* addr */ 0x0316,
  80. /* size */ 12,
  81. /* data */ {
  82. // PACKET_FILTER_PAT1_VALUE = 0xa0b0c0d0, [0] = 0xd0
  83. 0xd0,
  84. // PACKET_FILTER_PAT1_VALUE = 0xa0b0c0d0, [1] = 0xc0
  85. 0xc0,
  86. // PACKET_FILTER_PAT1_VALUE = 0xa0b0c0d0, [2] = 0xb0
  87. 0xb0,
  88. // PACKET_FILTER_PAT1_VALUE = 0xa0b0c0d0, [3] = 0xa0
  89. 0xa0,
  90. // PACKET_FILTER_PAT2_VALUE = 0xa1b1c1d1, [0] = 0xd1
  91. 0xd1,
  92. // PACKET_FILTER_PAT2_VALUE = 0xa1b1c1d1, [1] = 0xc1
  93. 0xc1,
  94. // PACKET_FILTER_PAT2_VALUE = 0xa1b1c1d1, [2] = 0xb1
  95. 0xb1,
  96. // PACKET_FILTER_PAT2_VALUE = 0xa1b1c1d1, [3] = 0xa1
  97. 0xa1,
  98. // PACKET_FILTER_PAT3_VALUE = 0xaabbccdd, [0] = 0xdd
  99. 0xdd,
  100. // PACKET_FILTER_PAT3_VALUE = 0xaabbccdd, [1] = 0xcc
  101. 0xcc,
  102. // PACKET_FILTER_PAT3_VALUE = 0xaabbccdd, [2] = 0xbb
  103. 0xbb,
  104. // PACKET_FILTER_PAT3_VALUE = 0xaabbccdd, [3] = 0xaa
  105. 0xaa
  106. }
  107. };
  108. static const __ctk_item_t(3) __ctk_item_5 = {
  109. /* addr */ 0x032d,
  110. /* size */ 3,
  111. /* data */ {
  112. // [1:0]: RX_TIMEOUT_EXIT_STATE = Rx
  113. 0x02,
  114. // [1:0]: RX_INVALID_EXIT_STATE = Rx
  115. 0x02,
  116. // [1:0]: RX_VALID_EXIT_STATE = Rx
  117. 0x02
  118. }
  119. };
  120. static const __ctk_item_t(2) __ctk_item_6 = {
  121. /* addr */ 0x0400,
  122. /* size */ 2,
  123. /* data */ {
  124. // [2:2]: ENCODING = None
  125. 0x42,
  126. // [3:2]: PREAMBLE_MODE = Standard-0101
  127. // [0:0]: PREAMBLE_MANCHESTER = Off
  128. 0x04
  129. }
  130. };
  131. static const __ctk_item_t(2) __ctk_item_7 = {
  132. /* addr */ 0x0408,
  133. /* size */ 2,
  134. /* data */ {
  135. // CRC_POLY = 0x00008005, [0] = 0x05
  136. 0x05,
  137. // CRC_POLY = 0x00008005, [1] = 0x80
  138. 0x80
  139. }
  140. };
  141. static const __ctk_item_t(2) __ctk_item_8 = {
  142. /* addr */ 0x040c,
  143. /* size */ 2,
  144. /* data */ {
  145. // CRC_SEED = 0x0000ffff, [0] = 0xff
  146. 0xff,
  147. // CRC_SEED = 0x0000ffff, [1] = 0xff
  148. 0xff
  149. }
  150. };
  151. static const __ctk_item_t(1) __ctk_item_9 = {
  152. /* addr */ 0x0410,
  153. /* size */ 1,
  154. /* data */ {
  155. // [2:2]: CRC_BIT_INVERT = false
  156. // [1:0]: CRC_MODE = CRC-16
  157. 0x91
  158. }
  159. };
  160. static const __ctk_item_t(5) __ctk_item_10 = {
  161. /* addr */ 0x0415,
  162. /* size */ 5,
  163. /* data */ {
  164. // [7:7]: LENGTH_SIZE = 1-byte
  165. 0x50,
  166. // TX_NODE_ID_VALUE = 0xaabbccdd, [0] = 0xdd
  167. 0xdd,
  168. // TX_NODE_ID_VALUE = 0xaabbccdd, [1] = 0xcc
  169. 0xcc,
  170. // TX_NODE_ID_VALUE = 0xaabbccdd, [2] = 0xbb
  171. 0xbb,
  172. // TX_NODE_ID_VALUE = 0xaabbccdd, [3] = 0xaa
  173. 0xaa
  174. }
  175. };
  176. static const __ctk_item_t(1) __ctk_item_11 = {
  177. /* addr */ 0x0425,
  178. /* size */ 1,
  179. /* data */ {
  180. // [6:6]: CRC_BYTE_ORDER = Big Endian
  181. // [4:4]: PN9-IBM Disable
  182. 0x80
  183. }
  184. };
  185. static const __ctk_item_t(1) __ctk_item_12 = {
  186. /* addr */ 0x0428,
  187. /* size */ 1,
  188. /* data */ {
  189. // [5:5]: PAYLOAD_MANCHESTER = Off
  190. // [1:1]: WHITENING = Disable
  191. 0x1d
  192. }
  193. };
  194. static const __ctk_item_t(1) __ctk_item_13 = {
  195. /* addr */ 0x0438,
  196. /* size */ 1,
  197. /* data */ {
  198. // [0:0]: FLTR_DEV = 0x000, [1] = 0x0
  199. 0x80
  200. }
  201. };
  202. static const __ctk_item_t(1) __ctk_item_14 = {
  203. /* addr */ 0x043c,
  204. /* size */ 1,
  205. /* data */ {
  206. // TX_DEVIATION = 25000
  207. 0x80
  208. }
  209. };
  210. static const __ctk_item_t(2) __ctk_item_15 = {
  211. /* addr */ 0x0447,
  212. /* size */ 2,
  213. /* data */ {
  214. // [6:5]: RX_ADC_IFSEL = 500 kHz
  215. 0x21,
  216. // [7:6]: RX_ADC_BWSEL = 500 kHz
  217. 0xbf
  218. }
  219. };
  220. static const __ctk_item_t(4) __ctk_item_16 = {
  221. /* addr */ 0x044a,
  222. /* size */ 4,
  223. /* data */ {
  224. // [7:4]: CHF_SEL = 50 kbps
  225. 0xa0,
  226. // IF = 0x4000, [0] = 0x00
  227. 0x00,
  228. // IF = 0x4000, [1] = 0x40
  229. 0x40,
  230. // [3:0]: IF = 0x4000
  231. 0x40
  232. }
  233. };
  234. static const __ctk_item_t(1) __ctk_item_17 = {
  235. /* addr */ 0x0451,
  236. /* size */ 1,
  237. /* data */ {
  238. // [7:7]: IB_ONLY = 1
  239. 0x8b
  240. }
  241. };
  242. static const __ctk_item_t(1) __ctk_item_18 = {
  243. /* addr */ 0x0454,
  244. /* size */ 1,
  245. /* data */ {
  246. // TX_DEVIATION = 25000
  247. 0x0c
  248. }
  249. };
  250. static const __ctk_item_t(1) __ctk_item_19 = {
  251. /* addr */ 0x0500,
  252. /* size */ 1,
  253. /* data */ {
  254. // [7:4]: DATA_RATE = 50 kbps
  255. // [3:2]: MODULATION = 2FSK
  256. // [0:0]: DATA_RATE_MODE = Symbol Rate B
  257. 0x01
  258. }
  259. };
  260. static const __ctk_item_t(4) __ctk_item_20 = {
  261. /* addr */ 0x050b,
  262. /* size */ 4,
  263. /* data */ {
  264. // FREQUENCY_STEP = 0 MHz, [0] = 0x00
  265. 0x00,
  266. // FREQUENCY_STEP = 0 MHz, [1] = 0x00
  267. 0x00,
  268. // FREQUENCY_CHANNEL = 0, [0] = 0x00
  269. 0x00,
  270. // FREQUENCY_CHANNEL = 0, [1] = 0x00
  271. 0x00
  272. }
  273. };
  274. static const __ctk_item_t(5) __ctk_item_21 = {
  275. /* addr */ 0x0511,
  276. /* size */ 5,
  277. /* data */ {
  278. // FREQUENCY_BASE = 433.0 MHz, [2] = 0x20
  279. 0x20,
  280. // FREQUENCY_BASE = 433.0 MHz, [3] = 0x36
  281. 0x36,
  282. // RX_ADJUST = 500 kHz, [0] = 0x00
  283. 0x00,
  284. // RX_ADJUST = 500 kHz, [1] = 0x00
  285. 0x00,
  286. // RX_ADJUST = 500 kHz, [2] = 0x10
  287. 0x10
  288. }
  289. };
  290. static const __ctk_item_t(1) __ctk_item_22 = {
  291. /* addr */ 0x0630,
  292. /* size */ 1,
  293. /* data */ {
  294. // [3:3]: HI_LO_SET = 1
  295. 0x28
  296. }
  297. };
  298. static const __ctk_item_t(1) __ctk_item_23 = {
  299. /* addr */ 0x0740,
  300. /* size */ 1,
  301. /* data */ {
  302. // [5:4]: RX_TIA_BWSEL = 1.5 MHz
  303. 0x31
  304. }
  305. };
  306. static const __ctk_item_t(1) __ctk_item_24 = {
  307. /* addr */ 0x074c,
  308. /* size */ 1,
  309. /* data */ {
  310. // [5:3]: PLL_VCO_FCSEL = 3
  311. 0x58
  312. }
  313. };
  314. static const __ctk_item_t(1) __ctk_item_25 = {
  315. /* addr */ 0x074e,
  316. /* size */ 1,
  317. /* data */ {
  318. // [1:0]: PLL_VCO_VD_SW = 1
  319. 0xfd
  320. }
  321. };
  322. ctk_item_t const * const __CTK_ITEM_ARRAY[__CTK_ITEM_COUNT + 1] = {
  323. (const ctk_item_t*)&__ctk_item_1,
  324. (const ctk_item_t*)&__ctk_item_2,
  325. (const ctk_item_t*)&__ctk_item_3,
  326. (const ctk_item_t*)&__ctk_item_4,
  327. (const ctk_item_t*)&__ctk_item_5,
  328. (const ctk_item_t*)&__ctk_item_6,
  329. (const ctk_item_t*)&__ctk_item_7,
  330. (const ctk_item_t*)&__ctk_item_8,
  331. (const ctk_item_t*)&__ctk_item_9,
  332. (const ctk_item_t*)&__ctk_item_10,
  333. (const ctk_item_t*)&__ctk_item_11,
  334. (const ctk_item_t*)&__ctk_item_12,
  335. (const ctk_item_t*)&__ctk_item_13,
  336. (const ctk_item_t*)&__ctk_item_14,
  337. (const ctk_item_t*)&__ctk_item_15,
  338. (const ctk_item_t*)&__ctk_item_16,
  339. (const ctk_item_t*)&__ctk_item_17,
  340. (const ctk_item_t*)&__ctk_item_18,
  341. (const ctk_item_t*)&__ctk_item_19,
  342. (const ctk_item_t*)&__ctk_item_20,
  343. (const ctk_item_t*)&__ctk_item_21,
  344. (const ctk_item_t*)&__ctk_item_22,
  345. (const ctk_item_t*)&__ctk_item_23,
  346. (const ctk_item_t*)&__ctk_item_24,
  347. (const ctk_item_t*)&__ctk_item_25,
  348. 0
  349. };