sx126x_reg.lua 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. --- 模块功能:存储sx126x寄存器数据
  2. module(...,package.seeall)
  3. --[[
  4. The addresses of the register holding LoRa Modem SyncWord value
  5. ]]
  6. REG_LR_SYNCWORD = "0740"
  7. REG_OCP = "08E7"
  8. RadioStandbyModes_t = {
  9. STDBY_RC = "00",
  10. STDBY_XOSC = "01",
  11. }
  12. RadioOperatingModes_t = {
  13. MODE_SLEEP = "00",
  14. MODE_STDBY_RC = "01",
  15. MODE_STDBY_XOSC = "02",
  16. MODE_FS = "03",
  17. MODE_TX = "04",
  18. MODE_RX = "05",
  19. MODE_RX_DC = "06",
  20. MODE_CAD = "07"
  21. }
  22. RadioRampTimes_t = {
  23. RADIO_RAMP_10_US = "00",
  24. RADIO_RAMP_20_US = "01",
  25. RADIO_RAMP_40_US = "02",
  26. RADIO_RAMP_80_US = "03",
  27. RADIO_RAMP_200_US = "04",
  28. RADIO_RAMP_800_US = "05",
  29. RADIO_RAMP_1700_US = "06",
  30. RADIO_RAMP_3400_US = "07"
  31. }
  32. RadioPreambleDetection_t = {
  33. RADIO_PREAMBLE_DETECTOR_OFF = "00",
  34. RADIO_PREAMBLE_DETECTOR_08_BITS = "01",
  35. RADIO_PREAMBLE_DETECTOR_16_BITS = "02",
  36. RADIO_PREAMBLE_DETECTOR_24_BITS = "03",
  37. RADIO_PREAMBLE_DETECTOR_32_BITS = "04"
  38. }
  39. RadioAddressComp_t = {
  40. RADIO_ADDRESSCOMP_FILT_OFF = "00",
  41. RADIO_ADDRESSCOMP_FILT_NODE = "01",
  42. RADIO_ADDRESSCOMP_FILT_NODE_BROAD = "02"
  43. }
  44. RadioPacketLengthModes_t = {
  45. RADIO_PACKET_FIXED_LENGTH = "00",
  46. RADIO_PACKET_VARIABLE_LENGTH = "01"
  47. }
  48. RadioCrcTypes_t = {
  49. RADIO_CRC_OFF = "01",
  50. RADIO_CRC_1_BYTES = "00",
  51. RADIO_CRC_2_BYTES = "02",
  52. RADIO_CRC_1_BYTES_INV = "04",
  53. RADIO_CRC_2_BYTES_INV = "06",
  54. RADIO_CRC_2_BYTES_IBM = "F1",
  55. RADIO_CRC_2_BYTES_CCIT = "F2"
  56. }
  57. RadioDcFree_t = {
  58. RADIO_DC_FREE_OFF = "00",
  59. RADIO_DC_FREEWHITENING = "01",
  60. }
  61. RadioLoRaPacketLengthsMode_t = {
  62. LORA_PACKET_VARIABLE_LENGTH = "00",
  63. LORA_PACKET_FIXED_LENGTH = "01",
  64. LORA_PACKET_EXPLICIT = LORA_PACKET_VARIABLE_LENGTH,
  65. LORA_PACKET_IMPLICIT = LORA_PACKET_FIXED_LENGTH,
  66. }
  67. RadioLoRaCrcModes_t = {
  68. LORA_CRC_ON = "01", -- //!< CRC activated
  69. LORA_CRC_OFF = "00", --//!< CRC not used
  70. }
  71. RadioLoRaIQModes_t = {
  72. LORA_IQ_NORMAL = "00",
  73. LORA_IQ_INVERTED = "01",
  74. }
  75. RadioPacketTypes_t = {
  76. PACKET_TYPE_GFSK = "00",
  77. PACKET_TYPE_LORA = "01",
  78. PACKET_TYPE_NONE = "0F",
  79. }
  80. RadioModShapings_t = {
  81. MOD_SHAPING_OFF = "00",
  82. MOD_SHAPING_G_BT_03 = "08",
  83. MOD_SHAPING_G_BT_05 = "09",
  84. MOD_SHAPING_G_BT_07 = "0A",
  85. MOD_SHAPING_G_BT_1 = "0B",
  86. }
  87. RadioLoRaSpreadingFactors_t = {
  88. LORA_SF5 = "05",
  89. LORA_SF6 = "06",
  90. LORA_SF7 = "07",
  91. LORA_SF8 = "08",
  92. LORA_SF9 = "09",
  93. LORA_SF10 = "0A",
  94. LORA_SF11 = "0B",
  95. LORA_SF12 = "0C",
  96. }
  97. RadioLoRaCodingRates_t = {
  98. LORA_CR_4_5 = "01",
  99. LORA_CR_4_6 = "02",
  100. LORA_CR_4_7 = "03",
  101. LORA_CR_4_8 = "04",
  102. }
  103. PacketParams_t = {
  104. PacketType = RadioPacketTypes_t,
  105. Params = {
  106. Gfsk = {
  107. PreambleLength = nil; -- //!< The preamble Tx length for GFSK packet type in bit
  108. PreambleMinDetect = RadioPreambleDetection_t; --//!< The preamble Rx length minimal for GFSK packet type
  109. SyncWordLength = nil; --//!< The synchronization word length for GFSK packet type
  110. AddrComp = RadioAddressComp_t; --//!< Activated SyncWord correlators
  111. HeaderType = RadioPacketLengthModes_t; --//!< If the header is explicit, it will be transmitted in the GFSK packet. If the header is implicit, it will not be transmitted
  112. PayloadLength = nil; --//!< Size of the payload in the GFSK packet
  113. CrcLength = RadioCrcTypes_t; --//!< Size of the CRC block in the GFSK packet
  114. DcFree = RadioDcFree_t;
  115. },
  116. LoRa = {
  117. PreambleLength = nil;
  118. HeaderType = RadioLoRaPacketLengthsMode_t;
  119. PayloadLength = nil;
  120. CrcMode = RadioLoRaCrcModes_t;
  121. InvertIQ = RadioLoRaIQModes_t;
  122. }
  123. }
  124. }
  125. PacketStatus_t = {
  126. PacketType = RadioPacketTypes_t,
  127. Params = {
  128. Gfsk = {
  129. RxStatus = nil,
  130. RssiAvg = nil, --//!< The averaged RSSI
  131. RssiSync = nil, --//!< The RSSI measured on last packet
  132. FreqError = nil
  133. },
  134. LoRa = {
  135. RssiPkt = nil, -- //!< The RSSI of the last packet
  136. SnrPkt = nil, -- //!< The SNR of the last packet
  137. SignalRssiPkt = nil,
  138. FreqError = nil
  139. }
  140. }
  141. }
  142. ModulationParams_t = {
  143. PacketType = RadioPacketTypes_t,
  144. Params = {
  145. Gfsk = {
  146. BitRate = nil,
  147. Fdev = nil,
  148. ModulationShaping =RadioModShapings_t,
  149. Bandwidth = nil
  150. },
  151. LoRa = {
  152. SpreadingFactor = RadioLoRaSpreadingFactors_t, --//!< Spreading Factor for the LoRa modulation
  153. Bandwidth = RadioLoRaBandwidths_t, --//!< Bandwidth for the LoRa modulation
  154. CodingRate = RadioLoRaCodingRates_t, --//!< Coding rate for the LoRa modulation
  155. LowDatarateOptimize = nil; -- //!< Indicates if the modem uses the low datarate optimization
  156. }
  157. }
  158. }
  159. SX126x_t = {
  160. test = "测试",
  161. PacketParams = PacketParams_t,
  162. PacketStatus = PacketStatus_t,
  163. ModulationParams = ModulationParams_t
  164. }
  165. -- 定义Radio命令枚举(字符串格式,用于直接通信)
  166. --[[
  167. Represents all possible opcode understood by the radio
  168. ]]
  169. RadioCommands = {
  170. RADIO_GET_STATUS = "C0",
  171. RADIO_WRITE_REGISTER = "0D",
  172. RADIO_READ_REGISTER = "1D",
  173. RADIO_WRITE_BUFFER = "0E",
  174. RADIO_READ_BUFFER = "1E",
  175. RADIO_SET_SLEEP = "84",
  176. RADIO_SET_STANDBY = "80",
  177. RADIO_SET_FS = "C1",
  178. RADIO_SET_TX = "83",
  179. RADIO_SET_RX = "82",
  180. RADIO_SET_RXDUTYCYCLE = "94",
  181. RADIO_SET_CAD = "C5",
  182. RADIO_SET_TXCONTINUOUSWAVE = "D1",
  183. RADIO_SET_TXCONTINUOUSPREAMBLE = "D2",
  184. RADIO_SET_PACKETTYPE = "8A",
  185. RADIO_GET_PACKETTYPE = "11",
  186. RADIO_SET_RFFREQUENCY = "86",
  187. RADIO_SET_TXPARAMS = "8E",
  188. RADIO_SET_PACONFIG = "95",
  189. RADIO_SET_CADPARAMS = "88",
  190. RADIO_SET_BUFFERBASEADDRESS = "8F",
  191. RADIO_SET_MODULATIONPARAMS = "8B",
  192. RADIO_SET_PACKETPARAMS = "8C",
  193. RADIO_GET_RXBUFFERSTATUS = "13",
  194. RADIO_GET_PACKETSTATUS = "14",
  195. RADIO_GET_RSSIINST = "15",
  196. RADIO_GET_STATS = "10",
  197. RADIO_RESET_STATS = "00",
  198. RADIO_CFG_DIOIRQ = "08",
  199. RADIO_GET_IRQSTATUS = "12",
  200. RADIO_CLR_IRQSTATUS = "02",
  201. RADIO_CALIBRATE = "89",
  202. RADIO_CALIBRATEIMAGE = "98",
  203. RADIO_SET_REGULATORMODE = "96",
  204. RADIO_GET_ERROR = "17",
  205. RADIO_CLR_ERROR = "07",
  206. RADIO_SET_TCXOMODE = "97",
  207. RADIO_SET_TXFALLBACKMODE = "93",
  208. RADIO_SET_RFSWITCHMODE = "9D",
  209. RADIO_SET_STOPRXTIMERONPREAMBLE = "9F",
  210. RADIO_SET_LORASYMBTIMEOUT = "A0"
  211. }