Merge branch 'master' into afsk
This commit is contained in:
		
						commit
						5fd0fdf154
					
				| 
						 | 
					@ -256,7 +256,7 @@ void HamShield::softReset() {
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
void HamShield::setFrequency(uint32_t freq_khz) {
 | 
					void HamShield::setFrequency(uint32_t freq_khz) {
 | 
				
			||||||
    radio_frequency = freq_khz;
 | 
					    radio_frequency = freq_khz;
 | 
				
			||||||
    uint32_t freq_raw = freq_khz << 3; // shift by 3 to multiply by 8
 | 
					    uint32_t freq_raw = freq_khz << 4; // shift by 4 to multiply by 16 (was shift by 3 in old 1846 chip)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // send top 16 bits to A1846S_FREQ_HI_REG	
 | 
					    // send top 16 bits to A1846S_FREQ_HI_REG	
 | 
				
			||||||
    uint16_t freq_half = (uint16_t) (0x3FFF & (freq_raw >> 16));
 | 
					    uint16_t freq_half = (uint16_t) (0x3FFF & (freq_raw >> 16));
 | 
				
			||||||
| 
						 | 
					@ -386,7 +386,7 @@ void HamShield::setTX(bool on_noff){
 | 
				
			||||||
      setGpioLow(5); // remember that RX and TX are active low
 | 
					      setGpioLow(5); // remember that RX and TX are active low
 | 
				
			||||||
      // then turn on VREG (PWM output)
 | 
					      // then turn on VREG (PWM output)
 | 
				
			||||||
      // then apply RF signal
 | 
					      // then apply RF signal
 | 
				
			||||||
      setRfPower(100); // figure out a good default number (or don't set a default)
 | 
					      setRfPower(9); // figure out a good default number (or don't set a default)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // todo: make sure gpio are set correctly after this
 | 
					    // todo: make sure gpio are set correctly after this
 | 
				
			||||||
| 
						 | 
					@ -945,19 +945,12 @@ void HamShield::setRfPower(uint8_t pwr) {
 | 
				
			||||||
   // (see RF6886 datasheet)
 | 
					   // (see RF6886 datasheet)
 | 
				
			||||||
   // 30 is 0.5V, which is ~min loop reference voltage
 | 
					   // 30 is 0.5V, which is ~min loop reference voltage
 | 
				
			||||||
   // 127 is 2.5V, which is ~max loop ref voltage
 | 
					   // 127 is 2.5V, which is ~max loop ref voltage
 | 
				
			||||||
   int max_pwr = 255; //167; // 167 is 3.3*255/5 - 1;
 | 
					   int max_pwr = 15; //167; // 167 is 3.3*255/5 - 1;
 | 
				
			||||||
   if (pwr > max_pwr) {
 | 
					   if (pwr > max_pwr) {
 | 
				
			||||||
     pwr = max_pwr; 
 | 
					     pwr = max_pwr; 
 | 
				
			||||||
   }
 | 
					   }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  
 | 
					   I2Cdev::writeBitsW(devAddr, A1846S_PABIAS_REG, A1846S_PADRV_BIT, A1846S_PADRV_LENGTH, pwr);
 | 
				
			||||||
   // using open loop reference voltage into Vreg1/2
 | 
					 | 
				
			||||||
   /*int max_pwr = 78; // 78 = 1.58*255/5 - 1
 | 
					 | 
				
			||||||
   if (pwr > max_pwr) {
 | 
					 | 
				
			||||||
     pwr = max_pwr; 
 | 
					 | 
				
			||||||
   }*/
 | 
					 | 
				
			||||||
   // using loop ref voltage as specified in RF6886 datasheet
 | 
					 | 
				
			||||||
   // analogWrite(pwr_control_pin, pwr);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -94,6 +94,9 @@
 | 
				
			||||||
#define A1846S_PABIAS_BIT          5  // pabias_voltage<5:0>
 | 
					#define A1846S_PABIAS_BIT          5  // pabias_voltage<5:0>
 | 
				
			||||||
#define A1846S_PABIAS_LENGTH       6
 | 
					#define A1846S_PABIAS_LENGTH       6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define A1846S_PADRV_BIT          14  // pabias_voltage<14:11>
 | 
				
			||||||
 | 
					#define A1846S_PADRV_LENGTH       4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Bitfields for A1846S_BAND_SEL_REG
 | 
					// Bitfields for A1846S_BAND_SEL_REG
 | 
				
			||||||
#define A1846S_BAND_SEL_BIT        7  // band_sel<1:0>
 | 
					#define A1846S_BAND_SEL_BIT        7  // band_sel<1:0>
 | 
				
			||||||
#define A1846S_BAND_SEL_LENGTH     2
 | 
					#define A1846S_BAND_SEL_LENGTH     2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,4 +65,4 @@ void loop() {
 | 
				
			||||||
    // Wait 10 seconds and check the channel again.
 | 
					    // Wait 10 seconds and check the channel again.
 | 
				
			||||||
    delay(10000);
 | 
					    delay(10000);
 | 
				
			||||||
  } 
 | 
					  } 
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@ Frequency      F<freq>;    Set the receive frequency in KHz, if offset is disabl
 | 
				
			||||||
CDCSS In       G<code>;    <code> must be a valid CDCSS code                                                                                                            No
 | 
					CDCSS In       G<code>;    <code> must be a valid CDCSS code                                                                                                            No
 | 
				
			||||||
CDCSS Out      H<code>;    <code> must be a valid CDCSS code                                                                                                            No
 | 
					CDCSS Out      H<code>;    <code> must be a valid CDCSS code                                                                                                            No
 | 
				
			||||||
Print tones    I           Prints out all configured tones and codes, coma delimited in format: CTCSS In, CTCSS Out, CDCSS In, CDCSS Out                                No
 | 
					Print tones    I           Prints out all configured tones and codes, coma delimited in format: CTCSS In, CTCSS Out, CDCSS In, CDCSS Out                                No
 | 
				
			||||||
Power level    P<level>;   Set the power amp level, 0 = lowest, 255 = highest                                                                                           No
 | 
					Power level    P<level>;   Set the power amp level, 0 = lowest, 15 = highest                                                                                           No
 | 
				
			||||||
Enable Offset  R<state>;   1 turns on repeater offset mode, 0 turns off repeater offset mode                                                                            No
 | 
					Enable Offset  R<state>;   1 turns on repeater offset mode, 0 turns off repeater offset mode                                                                            No
 | 
				
			||||||
Squelch        S<level>;   Set the squelch level                                                                                                                        No
 | 
					Squelch        S<level>;   Set the squelch level                                                                                                                        No
 | 
				
			||||||
TX Offset      T<freq>;    The absolute frequency of the repeater offset to transmit on in KHz                                                                          No
 | 
					TX Offset      T<freq>;    The absolute frequency of the repeater offset to transmit on in KHz                                                                          No
 | 
				
			||||||
| 
						 | 
					@ -81,7 +81,7 @@ void setup() {
 | 
				
			||||||
  radio.setVolume2(0xF);
 | 
					  radio.setVolume2(0xF);
 | 
				
			||||||
  radio.setModeReceive();
 | 
					  radio.setModeReceive();
 | 
				
			||||||
  radio.setTxSourceMic();
 | 
					  radio.setTxSourceMic();
 | 
				
			||||||
  radio.setRfPower(255); // 30 is 0.5V, which corresponds to 29 dBm out (see RF6886 datasheet)
 | 
					  radio.setRfPower(9);
 | 
				
			||||||
  radio.setSQLoThresh(80);
 | 
					  radio.setSQLoThresh(80);
 | 
				
			||||||
  radio.setSQOn();
 | 
					  radio.setSQOn();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue