Daten vom ADC mit XILINX FPGA auslesen

#764742
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
#764784
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
Gast #765079
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.
#765087
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
Gast #765544
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?
#765574
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;
Gast #767324
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.
#767533
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.

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