cc1200_protocol.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. /*
  2. * cc1200_protocol.h
  3. *
  4. * Created on: Feb 5, 2022
  5. * Author: curiousmuch
  6. */
  7. #ifndef INC_CC1200_PROTOCOL_H_
  8. #define INC_CC1200_PROTOCOL_H_
  9. /*
  10. * CC120X_protocol.h
  11. *
  12. * Created on: Apr 13, 2019
  13. * Author: curiousmuch
  14. */
  15. #include <stdio.h>
  16. #include <stdint.h>
  17. #include "cc1200.h"
  18. //*********************************//
  19. // IMPORTANT GPIO SIGNALS
  20. // REG DESCRIPTION
  21. // 0x1e TX CLK
  22. // 0x1d RX_CLK
  23. // 0x10 Carrier Sense Valid
  24. // 0x11 Carrier Sense
  25. //********************************//
  26. // Arrow - AX25 BELL202 AFSK Settings
  27. // -----------------------------------
  28. // Address Config = No address check
  29. // Bit Rate = 1.2
  30. // Carrier Frequency = 144.389954
  31. // Deviation = 4.997253
  32. // Device Address = 0
  33. // Manchester Enable = false
  34. // Modulation Format = 2-FSK
  35. // Packet Bit Length = 0
  36. // Packet Length = 255
  37. // Packet Length Mode = Variable
  38. // RX Filter BW = 14.880952
  39. // Symbol rate = 1.2
  40. // Whitening = false
  41. static const cc1200_reg_settings_t AX25_SETTINGS[]=
  42. {
  43. {CC120X_IOCFG2, 0x09}, // Serial RX Data
  44. {CC120X_IOCFG3, 29}, // Serial Clock
  45. {CC120X_IOCFG0, 0x09}, // Serial RX/TX (Don't Touch)
  46. {CC120X_SYNC_CFG1, 0x00}, // Disable Sync Word
  47. {CC120X_DEVIATION_M, 0x68}, // Deviation: 2.5kHz
  48. {CC120X_MODCFG_DEV_E, 0x00},
  49. {CC120X_DCFILT_CFG, 0x5D},
  50. {CC120X_PREAMBLE_CFG1, 0x00},
  51. {CC120X_PREAMBLE_CFG0, 0x00}, // Preamble Disabled
  52. {CC120X_IQIC, 0xCB},
  53. {CC120X_CHAN_BW, 0xAA},//0x9C},
  54. {CC120X_MDMCFG1, 0x06},
  55. {CC120X_MDMCFG0, 0x45},
  56. {CC120X_SYMBOL_RATE2, 0x3F},
  57. {CC120X_SYMBOL_RATE1, 0x75},
  58. {CC120X_SYMBOL_RATE0, 0x10},
  59. {CC120X_AGC_REF, 0x30},
  60. {CC120X_AGC_CS_THR, 0xEC},
  61. {CC120X_AGC_CFG3, 0x11},
  62. {CC120X_AGC_CFG1, 0x51},
  63. {CC120X_AGC_CFG0, 0x87},
  64. {CC120X_FIFO_CFG, 0x00},
  65. {CC120X_FS_CFG, 0x1B},
  66. {CC120X_PKT_CFG2, 0x03},
  67. {CC120X_PKT_CFG1, 0x00},
  68. {CC120X_PKT_CFG0, 0x28},
  69. {CC120X_PA_CFG1, 0x3F},
  70. {CC120X_PKT_LEN, 0xFF},
  71. {CC120X_IF_MIX_CFG, 0x1C},
  72. {CC120X_FREQOFF_CFG, 0x22}, // Frequency Offset Configuration, Enabled: 0x22, Disabled: 0x02
  73. {CC120X_MDMCFG2, 0x0D}, // CFM, Enabled: 0x0D, Disabled 0x0C
  74. {CC120X_FREQ2, 0x56},
  75. {CC120X_FREQ1, 0xA2},
  76. {CC120X_FREQ0, 0x4C},
  77. {CC120X_IF_ADC1, 0xEE},
  78. {CC120X_IF_ADC0, 0x10},
  79. {CC120X_FS_DIG1, 0x07},
  80. {CC120X_FS_DIG0, 0xAF},
  81. {CC120X_FS_CAL1, 0x40},
  82. {CC120X_FS_CAL0, 0x0E},
  83. {CC120X_FS_DIVTWO, 0x03},
  84. {CC120X_FS_DSM0, 0x33},
  85. {CC120X_FS_DVC0, 0x17},
  86. {CC120X_FS_PFD, 0x00},
  87. {CC120X_FS_PRE, 0x6E},
  88. {CC120X_FS_REG_DIV_CML, 0x1C},
  89. {CC120X_FS_SPARE, 0xAC},
  90. {CC120X_FS_VCO0, 0xB5},
  91. {CC120X_XOSC5, 0x0E},
  92. {CC120X_XOSC1, 0x03},
  93. {CC120X_SERIAL_STATUS, 0x08},
  94. };
  95. // Arrow - FSK Narrowband Settings
  96. // Address Config = No address check
  97. // Bit Rate = 1.2
  98. // Carrier Frequency = 144.389954
  99. // Deviation = 3.986359
  100. // Device Address = 0
  101. // Manchester Enable = false
  102. // Modulation Format = 2-FSK
  103. // Packet Bit Length = 0
  104. // Packet Length = 255
  105. // Packet Length Mode = Variable
  106. // RX Filter BW = 10.964912
  107. // Symbol rate = 1.2
  108. // Whitening = true
  109. static const cc1200_reg_settings_t NARROWBAND_SETTINGS[]=
  110. {
  111. {CC120X_IOCFG2, 0x06},
  112. {CC120X_DEVIATION_M, 0xD1},
  113. {CC120X_MODCFG_DEV_E, 0x00},
  114. {CC120X_DCFILT_CFG, 0x5D},
  115. {CC120X_PREAMBLE_CFG0, 0x8A},
  116. {CC120X_IQIC, 0xCB},
  117. {CC120X_CHAN_BW, 0xA6},
  118. {CC120X_MDMCFG1, 0x40},
  119. {CC120X_MDMCFG0, 0x05},
  120. {CC120X_SYMBOL_RATE2, 0x3F},
  121. {CC120X_SYMBOL_RATE1, 0x75},
  122. {CC120X_SYMBOL_RATE0, 0x10},
  123. {CC120X_AGC_REF, 0x20},
  124. {CC120X_AGC_CS_THR, 0xEC},
  125. {CC120X_AGC_CFG1, 0x51},
  126. {CC120X_AGC_CFG0, 0x87},
  127. {CC120X_FIFO_CFG, 0x00},
  128. {CC120X_FS_CFG, 0x1B},
  129. {CC120X_PKT_CFG2, 0x00},
  130. {CC120X_PKT_CFG1, 0x43},
  131. {CC120X_PKT_CFG0, 0x20},
  132. {CC120X_PKT_LEN, 0xFF},
  133. {CC120X_IF_MIX_CFG, 0x1C},
  134. {CC120X_FREQOFF_CFG, 0x22},
  135. {CC120X_MDMCFG2, 0x0C},
  136. {CC120X_FREQ2, 0x56},
  137. {CC120X_FREQ1, 0xA2},
  138. {CC120X_FREQ0, 0x4C},
  139. {CC120X_IF_ADC1, 0xEE},
  140. {CC120X_IF_ADC0, 0x10},
  141. {CC120X_FS_DIG1, 0x07},
  142. {CC120X_FS_DIG0, 0xAF},
  143. {CC120X_FS_CAL1, 0x40},
  144. {CC120X_FS_CAL0, 0x0E},
  145. {CC120X_FS_DIVTWO, 0x03},
  146. {CC120X_FS_DSM0, 0x33},
  147. {CC120X_FS_DVC0, 0x17},
  148. {CC120X_FS_PFD, 0x00},
  149. {CC120X_FS_PRE, 0x6E},
  150. {CC120X_FS_REG_DIV_CML, 0x1C},
  151. {CC120X_FS_SPARE, 0xAC},
  152. {CC120X_FS_VCO0, 0xB5},
  153. {CC120X_XOSC5, 0x0E},
  154. {CC120X_XOSC1, 0x03},
  155. };
  156. #endif /* INC_CC1200_PROTOCOL_H_ */