Forum: Mikrocontroller und Digitale Elektronik Anfängerproblem: Gespeichertes Signal auf Basis einer definierten Frequenz auf einen Ausgang legen


von Rubbel D. (rubbeldiekatz)


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!

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Rubbel D. (rubbeldiekatz)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

Ach so, ein Webserver muss da auch noch drauf. Warum fällt Dir das 
jetzt erst ein?

Beitrag #5097806 wurde von einem Moderator gelöscht.
von Jim M. (turboj)


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!

von Rene K. (xdraconix)


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.

von Georg (Gast)


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

von c-hater (Gast)


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

von DraconiX (Gast)


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.

von c-hater (Gast)


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

von Rene K. (xdraconix)


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

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.