kopia lustrzana https://github.com/meshtastic/firmware
				
				
				
			Use LORA_DIO1 as RadioLib GPIO for SX127x chips (#2290)
* When channel is active, first try receiving that packet Afterwards we'll try transmitting again * Remove setStandby in startSend Already done in isChannelActive() * Set LORA_DIO1 as RadioLib GPIO for SX127x * LORA_DIO1 for Heltec v1, overlaps with GPS_TX Set to RADIOLIB_NC for now * If receive was not successful, startReceive doesn't trigger the interrupt So we have to go back to transmitting anyway --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>pull/2286/head^2
							rodzic
							
								
									187f3969c2
								
							
						
					
					
						commit
						95bbcd2cb7
					
				|  | @ -2,6 +2,6 @@ | |||
| #ifdef USE_RF95 | ||||
| #define RF95_RESET LORA_RESET | ||||
| #define RF95_IRQ LORA_DIO0  // on SX1262 version this is a no connect DIO0
 | ||||
| #define RF95_DIO1 LORA_DIO1 // Note: not really used for RF95
 | ||||
| #define RF95_DIO1 LORA_DIO1 // Note: not really used for RF95, but used for pure SX127x
 | ||||
| #define RF95_DIO2 LORA_DIO2 // Note: not really used for RF95
 | ||||
| #endif | ||||
|  | @ -409,7 +409,7 @@ void setup() | |||
| 
 | ||||
| #if defined(RF95_IRQ) | ||||
|     if (!rIf) { | ||||
|         rIf = new RF95Interface(RF95_NSS, RF95_IRQ, RF95_RESET, SPI); | ||||
|         rIf = new RF95Interface(RF95_NSS, RF95_IRQ, RF95_RESET, RF95_DIO1, SPI); | ||||
|         if (!rIf->init()) { | ||||
|             LOG_WARN("Failed to find RF95 radio\n"); | ||||
|             delete rIf; | ||||
|  |  | |||
|  | @ -11,8 +11,9 @@ | |||
| 
 | ||||
| #define POWER_DEFAULT 17 // How much power to use if the user hasn't set a power level
 | ||||
| 
 | ||||
| RF95Interface::RF95Interface(RADIOLIB_PIN_TYPE cs, RADIOLIB_PIN_TYPE irq, RADIOLIB_PIN_TYPE rst, SPIClass &spi) | ||||
|     : RadioLibInterface(cs, irq, rst, RADIOLIB_NC, spi) | ||||
| RF95Interface::RF95Interface(RADIOLIB_PIN_TYPE cs, RADIOLIB_PIN_TYPE irq, RADIOLIB_PIN_TYPE rst, RADIOLIB_PIN_TYPE busy, | ||||
|                              SPIClass &spi) | ||||
|     : RadioLibInterface(cs, irq, rst, busy, spi) | ||||
| { | ||||
|     // FIXME - we assume devices never get destroyed
 | ||||
| } | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ class RF95Interface : public RadioLibInterface | |||
|     RadioLibRF95 *lora = NULL; // Either a RFM95 or RFM96 depending on what was stuffed on this board
 | ||||
| 
 | ||||
|   public: | ||||
|     RF95Interface(RADIOLIB_PIN_TYPE cs, RADIOLIB_PIN_TYPE irq, RADIOLIB_PIN_TYPE rst, SPIClass &spi); | ||||
|     RF95Interface(RADIOLIB_PIN_TYPE cs, RADIOLIB_PIN_TYPE irq, RADIOLIB_PIN_TYPE rst, RADIOLIB_PIN_TYPE busy, SPIClass &spi); | ||||
| 
 | ||||
|     // TODO: Verify that this irq flag works with RFM95 / SX1276 radios the way it used to
 | ||||
|     bool isIRQPending() override { return lora->getIRQFlags() & RADIOLIB_SX127X_MASK_IRQ_FLAG_VALID_HEADER; } | ||||
|  |  | |||
|  | @ -218,8 +218,9 @@ void RadioLibInterface::onNotify(uint32_t notification) | |||
|                 setTransmitDelay(); // currently Rx/Tx-ing: reset random delay
 | ||||
|             } else { | ||||
|                 if (isChannelActive()) { // check if there is currently a LoRa packet on the channel
 | ||||
|                     // LOG_DEBUG("Channel is active: set random delay\n");
 | ||||
|                     setTransmitDelay(); // reset random delay
 | ||||
|                     // LOG_DEBUG("Channel is active, try receiving first.\n");
 | ||||
|                     startReceive(); // try receiving this packet, afterwards we'll be trying to transmit again
 | ||||
|                     setTransmitDelay(); | ||||
|                 } else { | ||||
|                     // Send any outgoing packets we have ready
 | ||||
|                     meshtastic_MeshPacket *txp = txQueue.dequeue(); | ||||
|  | @ -388,8 +389,6 @@ void RadioLibInterface::startSend(meshtastic_MeshPacket *txp) | |||
|         LOG_WARN("startSend is dropping tx packet because we are disabled\n"); | ||||
|         packetPool.release(txp); | ||||
|     } else { | ||||
|         setStandby(); // Cancel any already in process receives
 | ||||
| 
 | ||||
|         configHardwareForSend(); // must be after setStandby
 | ||||
| 
 | ||||
|         size_t numbytes = beginSending(txp); | ||||
|  |  | |||
|  | @ -20,8 +20,8 @@ | |||
| #ifndef USE_JTAG | ||||
| #define LORA_RESET 14 | ||||
| #endif | ||||
| #define LORA_DIO1 35 // Not really used
 | ||||
| #define LORA_DIO2 34 // Not really used
 | ||||
| #define LORA_DIO1 RADIOLIB_NC | ||||
| #define LORA_DIO2 32 // Not really used
 | ||||
| 
 | ||||
| // ratio of voltage divider = 3.20 (R1=100k, R2=220k)
 | ||||
| #define ADC_MULTIPLIER 3.2 | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ | |||
| #ifndef USE_JTAG | ||||
| #define LORA_RESET 14 | ||||
| #endif | ||||
| #define LORA_DIO1 35 // Not really used
 | ||||
| #define LORA_DIO1 35 // https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
 | ||||
| #define LORA_DIO2 34 // Not really used
 | ||||
| 
 | ||||
| #define ADC_MULTIPLIER 3.8 | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ | |||
| #ifndef USE_JTAG | ||||
| #define LORA_RESET 14 | ||||
| #endif | ||||
| #define LORA_DIO1 35 // Not really used
 | ||||
| #define LORA_DIO1 35 // https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
 | ||||
| #define LORA_DIO2 34 // Not really used
 | ||||
| 
 | ||||
| // ratio of voltage divider = 3.20 (R12=100k, R10=220k)
 | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
| #define USE_RF95 | ||||
| #define LORA_DIO0 26 // a No connect on the SX1262 module
 | ||||
| #define LORA_RESET 23 | ||||
| #define LORA_DIO1 33 // Not really used
 | ||||
| #define LORA_DIO1 33 | ||||
| #define LORA_DIO2 32 // Not really used
 | ||||
| 
 | ||||
| // This board has different GPS pins than all other boards
 | ||||
|  |  | |||
|  | @ -15,5 +15,5 @@ | |||
| #define USE_RF95 | ||||
| #define LORA_DIO0 26 // a No connect on the SX1262 module
 | ||||
| #define LORA_RESET 14 | ||||
| #define LORA_DIO1 35 // Not really used
 | ||||
| #define LORA_DIO2 34 // Not really used
 | ||||
| #define LORA_DIO1 33 // Must be manually wired: https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
 | ||||
| #define LORA_DIO2 32 // Not really used
 | ||||
|  |  | |||
|  | @ -18,5 +18,5 @@ | |||
| #define USE_RF95 | ||||
| #define LORA_DIO0 26 // a No connect on the SX1262 module
 | ||||
| #define LORA_RESET 14 | ||||
| #define LORA_DIO1 35 // Not really used
 | ||||
| #define LORA_DIO2 34 // Not really used
 | ||||
| #define LORA_DIO1 33 // Prob. must be manually wired: https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
 | ||||
| #define LORA_DIO2 32 // Not really used
 | ||||
|  | @ -18,5 +18,5 @@ | |||
| #define USE_RF95 | ||||
| #define LORA_DIO0 26 // a No connect on the SX1262 module
 | ||||
| #define LORA_RESET 14 | ||||
| #define LORA_DIO1 35 // Not really used
 | ||||
| #define LORA_DIO2 34 // Not really used
 | ||||
| #define LORA_DIO1 33 // Must be manually wired: https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
 | ||||
| #define LORA_DIO2 32 // Not really used
 | ||||
|  |  | |||
|  | @ -18,3 +18,5 @@ | |||
| #define USE_RF95 | ||||
| #define LORA_DIO0 26 // a No connect on the SX1262 module
 | ||||
| #define LORA_RESET 23 | ||||
| #define LORA_DIO1 33 // https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
 | ||||
| #define LORA_DIO2 32 // Not really used
 | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 GUVWAF
						GUVWAF