Forum: FPGA, VHDL & Co. 4R+4C+1FPGA = RADIO !


von Antti L. (trioflex)


Angehängte Dateien:

Lesenswert?

Bild im anhang zeit was man braucht um ein radio empfänger zu basteln.

Für ersten der die Lösung hat, gibt es etwas belohnung auch, bitte email 
wer die lösung gefunden hat.

von Pink S. (pinkshell)


Lesenswert?

Mit 2 Widerständen die Betriebsspannung auf die Hälfte teilen, den RF 
Input kapazitiv ankoppeln. Das Ganze an einen Digital-IO des XILINX.

Funktioniert leider nur bei Eingangsspannung in der Nähe von 1 Vpp. Die 
Analog-Eingänge sind mit 1 MSPS leider viel zu langsam für sowas wie ein 
SDR. Einen Mischer sehe ich auch nirgendswo.

Wegen der Belohnung melde ich mich nochmal, erst mal gucken, wie der 
Thread hier weiterläuft :-)

von Antti L. (trioflex)


Angehängte Dateien:

Lesenswert?

weiter so!

Bild: 3.51MHz (80m band) 200 microvolt signal, wie es in FPGA zu sehen 
ist.

von Detlef K. (adenin)


Lesenswert?

Interessante Idee. :)
http://cas.tudelft.nl/pubs/Homulle15fpga.pdf

Und noch interessanter:
http://www.latticesemi.com/~/media/LatticeSemi/Documents/WhitePapers/AG/CreatingAnADCUsingFPGAResources.PDF?document_id=36525
Hmm, anbesehen davon , das dies ein anderer FPGA-Chip ist, und der 
Xilinx vielleicht schon von Haus aus höhere Samplingraten zulässt, kann 
man mit vier von diesen Dingern, wenn das Timing stimmt, sicher eine 
höhere Samplingrate ereichen.

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Das erste Paper ist spannend, vor allem die Idee mit der TDC Delayline. 
Das mit dem LVDS und externen RC gibt es schon lange, aber das ist 
leider nicht schnell. Die hier machen das schon recht lange, aber eben 
nicht schnell.

http://www.stellamar.com/index.shtml

Was benötigt man denn für die schnelle Lösung? Also geht das an einem 
normalen LVDS Eingang vom Artix oder braucht man so GPT-Anschlüsse?

von C. A. Rotwang (Gast)


Lesenswert?

Sach mal willst das Forum für eigene Ambitionen bei diesem 
"Programmier-Wettbewerb" vor den Karren spannen:

https://www.ettus.com/sdr-software/detail/rfnoc-vivado-challenge

???

von Horst (Gast)


Lesenswert?

Gustl B. schrieb:
> Was benötigt man denn für die schnelle Lösung? Also geht das an einem
> normalen LVDS Eingang vom Artix oder braucht man so GPT-Anschlüsse?

http://www.eevblog.com/forum/rf-microwave/for-anyone-complaining-about-8-bit-ffts-(xilinx-gtx-as-1-bit-'sdr')/

von Antti L. (trioflex)


Lesenswert?

C. A. Rotwang schrieb:
> Sach mal willst das Forum für eigene Ambitionen bei diesem
> "Programmier-Wettbewerb" vor den Karren spannen:
>
> https://www.ettus.com/sdr-software/detail/rfnoc-vivado-challenge
>
> ???

neeee.

Das ist da ja was ganz anderes, da hast externes ADC und machst DSP mit 
SDSoC.

Aber natürlich den 4R+4C radio signal kann man auch mit SDSoC 
bearbeiten.

von Gustl B. (-gb-)


Lesenswert?

Danke für den Link! Mit GTX bin ich leider raus ...

Also wenn ich das richtig verstanden habe erzeugt man intern eine 
Sampleclock die !an durch einen Tiefpassfilter zu V_ref macht. Das muss 
dann noch kalibriert werden.
Da könnte man doch auch einen externen Oszillator verwenden, vielleicht 
gibt es da welche mit Sägezahnausgang. Klar man muss immer noch 
kalibrierte aber im Vergleich zu einer PLL ist das doch deutlich 
jitterärmer.

von Antti L. (trioflex)


Lesenswert?


von Gustl B. (-gb-)


Lesenswert?

OK. So wie die Widerstände gemalt sind könnten das auch zwei LVDS 
Pärchen sein ... es bleibt spannend!

Geht es eigentlich überhaupt um einen ADC? Weil Radio geht vielleicht 
auch ohne ADC mit PLL/MMCM.

: Bearbeitet durch User
von Strubi (Gast)


Lesenswert?

Sieht für mich nach dem klassischen Sigma-Delta-Ansatz mit LVDS inputs 
aus. Für SDR kann man mit wenigen Bits arbeiten. Da ich mal von FM 
ausgehe, brauchts dann je Q und I ein RC-Glied. What's new?

von Gustl B. (-gb-)


Lesenswert?

Zitat:

By this point I was thinking Delta Sigma ADC using the FPGA’s LVDS 
inputs. (There are papers and articles about this technique online.) 
However, Antti tells me this is not his solution and he was kind enough 
to provide a few hints for this challenge below:

von Strubi (Gast)


Lesenswert?

Ok, spannend, das Xilinx-Post hatte ich überlesen.
Es gäbe sonst noch Undersampling-Tricks mit gezielter Verstimmung, da 
brauchts eigentlich nur noch Komparatoren. Aber da sehe ich noch nicht, 
wie das ohne Schwingkreis gehen sollte. Ohne LVDS gehts bestimmt 
nicht...

von Kiesel (Gast)


Lesenswert?

Kann man mit diesem Konzept auch WDR2 (UKW) empfangen?

von Antti L. (trioflex)


Lesenswert?

Mit LNA (low noise amplifier) würde ich sagen ja.

von Kiesel (Gast)


Lesenswert?

Was ist mit den µC-Net Cracks bloß los? Wie geht es hier weiter?

von Antti L. (trioflex)


Lesenswert?

Was ist los, oder was soll wie weiter?

von Jan H. (janhenrik)


Lesenswert?

Antti L. schrieb:
> Was ist los, oder was soll wie weiter?

Da will wer die Lösung ^^

von Antti L. (trioflex)


Lesenswert?

Ah :)

Die Lösung wird öffentlich gemacht, mit Kommentaren und Erklärungen.

Kann noch hier ergänzen das ich die Schaltung heute auch wirklich mit 
500 MHz getestet habe. Die ersten Tests waren ja mit nur 3.5 MHz.

von C. T. (cajt)


Angehängte Dateien:

Lesenswert?

Wie wäre es hiermit? Es ist nur ein Kanal von I und Q gezeigt. Der LO 
muss natürlich ein entsprechend verschobenes Signal je Kanal erzeugen. 
Der "Mixer" ist in diesem Vorschlag der tristate-fähige Buffer des 
FPGAs.

von dose (Gast)


Lesenswert?

Antti L. schrieb:
> Ah :)
>
> Die Lösung wird öffentlich gemacht, mit Kommentaren und Erklärungen.
>
> Kann noch hier ergänzen das ich die Schaltung heute auch wirklich mit
> 500 MHz getestet habe. Die ersten Tests waren ja mit nur 3.5 MHz.

Was Willst du empfangen?

UKW?

Dann ist die frage wie selektive kannst du die Sender trennen?

Sehr interessante Idee mal sehen wo du landest.

von Antti L. (trioflex)


Lesenswert?

bandbreite kannst auf 0.1Hz setzen, wenn du eine clock hast das genügend 
sauber ist ;)

von Antti L. (trioflex)


Lesenswert?

Fehlerkorrektur, für kleine bandbreite muss der clock sehr GENAU sein, 
sauber (jitter) ist ehe zweitrangig.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Bin gespannt was du da vor hast.

von weltbester FPGA-Pongo (Gast)


Lesenswert?

Antti L. schrieb:
> Fehlerkorrektur, für kleine bandbreite muss der clock sehr GENAU sein,
> sauber (jitter) ist ehe zweitrangig.

????

Was ist denn "sehr genau"?  Lagestabil aber Jitter angebelich egal?

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

weltbester FPGA-Pongo schrieb im Beitrag #4965038:
> Antti L. schrieb:
>> Fehlerkorrektur, für kleine bandbreite muss der clock sehr GENAU sein,
>> sauber (jitter) ist ehe zweitrangig.
>
> ????
>
> Was ist denn "sehr genau"?  Lagestabil aber Jitter angebelich egal?

Also der zeitliche Abgstand der Samplestellen müssen den gleichen 
Abstand haben, ansonsten entsteht bei der Demuolation eine ungewollte 
Frequenzmodulation. Das ist Fakt.

Ich habe auch bereits über die "Machbarkeit" eines getasteten 1Bit 
Demodulator nachgedacht. Es geht über Korrellationsverfahren und 
Rauschfilter.
Da bin ich mal gespannt welchen Weg Antti hier nutzen will.

von René D. (Firma: www.dossmatik.de) (dose)


Angehängte Dateien:

Lesenswert?

C. T. schrieb:
> Wie wäre es hiermit? Es ist nur ein Kanal von I und Q gezeigt. Der LO
> muss natürlich ein entsprechend verschobenes Signal je Kanal erzeugen.
> Der "Mixer" ist in diesem Vorschlag der tristate-fähige Buffer des
> FPGAs.

Ich nehme bezug auf deine Skizze.

Nein so wird es nicht gehen. Deine Verschaltung von Widerständen und 
Kondensatoren sind nur lineare Bauteile.
Ein Mischer braucht ein nichtlineares Bauteil.

Als getasteter Demodulator sieht das so aus. Dieser Emfängt exakt die 
Frequenz, die an den Transistor geht.

von C. T. (cajt)


Angehängte Dateien:

Lesenswert?

René D. schrieb:
> Ich nehme bezug auf deine Skizze.
>
> Nein so wird es nicht gehen. Deine Verschaltung von Widerständen und
> Kondensatoren sind nur lineare Bauteile.
> Ein Mischer braucht ein nichtlineares Bauteil.

Schon richtig, aber der Tristate-Buffer macht den Job. Der wechselt mit 
der Local-Oscillator Frequenz immer zwischen Low und High-Z, quasi als 
Open-Drain Ausgang.

Ich kann mir in vielerlei Hinsicht bessere Mischer vorstellen, aber mit 
den gegebenen Einschränkungen erscheint es mir zumindest eine 
Möglichkeit zu sein. Man wird auch das C in Serie zum "Drain" noch 
weglassen können, aber dann wird man sich ein wenig mehr Mühe beim 
einstellen des DC-Offsets geben müssen und ggF. etwas vom 
Eingangsbereichs des ADCs verlieren (müsste mal nachlesen was der XADC 
Block wirklich kann).

Welche anderen Eigenschaften der FPGAs könnte man denn noch dafür 
zweckentfremden?

von Antti L. (trioflex)


Lesenswert?

@cajt

Du hast recht, aber ich habe auch eine Lösung bekommen die zwar ähnlich 
ist aber doch etwas anders ist. Anfangs dachte ist das gleiche, dann 
dachte es funktioniert nicht, aber es tut es doch. Tristate wurde da 
auch verwendet aber ANDERS.

XADC: zum Überraschung geht läuft der auch ohne extern eingestellte DC 
common mode ganz gut.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

C. T. schrieb:

> Schon richtig, aber der Tristate-Buffer macht den Job. Der wechselt mit
> der Local-Oscillator Frequenz immer zwischen Low und High-Z, quasi als
> Open-Drain Ausgang.

Als open Drain. Da hast du recht. Ich hatte es reinen Ausgang gesehen.

> Welche anderen Eigenschaften der FPGAs könnte man denn noch dafür
> zweckentfremden?

Jetzt wird es interessant. Jedes Digitalgatter beherrscht auch die 
Eigenschaften der Analogtechnik. Dieser Bereich ist in der Digitaltech 
die verbotene Zone, hier hört die Elektrotechnik nicht auf. Es nur 
stabil zum Laufen zu bekommen bis hin bei unterschiedlichen 
Temperaturen. das ist die Kunst.

: Bearbeitet durch User
von Antti L. (trioflex)


Lesenswert?

nein, falsch. ANALOG bereich von dem digital eingang wird NICHT 
verwendet.

von Ideengeber (Gast)


Lesenswert?

Hier ein paar mögliche Puzzle-Stücke:

Clock-Recovery der GTX: Die Recovery funktioniert im Bereich von 250MHz 
(500Mbps) bis 6.25GHz (12.5Gbps).

Idelays: die kann man grob in 78ps-Schritten einstellen. Ich habe damit 
mal ein Sampling-Scope gebaut. Im Rahmen der Idelay-Tap-Genauigkeit 
natürlich, es ist nicht jeder Tap gleich.

Ein weitere Puzzle-Teil, mit einem RC-Tiefpass eine einstellbare 
Spannung erzeugen, welche eine LVDS referenziert.

Der V7 hat DDR3-HardIP mit Phasern. Zu den Teilen gibt es keine 
offizielle Doku, aber die sollten in der Lage sein, eine Clock auf einen 
Puls oder eine Pulsfolge zu alignen.

Jetzt geht mir Digitalo der Schmalz aus.

Gruß,

von Antti L. (trioflex)


Lesenswert?

einmal den ersten BILD von cajt ansehen. Das ist Lösung was 
FUNKTIONIERT.

Es ist ein radio Empfänger !

* Empfindlichkeit unter 1 mV
* Frequenz bereich über 500MHz

SNR geht mit hohen Frequenz ins Eimer, aber Empfang über 500Mhz kann ich 
bestätigen.

: Bearbeitet durch User
von Antti L. (trioflex)


Lesenswert?

C. T. schrieb:
> René D. schrieb:
>> Ich nehme bezug auf deine Skizze.
>>
>> Nein so wird es nicht gehen. Deine Verschaltung von Widerständen und
>> Kondensatoren sind nur lineare Bauteile.
>> Ein Mischer braucht ein nichtlineares Bauteil.
>
> Schon richtig, aber der Tristate-Buffer macht den Job. Der wechselt mit
> der Local-Oscillator Frequenz immer zwischen Low und High-Z, quasi als
> Open-Drain Ausgang.
>
> Ich kann mir in vielerlei Hinsicht bessere Mischer vorstellen, aber mit
> den gegebenen Einschränkungen erscheint es mir zumindest eine
> Möglichkeit zu sein. Man wird auch das C in Serie zum "Drain" noch
> weglassen können, aber dann wird man sich ein wenig mehr Mühe beim
> einstellen des DC-Offsets geben müssen und ggF. etwas vom
> Eingangsbereichs des ADCs verlieren (müsste mal nachlesen was der XADC
> Block wirklich kann).
>
> Welche anderen Eigenschaften der FPGAs könnte man denn noch dafür
> zweckentfremden?

Nein, nein den C darf man nicht weglassen. Ich bin enttäuscht.

Das ausgangs Produkt von dem MIXER bildet sich auf diesem C !!
Dieser C und der SWITCH zu GND sind das Herzstück des Mischers!
Wenn man diese C weglässt? Das wäre keine gute Idee.

Es geht auch ohne diesen "C in series" dann ist das Prinzip aber etwas 
anders - Änderung von Gain wegen switch gegen masse. Aber da müssten 
mehr C rein. Und ob wie gut es so geht habe ich nicht ausprobiert.

Und es gibt noch FPGA Eigenschaften die man zweckentfremden könnte :)

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

> * Empfindlichkeit unter 1 mV
> * Frequenz bereich über 500MHz
>

DAB ist von 170-240MHz. Da bietet sich Digitalradio an.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Ideengeber schrieb:
> Hier ein paar mögliche Puzzle-Stücke:
>
> Clock-Recovery der GTX: Die Recovery funktioniert im Bereich von 250MHz
> (500Mbps) bis 6.25GHz (12.5Gbps).
>
> Idelays: die kann man grob in 78ps-Schritten einstellen. Ich habe damit
> mal ein Sampling-Scope gebaut. Im Rahmen der Idelay-Tap-Genauigkeit
> natürlich, es ist nicht jeder Tap gleich.

Andere Frage gibt es eine Möglichkeit das Tastverhältnis Duty-Cycle 
verändern? Dann kommt man in noch höhere Fequenzen.

von hgrucho (Gast)


Lesenswert?

Stichwort: Tayloe Mischer
MfG
Horst

von Antti L. (trioflex)


Lesenswert?

nicht unbedingt, für Tayloe braucht man bishen mehr als 4 von C+R..

Das original war nicht Tayloe.

von Gerald (Gast)


Lesenswert?

Antti L. schrieb:
> nicht unbedingt, für Tayloe braucht man bishen mehr als 4 von C+R..
>
> Das original war nicht Tayloe.

Welches Original?

von Antti L. (trioflex)


Lesenswert?

mein erster prototyp meinte ich war NICHT tayloe

von Gerald (Gast)


Lesenswert?

Die Lösung von cajt 
(Beitrag "Re: 4R+4C+1FPGA = RADIO !") 
habe ich simuliert. In der Simulation funktioniert sehr 
zufriedenstellend.

@Antti

Habe ich es richtig verstanden, dass die Lösung von cajt nicht die 
Schaltung ist, die du erwartest?

von Antti L. (trioflex)


Lesenswert?

Habe ich ja nicht gesagt das es es nicht ist. Es ist sogar SEHR ähnclih 
zu dem Schaltung ich auf dem prototype brett gerade teste.

Ich habe später nur gesagt das ich entäuscht bin wenn cajt den C 
wegnehmen wollte von seiner Schaltung.

Es gibt auch schaltung wo der C in series zu open drain nicht da ist, 
aber der funktioniert etwas anders als die variante mit C.

von Ideengeber (Gast)


Lesenswert?

@ René D.

>Andere Frage gibt es eine Möglichkeit das Tastverhältnis Duty-Cycle
>verändern? Dann kommt man in noch höhere Fequenzen.

Ja, kann man. Es gibt Ausgänge aus dem Clock-Manager (MMCM) für große 
Schritte:

"Since the VCO can provide eight phase shifted clocks at 45° each; 
always providing possible settings for 0°, 45°, 90°, 135°, 180°, 225°, 
270°, and 315° of phase shift"

Für die kleinen Schritte kann man feinjustieren per Dynamic Shift 
Interface in Schritten von 1/(56*Fvco). VCO-Freqoenz kann 600-1600MHz 
sein.

Bei den GTX kann man noch manuell in die Abtastung eingreifen und 
schieben, aber GTX sollen ja nicht im Spiel sein.

Gruß,

von Baldrian (Gast)


Lesenswert?

https://forums.xilinx.com/t5/Xcell-Daily-Blog/Antti-s-Trenz-Challenge-Build-a-500MHz-radio-receiver-with-4/ba-p/757338

"The closing date for entries is July 3rd. The judges will be Antti and 
myself (Adam Taylor)."

Warum zieht sich der Wettbewerb solange hin?

von groni (Gast)


Lesenswert?

Ich weiß nicht, was diese Geheimniskrämerei mit Ratespiel soll, wir sind 
doch hier nicht im Kindergarten ;). Wenn es für die Öffentlichkeit 
bestimmt ist, dann erklärt man einfach wie es funktioniert. Wenn nicht, 
behält man es für sich, auch ok...
Oder will man hier möglichst viele interessante Ideen (für ein 
kommerzielles? Produkt) sammeln?

von Antti Lukats (Gast)


Lesenswert?

nein, ist kein so geheimnis und wird nichts so gestohlen auch, das 
termin wurde von Adam so festgelegt, end termin. Das SCHNELL etappe ist 
ja längst vorbei

https://wiki.trenz-electronic.de/display/PD/Challenge+Nr+1%3A+4R4C-RADIO

Wenn sie den ULTRAscale kit wollen, muss noch bishen mühe geben bis 3 
juli ;)

Da ist mein original noch nicht beschrieben, das kommt auch mit mehr 
erklärungen.

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Da sind wir mal gespannt. Lösung?

von C. T. (cajt)


Lesenswert?

Gibt es was Neues, ist in der Angelegenheit noch irgendwas 
herausgekommen?

von chris (Gast)


Lesenswert?

Was genau kann man mit der Schaltung machen?

Nehmen wir an, es soll ein FM-Radio für den Frequenzbereich 88-108MHz 
damit "programmiert" werden.
Haben wir dann einen 500MHz sampling ADC mit 1 Bit Auflösung?
Reicht das Signal, um die gewünschte Frequenz mit einem Bandpassfilter 
herauszufiltern und danach die FM-Demodulation zu machen?
Ist Alliasing ein Problem?
Könnte man das Ganze auch mit einem Altera MACH10 realisieren?

von Michael W. (Gast)


Lesenswert?

Antti Lukats schrieb:
> Da ist mein original noch nicht beschrieben, das kommt auch mit mehr
> erklärungen.

Der 3. Juli ist aber nun abgelaufen. Kommt jetzt hier die Lösung oder 
nicht?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.