mikrocontroller.net

Forum: FPGA, VHDL & Co. Signalsequenz speichern


Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte ein ZF-Signal mit 20 MHz abtasten (12 Bit) und die 
entsprechenden Digitalwerte in einem SRAM speichern. Die Dauer der 
Aufzeichnung sollte 30 ms sein. Anschließend möchte ich die Daten mit 
meinem FPGA verarbeiten. Zur Verfügung steht mir ein Altera Board mit 
einem ADC, Stratix II und 1 MB SDRAM.

Ist es möglich, die ADC-Werte so schnell im SRAM zu speichern? Wenn ja, 
wie könnte ich das machen?

Danke für die Hilfe.

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuer dieses FPGA sind 20 MHz kein Problem. Das SDRAM sollte das auch 
ohne Probleme schaffen. Eventuell einfacher waere es aber, das 
FPGA-Interne Block-RAM zu verwenden, sofern dessen Groesse ausreicht; 
das ist normalerweise schneller im Zugriff, sowie einfacher anzusteuern.

Die Frage ist jetzt, kann der ADC schnell genug arbeiten? Die meisten 
ADCs auf solchen boards arbeiten mit successive approximation, d.h. 
Konvertierung in einen 12-bit-Wert dauert mindestens 12 Taktzyklen (oft 
ein, zwei Zyklen mehr weil man die Konvertierung starten muss o.ae.), 
das FPGA muss den Baustein mit mindestens 240 MHz takten. Eine 
Alternative ist ein half-Flash-ADC, die liefern ueblicherweise ein 
volles Datenwort pro Zyklus; Analog Device, TI und andere haben 
geeignete Bausteine.

Wolfgang

Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte man auch mit NIOS ein System (SOPC) aufbauen, wobei von NIOS die 
Aufzeichnung gestartet wird? Wie müsste man das in der Software 
schreiben, damit Daten mit der Geschwindigkeit vom ADC in der SRAM 
transportiert werden?

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Mikrocontroller (auch als Softcore) stoert da eher, als er hilft. Zu 
grosser Overhead, und schwieriger (nicht unmoeglich), das Timing 
hinzubekommen. Sowas loest man wirklich am besten mit purer Logik, und 
der Aufwand dafuer (wenn Du internes oder externes SRAM (nicht SDRAM!) 
verwendest) haelt sich in engen Grenzen.

Ich habe vor ein paar Monaten mal ein einfaches Oszilloskop aufgebaut, 
das das Prinzip zeigt, mit bloss vier 74xx-Logikbausteinen, Flash-ADC 
und SRAM:

http://www.pdamusician.com/lcscope/

Die Schaltung ist voll beschrieben; siehe insbesondere

http://www.pdamusician.com/lcscope/design_schematic3.html
und
http://www.pdamusician.com/lcscope/design_schematic4.html

Das laesst sich ganz einfach in ein FPGA konvertieren; mit einem 
schnelleren Half-FLash-ADC (meiner begrenzt die Samplerate auf 1 MS/s, 
die Logik koennte auch viel schneller) sind 20 MS/s ohne weitere 
moeglich.

Wolfgang

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.