Anfängerproblem: Gespeichertes Signal auf Basis einer definierten Frequenz auf einen Ausgang legen

OP #5097589
Lesenswert?

Hallo zusammen,

ich hab ein kleineres Problem, bei dem ich etwas Starthilfe brauchen 
könnte. Ich möchte ein hochfrequentes Digitalsignal mit 5 Mhz auf einen 
Ausgang legen. Mit dem Basys 2 FPGA bekomme ich das relativ leicht über 
VHDL hin. Leider ist das mit immensem Rechen-, Kompilierungsaufwand 
verbunden.

Idealvorstellung wäre eine Erweiterungsplatine für beispielsweise den 
Arduino, die eine stabile CLK abbildet und basierend darauf die vom 
Arduino in den Speicher gelegten Werte nacheinander auf einen Ausgang 
legt.

Es geht um etwa 500-1000k binäre Einzelwerte, die nacheinander auf den 
Ausgang müssen.

Danke schon mal im Voraus für eure Hilfe!
Persönliche Seite #5097595
Lesenswert?

Rubbel D. schrieb:
> Es geht um etwa 500-1000k binäre Einzelwerte, die nacheinander auf den
> Ausgang müssen.

Mit konstantem zeitlichen Abstand?

Dann könntest Du die SPI-Schnittstelle des Arduino o.ä. dafür nutzen, 
die wird mit Deiner Samplerate von 5 MHz getaktet und muss mit 625 kHz 
Takt nachgeladen werden. Die 64 bis 128 kByte Sampledaten passen bei 
größeren AVRs auch in den Programmspeicher, der ATmega2560 hat 
beispielsweise 256 kByte.
OP #5097612
Lesenswert?

Ja, die Signale sollen in konstantem zeitlichen Abstand erfolgen.

Ich fürchte die 5Mhz sind nicht stabil, da der Arduino ja nicht gerade 
mit Rechenleistung gesegnet ist und nebenher noch einen Webserver 
abbilden muss.

Ich dachte daher an einen Rucksack mit eigenem Oszillator, der nur 
getriggert wird und dann den Ram von 0-x abgrast und das jeweilige 
Signal auf den Ausgang legt.
Beitrag #5097806 wurde von einem Moderator gelöscht.
#5098339
Lesenswert?

Rubbel D. schrieb:
> Ich fürchte die 5Mhz sind nicht stabil, da der Arduino ja nicht gerade
> mit Rechenleistung gesegnet ist und nebenher noch einen Webserver
> abbilden muss.

Das wird dann kein AVR sondern eine der Cortex-M bastierten Varianten 
der Arduinos. Die haben dann nämlich auch DMA und mehr RAM - und auch 
den benötigen Flash Speicher, denn ein Webserver füllt den Flash eines 
AVR ja schon alleine.

Solche Anforderungen schreibt man bitte in den 1. Beitrag mit rein!
#5098361
Lesenswert?

Rubbel D. schrieb:
> 500-1000k binäre Einzelwerte

Meinst du damit einen binären Zustand (also 0 oder 1) oder einen 
Binärwert ala (01,1001 o.ä.)?

Weil selbst bei Bit-Werten sind das ja schon 125.000 Byte bzw. ~122 
KByte... So mal als Größenordnung - bei den STM32 müsstest du da dann 
schon in Richtung Foundation- bzw. Advanced-Line schauen. Aber selbst da 
ist der maximale DMA Transfer auf 65.000 bytes begrenzt.
Gast #5098486
Lesenswert?

Rubbel D. schrieb:
> Ich dachte daher an einen Rucksack mit eigenem Oszillator, der nur
> getriggert wird und dann den Ram von 0-x abgrast und das jeweilige
> Signal auf den Ausgang legt.

Schön, schön, aber wie kommen die Werte ins RAM? Was kommt da noch an 
Anforderungen hinterher? Geschieht das Einlesen und das Auslesen der 
Daten abwechselnd oder gleichzeitig? Ist die Ausgabe einmalig oder 
kontinuierlich? Usw. usw.

Georg
Gast #5098581
Lesenswert?

Jim M. schrieb:

> den benötigen Flash Speicher, denn ein Webserver füllt den Flash eines
> AVR ja schon alleine.

Hmm, komisch. Ich habe schon auf einem Mega16 einen Webserver am Laufen 
gehabt. Denselben Webserver kann ich auch auf einem Mega1284P laufen 
lassen.

Aber wie soll der es dann schaffen, den 8 mal größeren Flash des 1284P 
gleichermaßen zu "füllen", das musst du mir jetzt mal erklären. Nach 
meinen Beobachtungen tut er das nämlich nicht, sondern bescheidet sich, 
genau wie auf dem Mega16, mit knapp über 14k Flash.

Ich hatte das auch genau so erwartet, aber du scheinst da über 
Erkenntnisse zu verfügen, an die ein Normalsterblicher unmöglich 
gelangen kann...
Gast #5098602
Lesenswert?

@C-Hater...

Ist sowieso hinfällig, da z.b. ein Mega1284p schon komplett mit seinen 
"Binärwerten" gefüllt wäre. Da fehlen dann auch die 14k für den 
Webserver. Somal er die 5Mhz da wirklich schwer bis garnicht erreicht 
hätte. Ein PWM wäre ja gegangen aber irgendwie muss er auf die Pulse 
auch noch seine "Binärwerte" synchronisieren UND dann muss ja nebenbei 
noch ein Webserver laufen... Das wird knifflig :-)

Wie gesagt, die Anforderung schreit ja quasi schon nach DMA auf einem 
Cortex.
Gast #5098617
Lesenswert?

DraconiX schrieb:

> Ist sowieso hinfällig, da z.b. ein Mega1284p schon komplett mit seinen
> "Binärwerten" gefüllt wäre. Da fehlen dann auch die 14k für den
> Webserver. Somal er die 5Mhz da wirklich schwer bis garnicht erreicht
> hätte

Hmmm... Also meine 1284P besitzen zwei SPI-master-fähige UARTS, die 
jeweils mit 10MHz Takt operieren können. Es wäre also kein allzu großes 
Problem, an eine davon eine SD-Card als Datenspender anzuschliessen und 
die andere als Ausgabeport zu verwenden.

Aber mag ja sein, dass es noch irgendwie "abgerüstete" 1284P gibt, wer 
weiss das schon so genau...
#5098633
Lesenswert?

Warum gleich so Arrogant?! Hat dir jemand etwas getan oder darfst du zu 
Hause nicht über deine Frau?

Ja klar kann man das sicherlich auch mit SPI über ne SD-Card machen - 
gibt es denn beim 1284p direkt eine Möglichkeit diese Daten Bitweise mit 
einem Timer (fsoc/4 = 5Mhz) auf einen Pin zu geben?

Dies ist eine ernst gemeinte Frage! Bitte keine Arrogante Antwort ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren