Forum: Mikrocontroller und Digitale Elektronik HF DAC an Raspberry


von Dl1... (Gast)


Lesenswert?

Hallo!

Bisher habe ich immer mit SDR wie HackRf1 oder limeSDR gespielt. Auch 
mit einem Stm32 habe ich schon einen LW und MW Tx/Rx programmiert. Jetzt 
suche ich ein Zwischending zwischen STM32 und FPGA um darauf ein SDR mit 
höherer Bandbreite aufzubauen. ADC und DAC der 100 MSPS Klasse habe ich 
mir als kostenloses Muster kommen lassen. Wie schnell und genau lässt 
sich so ein ADC über die GPIOs eines Raspberrys 3 oder 4 im 
Parallelbetrieb ansprechen? Wie genau bekommt man auf diesem Rechner das 
Timing hin? Es müssen ja nicht die vollen 100 MSPS sein, 10, 20 reichen 
für den nächsten Schritt erstmal aus. Was kann man von so einem Linux 
SoC an erwarten?

von Thosch (Gast)


Lesenswert?

Vergiß es, so wird das nichts.
Die GPIOs sind weder schnell genug, noch ist das System echtzeitfähig.

Besorg dir ein FPGA EVAL-Board und beschäftige dich mit synchronem 
Schaltungsdesign.

von PittyJ (Gast)


Lesenswert?

Die Zynqs von Xilinx haben Arm Core und FPGA Logic zusammen. Dann kann 
die Applikation die Daten zusammenstellen und der FPGA-Teil für genaues 
Timing sorgen.

Gibt es schon für 150 Euro.
https://shop.trenz-electronic.de/de/TE0726-03M-ZynqBerry-Zynq-7010-in-Raspberry-Pi-Formfaktor

von GEKU (Gast)


Angehängte Dateien:

Lesenswert?

PittyJ schrieb:
> Xilinx haben Arm Core und FPGA Logic zusammen

Red Pitaya verwendet ein Xilinx FPGA mit Arm Core.
Man kann den Code erweitern oder eigen Code laden.

von Dl1... (Gast)


Lesenswert?

Thosch schrieb:
> Vergiß es, so wird das nichts.
> Die GPIOs sind weder schnell genug, noch ist das System echtzeitfähig.
>
> Besorg dir ein FPGA EVAL-Board und beschäftige dich mit synchronem
> Schaltungsdesign.

Die GPIOs lassen sich ja durchaus mit 50-60 MHz umschalten wie es 
Berichte im Netz zeigen. Das wäre also weit über den geforderten 10-20 
MSPS. Für ein Linux sind ja RT Patches verfügbar, ebenso scheint es 
einige RTOS Implementierungen für den Pi zu geben. Sollte da wirklich 
nichts zu machen sein?

von 2^5 (Gast)


Lesenswert?

Du willst die GPIOs eines RPi bei 10 MSPS pollen? Da bekommst du einen 
Wahnsinns Jitter drauf, der die Daten IMHO unbrauchbar machen dürfte. 
Dass die GPIOs per DMA abgefragt werden können, wäre mir neu. I2S ist zu 
langsam. Ein SDR mittels RTL2832 USB Stick wie es alle PCs machen ist 
dir zu einfach?

von S. R. (svenska)


Lesenswert?

2^5 schrieb:
> Ein SDR mittels RTL2832 USB Stick wie es
> alle PCs machen ist dir zu einfach?

Damit wird die Senderichtung etwas schwierig.

von Dl1... (Gast)


Lesenswert?

2^5 schrieb:
> Ein SDR mittels RTL2832 USB Stick wie es alle PCs
> machen ist dir zu einfach?

Der Weg ist das Ziel! Siehe Eingangspost oben, da könnt ich ja auch 
einfach das HackRf oder LimeSdr nehmen!

von Dl1... (Gast)


Lesenswert?

Letztendlich ist ein Pi doch auch nur ein Evalboard ähnlich eines STM32 
oder ähnlich, nur ein Standardlinux macht daraus doch eine nicht 
vorhersagbare Sache draus. Mit FreeRTOS und Konsorten dürfte doch mehr 
aus dem Board rauszuhalten sein als mit einem Linux?

von Dl1... (Gast)


Lesenswert?

Keine Angst an die FPGA Fans! Habe ich später auch noch vor, aber im 
Moment will ich erstmal sehen was mit den ARM Boards ohne zusätzlichen 
FPGA zu schaffen ist

von Weg mit dem Troll (Gast)


Lesenswert?

EIN ADC sollte sich doch an einem DMA betreiben lassen. Das kann ja 
nicht so eine Sache sein. Natuerlich nicht per Userprogramm, sondern als 
Hardware Treiber. Bedeutet man muss Zugriff auf den DMA Kanal haben, und 
irgendwo hin mit den Daten. Und dann ein Eventinterface zu den 
Userprogrammen. Dort ist dann halt Schluss mit Echtzeit.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der ESP32 kann seine I2S-Schnittstelle im DMA-Betrieb ansteuern, und das 
mit recht hohen Taktfrequenzen.

Möglicherweise lässt sich damit ja eines der Probleme des Threadstarters 
lösen.

Ein Mensch namens "bitluni" hat damit ein analoges PAL-Signal inklusive 
Farbinformation erzeugt, und in einem anderen Projekt steuert er damit 
einen VGA-Monitor (mit reduzierter Auflösung, aber korrektem Timing) an.


https://bitluni.net/esp32-color-pal
https://bitluni.net/esp32-vga

Vielleicht genügt das ja als Einstieg, um herauszufinden, wie man auch 
Daten über diese Schnittstelle empfangen kann (was beim Einsatz eines 
schnellen ADC relevant ist).

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.