kopia lustrzana https://github.com/jgromes/RadioLib
				
				
				
			SX127x - Sync with LoRaLib v3.0.3
							rodzic
							
								
									19840f8249
								
							
						
					
					
						commit
						39d674f953
					
				|  | @ -53,7 +53,7 @@ uint8_t SX1272::setFrequency(float freq) { | |||
|   } | ||||
|    | ||||
|   // set frequency
 | ||||
|   return(SX1272::setFrequencyRaw(freq)); | ||||
|   return(SX127x::setFrequencyRaw(freq)); | ||||
| } | ||||
| 
 | ||||
| uint8_t SX1272::setBandwidth(float bw) { | ||||
|  |  | |||
|  | @ -10,6 +10,66 @@ uint8_t SX1276::setFrequency(float freq) { | |||
|     return(ERR_INVALID_FREQUENCY); | ||||
|   } | ||||
|    | ||||
|   // sensitivity optimization for 500kHz bandwidth
 | ||||
|   // see SX1276/77/78 Errata, section 2.1 for details
 | ||||
|   if(_bw == 500.0) { | ||||
|     if((freq >= 862.0) && (freq <= 1020.0)) { | ||||
|       _mod->SPIwriteRegister(0x36, 0x02); | ||||
|       _mod->SPIwriteRegister(0x3a, 0x64); | ||||
|     } else if((freq >= 410.0) && (freq <= 525.0)) { | ||||
|       _mod->SPIwriteRegister(0x36, 0x03); | ||||
|       _mod->SPIwriteRegister(0x3a, 0x65); | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   // mitigation of receiver spurious response
 | ||||
|   // see SX1276/77/78 Errata, section 2.3 for details
 | ||||
|   if(_bw == 7.8) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x48); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 7.8; | ||||
|   } else if(_bw == 10.4) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 10.4; | ||||
|   } else if(_bw == 15.6) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 15.6; | ||||
|   } else if(_bw == 20.8) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 20.8; | ||||
|   } else if(_bw == 31.25) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 31.25; | ||||
|   } else if(_bw == 41.7) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 41.7; | ||||
|   } else if(_bw == 62.5) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 125.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 250.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 500.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b1000000, 7, 7); | ||||
|   } | ||||
|    | ||||
|   // set frequency
 | ||||
|   return(SX1278::setFrequencyRaw(freq)); | ||||
|   return(SX127x::setFrequencyRaw(freq)); | ||||
| } | ||||
|  |  | |||
|  | @ -10,8 +10,68 @@ uint8_t SX1277::setFrequency(float freq) { | |||
|     return(ERR_INVALID_FREQUENCY); | ||||
|   } | ||||
|    | ||||
|   // sensitivity optimization for 500kHz bandwidth
 | ||||
|   // see SX1276/77/78 Errata, section 2.1 for details
 | ||||
|   if(_bw == 500.0) { | ||||
|     if((freq >= 862.0) && (freq <= 1020.0)) { | ||||
|       _mod->SPIwriteRegister(0x36, 0x02); | ||||
|       _mod->SPIwriteRegister(0x3a, 0x64); | ||||
|     } else if((freq >= 410.0) && (freq <= 525.0)) { | ||||
|       _mod->SPIwriteRegister(0x36, 0x03); | ||||
|       _mod->SPIwriteRegister(0x3a, 0x65); | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   // mitigation of receiver spurious response
 | ||||
|   // see SX1276/77/78 Errata, section 2.3 for details
 | ||||
|   if(_bw == 7.8) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x48); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 7.8; | ||||
|   } else if(_bw == 10.4) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 10.4; | ||||
|   } else if(_bw == 15.6) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 15.6; | ||||
|   } else if(_bw == 20.8) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 20.8; | ||||
|   } else if(_bw == 31.25) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 31.25; | ||||
|   } else if(_bw == 41.7) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 41.7; | ||||
|   } else if(_bw == 62.5) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 125.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 250.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 500.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b1000000, 7, 7); | ||||
|   } | ||||
|    | ||||
|   // set frequency and if successful, save the new setting
 | ||||
|   return(SX1278::setFrequencyRaw(freq)); | ||||
|   return(SX127x::setFrequencyRaw(freq)); | ||||
| } | ||||
| 
 | ||||
| uint8_t SX1277::setSpreadingFactor(uint8_t sf) { | ||||
|  |  | |||
|  | @ -52,8 +52,68 @@ uint8_t SX1278::setFrequency(float freq) { | |||
|     return(ERR_INVALID_FREQUENCY); | ||||
|   } | ||||
|    | ||||
|   // sensitivity optimization for 500kHz bandwidth
 | ||||
|   // see SX1276/77/78 Errata, section 2.1 for details
 | ||||
|   if(_bw == 500.0) { | ||||
|     if((freq >= 862.0) && (freq <= 1020.0)) { | ||||
|       _mod->SPIwriteRegister(0x36, 0x02); | ||||
|       _mod->SPIwriteRegister(0x3a, 0x64); | ||||
|     } else if((freq >= 410.0) && (freq <= 525.0)) { | ||||
|       _mod->SPIwriteRegister(0x36, 0x03); | ||||
|       _mod->SPIwriteRegister(0x3a, 0x65); | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   // mitigation of receiver spurious response
 | ||||
|   // see SX1276/77/78 Errata, section 2.3 for details
 | ||||
|   if(_bw == 7.8) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x48); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 7.8; | ||||
|   } else if(_bw == 10.4) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 10.4; | ||||
|   } else if(_bw == 15.6) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 15.6; | ||||
|   } else if(_bw == 20.8) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 20.8; | ||||
|   } else if(_bw == 31.25) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 31.25; | ||||
|   } else if(_bw == 41.7) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x44); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|     freq += 41.7; | ||||
|   } else if(_bw == 62.5) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 125.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 250.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b0000000, 7, 7); | ||||
|     _mod->SPIsetRegValue(0x2F, 0x40); | ||||
|     _mod->SPIsetRegValue(0x30, 0x00); | ||||
|   } else if(_bw == 500.0) { | ||||
|     _mod->SPIsetRegValue(0x31, 0b1000000, 7, 7); | ||||
|   } | ||||
|    | ||||
|   // set frequency
 | ||||
|   return(SX1278::setFrequencyRaw(freq)); | ||||
|   return(SX127x::setFrequencyRaw(freq)); | ||||
| } | ||||
| 
 | ||||
| uint8_t SX1278::setBandwidth(float bw) { | ||||
|  | @ -70,6 +130,8 @@ uint8_t SX1278::setBandwidth(float bw) { | |||
|     newBandwidth = SX1278_BW_20_80_KHZ; | ||||
|   } else if(bw == 31.25) { | ||||
|     newBandwidth = SX1278_BW_31_25_KHZ; | ||||
|   } else if(bw == 41.7) { | ||||
|     newBandwidth = SX1278_BW_41_70_KHZ; | ||||
|   } else if(bw == 62.5) { | ||||
|     newBandwidth = SX1278_BW_62_50_KHZ; | ||||
|   } else if(bw == 125.0) { | ||||
|  |  | |||
|  | @ -11,5 +11,5 @@ uint8_t SX1279::setFrequency(float freq) { | |||
|   } | ||||
|    | ||||
|   // set frequency
 | ||||
|   return(SX1278::setFrequencyRaw(freq)); | ||||
|   return(SX127x::setFrequencyRaw(freq)); | ||||
| } | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Jan Gromeš
						Jan Gromeš