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


von Neuling (Gast)


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?

von Falk B. (falk)


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

von Neuling (Gast)


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

von Falk B. (falk)


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

von Neuling (Gast)


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.

von Falk B. (falk)


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

von Neuling (Gast)


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?

von Christoph db1uq K. (christoph_kessler)


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:
1
-- Quartus VHDL Template
2
-- State Machine with Asynchronous Reset (1 block)
3
-- State Machine outputs will be registered
4
5
LIBRARY ieee;
6
USE ieee.std_logic_1164.all;
7
8
ENTITY fsm IS
9
  PORT
10
  (
11
    clk      : IN  STD_LOGIC;
12
    input1, input2    : IN  STD_LOGIC;
13
    output1, output2  : OUT  STD_LOGIC
14
  );
15
END fsm;
16
17
ARCHITECTURE rtl OF fsm IS
18
  TYPE state_type IS (state1, state2, state3);
19
  SIGNAL state: state_type;
20
BEGIN
21
  PROCESS (clk)
22
  BEGIN
23
    IF clk'EVENT AND clk = '1' THEN
24
      CASE state IS
25
        WHEN state1 =>
26
          output1 <= value1;
27
          output2 <= value2;
28
          IF condition1 THEN
29
            state <= state2;
30
          END IF;
31
        WHEN state2 =>
32
          output1 <= value3;
33
          output2 <= value4;
34
          IF condition2 THEN
35
            state <= state3;
36
          END IF;
37
        WHEN state3 =>
38
          output1 <= value5;
39
          output2 <= value6;
40
          IF condition3 THEN
41
            state <= state1;
42
          END IF;
43
      END CASE;
44
    END IF;
45
  END PROCESS;
46
47
END rtl;

von Neuling (Gast)


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.

von Neuling (Gast)


Lesenswert?

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

von Morin (Gast)


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

von Neuling (Gast)


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.

von Günter -. (guenter)


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.

von Neuling (Gast)


Lesenswert?

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

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.