cc1120_protocol.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /*
  2. * cc1120_aprs.h
  3. *
  4. * Created on: Jan 12, 2019
  5. * Author: curiousmuch
  6. */
  7. #ifndef MAIN_CC1120_PROTOCOL_H_
  8. #define MAIN_CC1120_PROTOCOL_H_
  9. #include <stdio.h>
  10. #include <stdint.h>
  11. #include "cc1120.h"
  12. typedef struct {
  13. uint16_t addr;
  14. uint8_t data;
  15. } cc1120_reg_settings_t;
  16. /* APRS Radio Configuration */
  17. // Address Config = No address check
  18. // Bit Rate = 6
  19. // Carrier Frequency = 144.389999
  20. // Deviation = 5.004883
  21. // Device Address = 0
  22. // Manchester Enable = false
  23. // Modulation Format = 2-FSK
  24. // PA Ramping = true
  25. // Packet Bit Length = 0
  26. // Packet Length = 255
  27. // Packet Length Mode = Variable
  28. // Performance Mode = High Performance
  29. // RX Filter BW = 20.000000
  30. // Symbol rate = 6
  31. // TX Power = 15
  32. // Whitening = false
  33. static const cc1120_reg_settings_t ARPS_SETTINGS[]=
  34. {
  35. {CC112X_IOCFG3, 0xB0},
  36. {CC112X_IOCFG2, 0x06},
  37. {CC112X_IOCFG1, 0xB0},
  38. {CC112X_IOCFG0, 0x40},
  39. {CC112X_SYNC_CFG1, 0x0B},
  40. {CC112X_DEVIATION_M, 0x48},
  41. {CC112X_DCFILT_CFG, 0x1C},
  42. {CC112X_PREAMBLE_CFG1, 0x18},
  43. {CC112X_IQIC, 0xC6},
  44. {CC112X_CHAN_BW, 0x0A},
  45. {CC112X_MDMCFG0, 0x05},
  46. {CC112X_SYMBOL_RATE2, 0x68},
  47. {CC112X_SYMBOL_RATE1, 0x93},
  48. {CC112X_SYMBOL_RATE0, 0x75},
  49. {CC112X_AGC_REF, 0x20},
  50. {CC112X_AGC_CS_THR, 0x19},
  51. {CC112X_AGC_CFG1, 0xA9},
  52. {CC112X_AGC_CFG0, 0xCF},
  53. {CC112X_FIFO_CFG, 0x00},
  54. {CC112X_FS_CFG, 0x1B},
  55. {CC112X_PKT_CFG0, 0x20},
  56. {CC112X_PA_CFG0, 0x7E},
  57. {CC112X_PKT_LEN, 0xFF},
  58. {CC112X_IF_MIX_CFG, 0x00},
  59. {CC112X_FREQOFF_CFG, 0x22},
  60. {CC112X_FREQ2, 0x6C},
  61. {CC112X_FREQ1, 0x4A},
  62. {CC112X_FREQ0, 0xE1},
  63. {CC112X_FS_DIG1, 0x00},
  64. {CC112X_FS_DIG0, 0x5F},
  65. {CC112X_FS_CAL1, 0x40},
  66. {CC112X_FS_CAL0, 0x0E},
  67. {CC112X_FS_DIVTWO, 0x03},
  68. {CC112X_FS_DSM0, 0x33},
  69. {CC112X_FS_DVC0, 0x17},
  70. {CC112X_FS_PFD, 0x50},
  71. {CC112X_FS_PRE, 0x6E},
  72. {CC112X_FS_REG_DIV_CML, 0x14},
  73. {CC112X_FS_SPARE, 0xAC},
  74. {CC112X_FS_VCO0, 0xB4},
  75. {CC112X_XOSC5, 0x0E},
  76. {CC112X_XOSC1, 0x03},
  77. };
  78. /* 900MHz CW Configuration */
  79. // Address Config = No address check
  80. // Bit Rate = 1.2
  81. // Carrier Frequency = 915.000000
  82. // Deviation = 3.997803
  83. // Device Address = 0
  84. // Manchester Enable = false
  85. // Modulation Format = 2-FSK
  86. // PA Ramping = false
  87. // Packet Bit Length = 0
  88. // Packet Length = 3
  89. // Packet Length Mode = Not supported
  90. // Performance Mode = High Performance
  91. // RX Filter BW = 25.000000
  92. // Symbol rate = 1.2
  93. // TX Power = 15
  94. // Whitening = false
  95. static const cc1120_reg_settings_t CW_SETTINGS[]=
  96. {
  97. {CC112X_IOCFG3, 0xB0},
  98. {CC112X_IOCFG2, 0x08},
  99. {CC112X_IOCFG1, 0xB0},
  100. {CC112X_IOCFG0, 0x09},
  101. {CC112X_SYNC_CFG1, 0x0B},
  102. {CC112X_DCFILT_CFG, 0x1C},
  103. {CC112X_PREAMBLE_CFG1, 0x00},
  104. {CC112X_IQIC, 0xC6},
  105. {CC112X_CHAN_BW, 0x08},
  106. {CC112X_MDMCFG0, 0x05},
  107. {CC112X_AGC_REF, 0x20},
  108. {CC112X_AGC_CS_THR, 0x19},
  109. {CC112X_AGC_CFG1, 0xA9},
  110. {CC112X_FIFO_CFG, 0x00},
  111. {CC112X_FS_CFG, 0x12},
  112. {CC112X_PKT_CFG2, 0x06},
  113. {CC112X_PKT_CFG1, 0x00},
  114. {CC112X_PKT_CFG0, 0x40},
  115. {CC112X_PA_CFG2, 0x3F},
  116. {CC112X_IF_MIX_CFG, 0x00},
  117. {CC112X_FREQOFF_CFG, 0x22},
  118. {CC112X_CFM_DATA_CFG, 0x01},
  119. {CC112X_FREQ2, 0x72},
  120. {CC112X_FREQ1, 0x60},
  121. {CC112X_FS_DIG1, 0x00},
  122. {CC112X_FS_DIG0, 0x5F},
  123. {CC112X_FS_CAL1, 0x40},
  124. {CC112X_FS_CAL0, 0x0E},
  125. {CC112X_FS_DIVTWO, 0x03},
  126. {CC112X_FS_DSM0, 0x33},
  127. {CC112X_FS_DVC0, 0x17},
  128. {CC112X_FS_PFD, 0x50},
  129. {CC112X_FS_PRE, 0x6E},
  130. {CC112X_FS_REG_DIV_CML, 0x14},
  131. {CC112X_FS_SPARE, 0xAC},
  132. {CC112X_FS_VCO0, 0xB4},
  133. {CC112X_XOSC5, 0x0E},
  134. {CC112X_XOSC1, 0x03},
  135. };
  136. #endif /* MAIN_CC1120_PROTOCOL_H_ */