mikrocontroller.net

Forum: FPGA, VHDL & Co. Daten vom ADC mit XILINX FPGA auslesen


Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich wollte mal Daten von einen 16-bit ADC mit einem Xilinx Spartan3A 
Board auslesen. Leider fehlt mir da jetzt ein anhaltspunkt wo ich 
anfange. Könnt ihr mir da Tipps geben oder entsprechende Litertur, 
idealerweis mit Beispielen, empfehlen?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Neuling (Gast)

>ich wollte mal Daten von einen 16-bit ADC mit einem Xilinx Spartan3A
>Board auslesen.

Der hat wahrscheinlich ein serielles Interface. Also brauchst du ein 
Schieberegister für die Daten, und eine State Machine für die 
Ablaufsteuerung.

MFG
Falk

Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hätte ich wohl noch schreiben sollen. Dies Daten sollen parallel 
ausgelesen werden. Hierzu benötige ich 16-Datenleitungen und 
2Steuerleitungen(Output vom FPGA) sowie 1 Steurleitung (BUSY, Input vom 
FPGA).

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Neuling (Gast)

>Das hätte ich wohl noch schreiben sollen. Dies Daten sollen parallel
>ausgelesen werden. Hierzu benötige ich 16-Datenleitungen und
>2Steuerleitungen(Output vom FPGA) sowie 1 Steurleitung (BUSY, Input vom
>FPGA).

Ja umso besser. Vereinfacht die State Machine. Das notwenige Signalspiel 
steht im Datenblatt des ADC.

MFg
Falk

Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha....also sollte man das mit einer State Machine machen und nicht 
selber in VHDL programmieren, oder?
Muss den man beim anschließen der Verbindungen irgendwas beachtet 
werden, oder einfach ran und funzt oder wie?
Hatte bis jetzt noch nie externe Geräte angeschlossen, sondern nur die 
sachen die auf den Entwicklungsboards sind.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Neuling (Gast)

>Aha....also sollte man das mit einer State Machine machen und nicht
>selber in VHDL programmieren, oder?

Eine State Machine kann man in VHDL, oder mit einem speziellenEditor 
erstellen.

>Muss den man beim anschließen der Verbindungen irgendwas beachtet
>werden, oder einfach ran und funzt oder wie?

Im wesentlichen einfach anschliessen. Ausnahmen bstätigen die Regel ;-)

MFG
Falk

Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mir mal wieder die Grundladen einer FST Machine durchgelesen. Aber 
irgendwie hab ich noch keine Vorstellung wie ich das genau für einen ADC 
realisieren kann. Hat einer von euch hierzu vielleicht einen passenden 
Link oder ein Beispiel für mich um mich besser einarbeiten zu könnne?

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Entwicklungssoftware ist ein Beispiel für eine Statemachine in 
VHDL mitgeliefert. Ich habe hier das "Template" aus Altera Quartus, in 
Webpack ist vermutlich ähnliches drin:
-- Quartus VHDL Template
-- State Machine with Asynchronous Reset (1 block)
-- State Machine outputs will be registered

LIBRARY ieee;
USE ieee.std_logic_1164.all;

ENTITY fsm IS
  PORT
  (
    clk      : IN  STD_LOGIC;
    input1, input2    : IN  STD_LOGIC;
    output1, output2  : OUT  STD_LOGIC
  );
END fsm;

ARCHITECTURE rtl OF fsm IS
  TYPE state_type IS (state1, state2, state3);
  SIGNAL state: state_type;
BEGIN
  PROCESS (clk)
  BEGIN
    IF clk'EVENT AND clk = '1' THEN
      CASE state IS
        WHEN state1 =>
          output1 <= value1;
          output2 <= value2;
          IF condition1 THEN
            state <= state2;
          END IF;
        WHEN state2 =>
          output1 <= value3;
          output2 <= value4;
          IF condition2 THEN
            state <= state3;
          END IF;
        WHEN state3 =>
          output1 <= value5;
          output2 <= value6;
          IF condition3 THEN
            state <= state1;
          END IF;
      END CASE;
    END IF;
  END PROCESS;

END rtl;

Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal....aber der prinzipelle Aufbau ist mir schon klar. 
Interessanter wäre hierzu das Timing Diagramm zu sehen, um die 
verschiedenen States nachvollziehen zu können.

Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es den noch jemand der so ein Beispiel für mich hätte?

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Timing-Diagramm steht im Datenblatt des ADC. Anhand dieses Diagramms 
musst du dir dann States erfinden, die dieses interpretieren (IN) bzw. 
nachbilden (OUT).

Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaja das ist mir schon alles klar. Aber irgendwie fehlt mir gerade der 
ansatz wie ich da anfangen soll. Also die eine Steuerleitung auf Low 
setzen (ein Takt) dann wieder auf High und auf die Steuerleitung warten 
die mir sagt das die Konvertierung fertig ist....da habe ich gerade ein 
gedankliche Blockade und weis nicht recht wie ich da anfangen soll.

Autor: Günter -.. (guenter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neuling wrote:
> Jaja das ist mir schon alles klar. Aber irgendwie fehlt mir gerade der
> ansatz wie ich da anfangen soll.

Du nimmst das Timingdiagram von dem Datenblatt und ziehst jedesmal eine 
senkrechte Linie, wenn ein Signal sich ändert. Jetzt nummerierst du die 
einzelnen Bereiche durch und schon hast du deine States für die FSM. 
Jetzt musst du nur beachten das dein Systemtakt wahrscheinlich viel 
höher ist als die Länge der States. Also wirst du noch einen Zähler 
bemühen müssen, damit die States so lange sind, wie im Timingdiagram 
spezifiziert.

Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
;-) stimmt so macht das irgendwie Sinn. Am besten ich mache das mal und 
kann es hier dann ja mal posten.

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.