Das Elektor SDR-Shield 2_0  

Elektronik-Labor  Lernpakete  Projekte  HF  



https://www.elektormagazine.de/160577

Im Heft Juli/August 2018 stellt Elektor die neue Version 2.0 des SDR-Shields vor. die erste Version stammte von 2016 und wurde auch im Elektronik-Labor gezeigt: SDRshield .  Nun war eine Neuauflage fällig, für die ich mir eine kleine Erweiterung gewünscht habe. Die vier Anschlüsse A bis D sind neu hinzugekommen.

A: Ausgang CLK0 des SI5351
B: Ausgang CLK2 des SI5351
C: ZF-Ausgang Links, DC-gekoppelt
D: ZF-Ausgang Rechts, DC-gekoppelt

Damit werden viele spezielle Anwendungen einfacher, die teilweise schon hier vorgestellt wurden, bis hin zum CW/WSPR-Transceiver. Aber auch viele Messaufgaben könne entwickelt werden, die dann noch in den folgenden Artikeln in Elektor gezeigt werden.

Mein Freund Rainer hat den Artikel auch schon gelesen und im Abschnitt Antennentipps seinen Ringkernübertrager wiedererkannt, den wir mal für seinen SDR gewickelt haben (siehe  Amateurfunkantennen im Test).



Der Artikel  in Elektor 7/8 2018 stellt neue Software vor, die insbesondere auch die VFO-Kanäle an den Ausgängen CLK0 und CLK2 unterstützt.



Download: SDR2_0Software.zip

Im Download findet man das VB-Programm mit EXE und Quelltext sowie die zugehörige Arduino-Firmware.

//SI5351_vfo + LCD + output CLK0, Clk2 

#include "si5351.h"
#include "Wire.h"
#include <LiquidCrystal.h>

Si5351 si5351;
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

unsigned long freq;
void setup(void)

{

Serial.begin(9600);
Serial.println("Si5351 Clockgen"); Serial.println("");
si5351.set_correction(162100);
si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0);
Serial.println(10100);
si5351.set_pll(SI5351_PLL_FIXED, SI5351_PLLA);
si5351.set_freq(4040000000ULL, SI5351_PLL_FIXED, SI5351_CLK1);
si5351.output_enable(SI5351_CLK1, 1);
freq = 10100;
lcd.begin(16, 2);
lcd.print(freq);
}

static void flush_input(void)
{
while (Serial.available() > 0)
Serial.read();
}

void loop(void)
{
si5351.update_status();
if (si5351.dev_status.SYS_INIT == 1) {
setup();
delay(500);
}
if (Serial.available()) {
int ch = Serial.read();
freq = Serial.parseInt();
// flush_input;
// Serial.println (ch);

Serial.println(ch);
Serial.println (freq);
int ch2 = Serial.read();
Serial.println (ch2);
lcd.setCursor(0, 1);
lcd.print(ch);
lcd.print(" ");
lcd.print(ch2);
ch2 = Serial.read();

if (freq> 20){
lcd.setCursor(0, 0);
lcd.print(freq);
lcd.print(" ");
if (ch == 32) si5351.set_freq(freq*400000ULL, SI5351_PLL_FIXED, SI5351_CLK1); //" "
if (ch == 70) si5351.set_freq(freq*400000ULL, SI5351_PLL_FIXED, SI5351_CLK1); //F
if (ch == 102) si5351.set_freq(freq*400ULL, SI5351_PLL_FIXED, SI5351_CLK1); //f

if (ch == 65) si5351.set_freq(freq*100000ULL, SI5351_PLL_FIXED, SI5351_CLK0); //A
if (ch == 97) si5351.set_freq(freq*100ULL, SI5351_PLL_FIXED, SI5351_CLK0); //a
if (ch == 66) si5351.set_freq(freq*100000ULL, SI5351_PLL_FIXED, SI5351_CLK2); //B
if (ch == 98) si5351.set_freq(freq*100ULL, SI5351_PLL_FIXED, SI5351_CLK2); //b
}
if (freq==0){
if (ch == 65) si5351.output_enable(SI5351_CLK0, 0);
if (ch == 66) si5351.output_enable(SI5351_CLK2, 0);
if (ch == 70) si5351.output_enable(SI5351_CLK1, 0);
}
if (freq==1){
if (ch == 65) si5351.output_enable(SI5351_CLK0, 1);
if (ch == 66) si5351.output_enable(SI5351_CLK2, 1);
if (ch == 70) si5351.output_enable(SI5351_CLK1, 1);
}
}
}




Elektronik-Labor  Lernpakete  Projekte  HF