Pikacz TX/RX na GHz
Poszukuję sprawdzonego modułu RF na GHz
Może Ci się przyda. robiłem testy NRF jako źródła CW. Ma możliwość postawienia nośnej tylko niestety z krokiem co 1MHz. Więc zamiast kwarcu 16 MHz wstawiłem sygnał z Si5351. Poszło, oceniłem szumy i wrzuciłem "do szuflady" może kiedyś do tego wrócę.
NRF jest o tyle słaby że bez PA daje niewiele więcej jak 0dBm. Co do ESP to nie wiem jak go zmusić do nadawania nośnej. Dla obu modułów wykorzystywanie ich tak do czego zostały stworzone to niestety spore ograniczenie zasięgu. CW/DCW byłoby dużo skuteczniejsze (zakładając oczywiście że odbierasz to wąskopasmowo).

// test DCW on NRF24L01 with Si5351 as CLK reference
#include <,SPI.h>,
#include "RF24.h"
//#include "printf.h"

#include "si5351.h"
#include "Wire.h"

#define CE 9
#define CS 10
#define noscanner
//#define scanner

RF24 radio(CE,CS), // CE, CS (8,7) (lepiej dać CS na 10 - inne przyklady domyślny SS)
Si5351 si5351,

void continous (char channel, int duration) // set CW for 'duration' ms

radio.powerUp(),
radio.setCW(),
radio.setChannel(channel),
digitalWrite(CE,HIGH),
delay (duration),
digitalWrite(CE, LOW),
radio.powerDown(),


void NRF_sweep (int first, int last, int duration) // sweep chanell by channel

for (int i = first, i <,= last, i ++)

// Serial.println (i),
continous (i,duration), // cannell, milisecond



void Si_sweep (char channel, double startfrq, int st, int steps, int duration ) // sweep Si5351 ref frequency on one specific NRF channel

si5351.set_freq(startfrq, SI5351_CLK0), // 1600070000UL =>, 2400,072 MHz
si5351.update_status(),
radio.powerUp(),
radio.setCW(),
radio.setChannel(channel),
digitalWrite(CE,HIGH),
for (int i = 0, i <, steps, i ++)

delay (duration),
startfrq = startfrq + st,
si5351.set_freq(startfrq, SI5351_CLK0), // 1600070000UL =>, 2400,072 MHz
si5351.update_status(),

digitalWrite(CE, LOW),
radio.powerDown(),


void setup(void)

// Si5351 initialization
si5351.init(SI5351_CRYSTAL_LOAD_0PF, 0, 0),
si5351.set_ref_freq(27000000UL, SI5351_PLL_INPUT_CLKIN),
si5351.set_pll(SI5351_PLL_FIXED, SI5351_PLLA),
si5351.set_freq(1600160000UL, SI5351_CLK0),// Set CLK0 to output XX MHz
si5351.update_status(),
delay(500),

// NRF initialization
radio.begin(),
radio.setPALevel(RF24_PA_MAX),
Serial.begin(115200),
//printf_begin(),
radio.printDetails(), // Dump the configuration of the rf unit for debugging


//#ifdef noscanner // steady CW

// always on CW


radio.powerUp(),
radio.setCW(),
radio.setChannel(0), // ch = 0-125, 2400 MHz + ch * 1 MHz
delay(2),
digitalWrite(CE,HIGH),

//#endif




void loop(void)







  PRZEJDŹ NA FORUM