sx1276_7_8.h 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. #ifndef SX1276_7_8_H
  2. #define SX1276_7_8_H
  3. ///////////////////////////////////////////////// LoRa mode //////////////////////////////////////////////////
  4. //Error Coding rate (CR)setting
  5. #define CR_4_5
  6. //#define CR_4_6 0
  7. //#define CR_4_7 0
  8. //#define CR_4_8 0
  9. #ifdef CR_4_5
  10. #define CR 0x01 // 4/5
  11. #else
  12. #ifdef CR_4_6
  13. #define CR 0x02 // 4/6
  14. #else
  15. #ifdef CR_4_7
  16. #define CR 0x03 // 4/7
  17. #else
  18. #ifdef CR_4_8
  19. #define CR 0x04 // 4/8
  20. #endif
  21. #endif
  22. #endif
  23. #endif
  24. //CRC Enable
  25. #define CRC_EN
  26. #ifdef CRC_EN
  27. #define CRC 0x01 //CRC Enable
  28. #else
  29. #define CRC 0x00
  30. #endif
  31. //RFM98 Internal registers Address
  32. /********************Lroa mode***************************/
  33. #define LR_RegFifo 0x00
  34. // Common settings
  35. #define LR_RegOpMode 0x01
  36. #define LR_RegFrMsb 0x06
  37. #define LR_RegFrMid 0x07
  38. #define LR_RegFrLsb 0x08
  39. // Tx settings
  40. #define LR_RegPaConfig 0x09
  41. #define LR_RegPaRamp 0x0A
  42. #define LR_RegOcp 0x0B
  43. // Rx settings
  44. #define LR_RegLna 0x0C
  45. // LoRa registers
  46. #define LR_RegFifoAddrPtr 0x0D
  47. #define LR_RegFifoTxBaseAddr 0x0E
  48. #define LR_RegFifoRxBaseAddr 0x0F
  49. #define LR_RegFifoRxCurrentaddr 0x10
  50. #define LR_RegIrqFlagsMask 0x11
  51. #define LR_RegIrqFlags 0x12
  52. #define LR_RegRxNbBytes 0x13
  53. #define LR_RegRxHeaderCntValueMsb 0x14
  54. #define LR_RegRxHeaderCntValueLsb 0x15
  55. #define LR_RegRxPacketCntValueMsb 0x16
  56. #define LR_RegRxPacketCntValueLsb 0x17
  57. #define LR_RegModemStat 0x18
  58. #define LR_RegPktSnrValue 0x19
  59. #define LR_RegPktRssiValue 0x1A
  60. #define LR_RegRssiValue 0x1B
  61. #define LR_RegHopChannel 0x1C
  62. #define LR_RegModemConfig1 0x1D
  63. #define LR_RegModemConfig2 0x1E
  64. #define LR_RegSymbTimeoutLsb 0x1F
  65. #define LR_RegPreambleMsb 0x20
  66. #define LR_RegPreambleLsb 0x21
  67. #define LR_RegPayloadLength 0x22
  68. #define LR_RegMaxPayloadLength 0x23
  69. #define LR_RegHopPeriod 0x24
  70. #define LR_RegFifoRxByteAddr 0x25
  71. // I/O settings
  72. #define REG_LR_DIOMAPPING1 0x40
  73. #define REG_LR_DIOMAPPING2 0x41
  74. // Version
  75. #define REG_LR_VERSION 0x42
  76. // Additional settings
  77. #define REG_LR_PLLHOP 0x44
  78. #define REG_LR_TCXO 0x4B
  79. #define REG_LR_PADAC 0x4D
  80. #define REG_LR_FORMERTEMP 0x5B
  81. #define REG_LR_AGCREF 0x61
  82. #define REG_LR_AGCTHRESH1 0x62
  83. #define REG_LR_AGCTHRESH2 0x63
  84. #define REG_LR_AGCTHRESH3 0x64
  85. /********************FSK/ook mode***************************/
  86. #define RegFIFO 0x00 //FIFO
  87. #define RegOpMode 0x01 //操作模式
  88. #define RegBitRateMsb 0x02 //BR 高位
  89. #define RegBitRateLsb 0x03 //BR 低位
  90. #define RegFdevMsb 0x04 //FD 高位
  91. #define RegFdevLsb 0x05 //FD 低位
  92. #define RegFreqMsb 0x06 //Freq 高位
  93. #define RegFreqMid 0x07 //Freq 中位
  94. #define RegFreqLsb 0x08 //Freq 低位
  95. #define RegPaConfig 0x09
  96. #define RegPaRamp 0x0a
  97. #define RegOcp 0x0b
  98. #define RegLna 0x0c
  99. #define RegRxConfig 0x0d
  100. #define RegRssiConfig 0x0e
  101. #define RegRssiCollision 0x0f
  102. #define RegRssiThresh 0x10
  103. #define RegRssiValue 0x11
  104. #define RegRxBw 0x12
  105. #define RegAfcBw 0x13
  106. #define RegOokPeak 0x14
  107. #define RegOokFix 0x15
  108. #define RegOokAvg 0x16
  109. #define RegAfcFei 0x1a
  110. #define RegAfcMsb 0x1b
  111. #define RegAfcLsb 0x1c
  112. #define RegFeiMsb 0x1d
  113. #define RegFeiLsb 0x1e
  114. #define RegPreambleDetect 0x1f
  115. #define RegRxTimeout1 0x20
  116. #define RegRxTimeout2 0x21
  117. #define RegRxTimeout3 0x22
  118. #define RegRxDelay 0x23
  119. #define RegOsc 0x24 //OSC设置
  120. #define RegPreambleMsb 0x25
  121. #define RegPreambleLsb 0x26
  122. #define RegSyncConfig 0x27
  123. #define RegSyncValue1 0x28
  124. #define RegSyncValue2 0x29
  125. #define RegSyncValue3 0x2a
  126. #define RegSyncValue4 0x2b
  127. #define RegSyncValue5 0x2c
  128. #define RegSyncValue6 0x2d
  129. #define RegSyncValue7 0x2e
  130. #define RegSyncValue8 0x2f
  131. #define RegPacketConfig1 0x30
  132. #define RegPacketConfig2 0x31
  133. #define RegPayloadLength 0x32
  134. #define RegNodeAdrs 0x33
  135. #define RegBroadcastAdrs 0x34
  136. #define RegFifoThresh 0x35
  137. #define RegSeqConfig1 0x36
  138. #define RegSeqConfig2 0x37
  139. #define RegTimerResol 0x38
  140. #define RegTimer1Coef 0x39
  141. #define RegTimer2Coef 0x3a
  142. #define RegImageCal 0x3b
  143. #define RegTemp 0x3c
  144. #define RegLowBat 0x3d
  145. #define RegIrqFlags1 0x3e
  146. #define RegIrqFlags2 0x3f
  147. #define RegDioMapping1 0x40
  148. #define RegDioMapping2 0x41
  149. #define RegVersion 0x42
  150. #define RegPllHop 0x44
  151. #define RegPaDac 0x4d
  152. #define RegBitRateFrac 0x5d
  153. /*********************************************************/
  154. //command
  155. /*********************************************************/
  156. extern unsigned char mode;
  157. extern unsigned char Freq_Sel;
  158. extern unsigned char Power_Sel;
  159. extern unsigned char Lora_Rate_Sel;
  160. extern unsigned char BandWide_Sel;
  161. extern unsigned char Fsk_Rate_Sel;
  162. extern unsigned int SysTime;
  163. extern unsigned char RxData[64];
  164. extern unsigned char RxData[64];
  165. extern unsigned char sx1276_7_8_Config(void);
  166. extern unsigned char sx1276_7_8_LoRaEntryRx(void);
  167. extern unsigned char sx1276_7_8_LoRaReadRSSI(void);
  168. extern unsigned char sx1276_7_8_LoRaRxPacket(void);
  169. extern unsigned char sx1276_7_8_LoRaEntryTx(void);
  170. extern unsigned char sx1276_7_8_LoRaTxPacket(void);
  171. extern void SX1276_TASK(void);
  172. #endif