Forum: FPGA, VHDL & Co. AD-Wandlung auf Altium Nano Board 3000


von Student (Gast)


Lesenswert?

Hallo Forumsmitglieder !
Dies ist mein erster Beitrag hier, ich hoff, ich mach das hier alles 
halbwegs so, wie es sein sollte =)

Ich, Student, gerade mitten in meiner Diplomarbeit, muss außer meiner 
Diplomarbeit noch ein FPGA-Projekt beenden, bei dem ich nicht recht 
weiterkomme.
Und zwar geht es um Folgendes :
Mit Hilfe eines Altium Nano Board 3000, soll ein PT100 Sensor ausgelesen 
werden und eventuell die Temperatur auf dem Board-Display angezeigt 
werden.

Dieses Projekt wird anstatt eines Tests angeboten. Nun ist das Problem, 
dass ich die Vorlesung bereits vor 4! Semestern hatte und einfach nicht 
mehr viel davon weiß.

Ich habe nun einfach ein paar grundlegende Fragen, wie ich das ganze 
anzugehen habe und allgemein zu FPGA's.
Ich hoffe ihr könnt mir da kurz weiterhelfen.

1. Die analogen Daten müssen erst mit einem AD-Wandler gewandelt werden 
?
Diese sind ja auf dem FPGA Board implementiert.
Per VHDL steuere ich jetzt also einfach einen AD-Wandler an und sage ihm 
was er zu tun hat, richtig ?
2. benötige ich dazu ein SCHEMATIC ? und wofür genau, sind die 
SCHEMATICS da ? das hab ich nie richtig verstaden leider.
in der Vorlesung wurde leider einfach nur vorgemacht und wir sollen 
nachmachen.
Den gesamten Ablauf stelle ich mir nun quasi so vor :
1. AD-Wandlung der Sensordaten
2. ja, hier haperts jetzt eigentlich schon...Was mache ich dann mit 
meinen digitalen Daten ? Kann ich die jetzt schon direkt auslesen ?

letztendlich möchte ich erstmal einfach folgendes wissen :
1. Wozu genau benötige ich SCHEMATICS ? "deklariere ich hier quasi meine 
"bauteile" die ich auf dem FPGA nutzen möchte ?
2. wie sieht der Ablauf meines Vorhabens in Form eines Blockschaltbildes 
aus ?

das ganze hätte ich wahrscheinlich auch in 4 sätzen schreiben können, 
sorry für den halben roman !

Danke für eure Hilfen schonmal !

von Markus H. (dasrotemopped)


Lesenswert?

Hast du denn zu deinem Nanoboard 3000 auch die passende Altium Lizenz ?
Bei dem Board sollte eine 1-Jahr Testlizenz bei sein für FPGA Design.
Das wirft natürlich gleich die 2. Frage auf, wie steht es um deine 
Altium Kenntnisse ?

Gruß,

dasrotemopped.

von Der müde Joe (Gast)


Lesenswert?

Ich habe dasselbe Board. Ist ein feines Teil. Du solltest Dir zu 
allererst, wie schon gefragt, die Lizenz klar machen. Wenn Dein Altium 
läuft, geht es weiter. Falls die Lizenz nicht mehr da ist, jedes Board 
hat eine Seriennummer, dafür gibt's die Soft-Edition von Altium, läuft 
dann ein Jahr. Ansonsten einfach eine Studi-Lizenz für 100 EUR nehmen. 
Da ist dann auch Board-Design dabei.

Zweiter Schritt: Die 14 Beispiele durcharbeiten, die in der 
Altium-Installation dabei sind für FPGA.

Dritter Schritt: Abändern der Beispiele, z. B. AD-Wandler hinzu fügen; 
anschauen, wie Du eigene Inhalte auf das Display bringen kannst.

Vierter Schritt: Dein eigenes Projekt in Angriff nehmen.

Ich hab das so gemacht, über die Weihanachts-Feiertage, hat prima 
geklappt. Man braucht ca. zwei bis drei Wochen vom allerersten 
Einschalten des Boards bis zum ersten eigenen Projekt.

Der müde Joe.

von Student (Gast)


Lesenswert?

Hallo und erstmal danke für eure Antworten !

Da ich das Projekt direkt in der FH bearbeite, sind Lizenzen etc. alles 
vorhanden !
Ich muss eigentlich nur direkt loslegen.

Ich wusste allerdings nicht, dass es Beispiele zum durcharbeiten gibt...
Vielleicht starte ich dann erstmal direkt mit diesen und schau ob ich 
damit weiterkomme.

Erfahrung oder Altium Kenntnisse habe ich ansonsten nicht wirklich.
Bin eigentlich blutiger Anfänger und habe nur vor 4 Semestern, die 
FPGA-Vorlesung unserer FH gehört, das meiste aber leider schon wieder 
vergessen.
Unser Prof sagte aber, dass dieses Projekt eigentlich eines der 
leichteren sei und man das auf jeden fall hinbekomme.

In die Programmiersprache VHDL kann ich mich auch glaub ich recht 
einfach wieder einfuchsen, mein Problem besteht eher darin den Ablauf 
meines Projektes zu erstellen...
Also quasi, womit fange ich an, was mache ich zuerst, was muss dann wie 
passieren etc.

Wenn mir das jemand mit Hilfe eines Blockschaltbildes aufzeigen könnte, 
würde mir das glaube ich schon ziemlich weiterhelfen !
Ach ja, und die Sache mit den SCHEMATICS, in die ich ja einzelne 
Bauelemente einbauen kann oder muss ?!?! ist für mich immer noch 
unverständlich...Wofür genau benötige ich die ?
Brauch ich die überhaupt oder kann ich das ganze auch nur mit dem 
nötigen VHDL-Programm + Testbench realisieren ?

Danke !

von Carsten S. (dg3ycs)


Lesenswert?

Student schrieb:
> Ach ja, und die Sache mit den SCHEMATICS, in die ich ja einzelne
> Bauelemente einbauen kann oder muss ?!?! ist für mich immer noch
> unverständlich...Wofür genau benötige ich die ?
> Brauch ich die überhaupt oder kann ich das ganze auch nur mit dem
> nötigen VHDL-Programm + Testbench realisieren ?

Nein, die Shematics brauchst du nicht zwangsläufig.
Das ist einfach nur eine Alternative Methode der Erstellung des 
Programmierfiles.
Du kannst also entweder in einem Schematics Projekt deine Schaltung wie 
sie später funktionieren soll zeichen, halt genau so wie du in 
Eagle/AD/Target usw. wirklich einen Schaltplan eines HArdwareboards 
zeichen würdest das diese Funktion hat -
ODER du erstellst ein VHDL Programm (bzw. auch Verilog, Abel usw)

Gruß
Carsten

von Student (Gast)


Lesenswert?

Aha ok !
Danke, dann hat sich das mit den SCHEMATICS jetzt erstmal erledigt.

In Form eines Blockschaltbildes stelle ich mir das Projekt jetzt 
ungefähr so vor :

1. --------    2. ----------   3a. ---------------      4. ----------
  | PT100  |      | AD-    |      |an serielle   |        |mit Multi-|
  | TEMP.  | ---> |Wandlung| ---> |Schnittstelle | --->   |meter U   |
   --------       ----------      |liefern       |        |auslesen  |
                                   ---------------        ------------

                               3b. -----------
                             ---> |auf Board- |
                                  |display    |
                                  |auslesen   |
                                  -------------

-1.  pt 100 liefert ne temperatur in form einer spannung.
-2.  die spannung a/d wandeln (mit VHDL)
-3a. falls wir die daten mit multimeter auslesen sollen (steht noch 
nicht fest), dann müssen die ja an eine Schnittstelle geliefert werden.
     Mach ich das auch per VHDL-Programmierung ???
-3b. oder halt per Formel Spannung in Temp umrechnen und auf dem Display 
anzeigen lassen.


Kann man das so machen oder fehlt da irgendwas wichtiges ?

Danke !

von Duke Scarring (Gast)


Lesenswert?

Student schrieb:
> Kann man das so machen oder fehlt da irgendwas wichtiges ?
Sieht gar nicht so schlecht aus.
Du kannst Dir noch überlegen, wie Du prüfen kannst, ob die einzelnen 
Blöcke richtig arbeiten und dann kann's losgehen.

Noch eine Frage:
Wie genau soll die Verbindung zwischen 3a und 4 aussehen?
Mein Multimeter kann Spannungen messen o.k.
Auch die Spannung an der seriellen Schnittstelle. Aber ich kann mit 
meinem Multimeter nicht die Daten auf der seriellen Schnittstelle 
dekodieren...
Du schon?

Duke

von dasrotemopped (Gast)


Lesenswert?

der AD Wandler auf dem Nanoboard3000 kann über SPI angesprochen werden.
Ist ein ADC084S021.
Der Display Controller ist ein ILI9320 mit Intel i80 bus interface.
Der Schritt 2 nach 3a und 3b könnte etwas größer werden, wenn man das 
nur mit VHDL machen will.

Gruß,

dasrotemopped.

von Student (Gast)


Lesenswert?

> Der Schritt 2 nach 3a und 3b könnte etwas größer werden, wenn man das
> nur mit VHDL machen will.
>
> Gruß,
>
> dasrotemopped.

Ok ! danke erstmal !

Was genau meinst du mit "wenn man das NUR mit VHDL machen will."
Wie geht es einfacher bzw. nicht so komplex ?

von dasrotemopped (Gast)


Lesenswert?

ich gebe da mal ein paar Google würdige Reizwörter:
Opencore
Altium Openbus
Bibliotheksfunktionen
RTFM
Für nen Test muss man auch mal was selbst recherchieren.

Gruß,

dasrotemopped.

von Thomas T. (knibbel)


Lesenswert?

Student schrieb:
> -1.  pt 100 liefert ne temperatur in form einer spannung.
> -2.  die spannung a/d wandeln (mit VHDL)

Ohne das Altium Nano Board 3000 genau zu kennen, denke ich du wirst 
schon ohne eine Zeile VHDL geschrieben zu haben, Probleme bekommen.

Der Grund: Ich habe noch keinen PT100 gesehen, der eine Spannung 
liefert! (und ich habe schon sehr viele gesehen...)

Wenn du mit dem A/D-Wandler nur Spannung wandeln kannst, solltest du dir 
vorher mal eine PT100-Tabelle zur Hand nehmen. Damit ermittelt du 
erstmal den Temperaturbereich, den du abdecken (wandeln) willst. Da sich 
der Widerstand des PT100 mit der Temperatur ändert und du eine 
Spannung für den A/D-Wandler brauchst, benötigst du einen konstanten 
Strom, der durch den PT100 fließt und dann kannst du am PT100 eine zum 
Widerstand propotionale Spannung abgreifen und diese wird dann 
gewandelt. Da der A/D-Wandler aber nur einen gewissen Spannungsbereich 
überdeckt, solltest du dir hier vorher einige Gedanken machen, um eine 
geeignete Stromstärke zu finden.

Soweit meine Anmerkung. Ich habe mir im Internet das Nano Board 3000 mal 
kurz angesehen und konnte keinen Mess-Eingang für Widerstände finden. 
Ich wundere mich, warum noch keiner vor mir hierauf aufmerksam gemacht 
hat.

Generell solltest du das Problem in kleinere Teilprobleme aufteilen und 
dir Schnittstellen schaffen, an denen du Werte übergibst. So kannst du 
die Teilprobleme dann einzeln angehen und vor allem testen.

Gruß,
Thomas

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.