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) |