mikrocontroller.net

Forum: FPGA, VHDL & Co. Altera Cyclone II für Pegelmessung


Autor: Koray (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich schreibe grade an meiner Diplomarbeit. Ich habe mir jetzt das 
Starter Kit von Altera bestellt.

Nähere Infos zur Diplomarbeit -->> 
Beitrag "µC Wahl für meine Dipmlomarbeit"

Nun habe ich eine Schaltung bei Max Plus II aufgebaut, in dem ich einen 
6bit Zähler mit einstellbarer Zählhöhe (d.h. beispielsweise bis 60 oder 
40 wie auch immer) realisiert habe.

Das Gute bei Altera ist es, dass die Software ein Schema-Aufbau direkt 
in den VHDL-Code umwandelt und ich dann das Programm direkt auf den FPGA 
laden kann.

Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die 
Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln 
detektiert?

Das Signal sieht aus wie ein Sinussignal und hat eine maximale Frequenz 
von 24kHz. Die Spannungen können von 1Vp-p bis zu 60Vp-p liegen.


Danke im Voraus
Gruß Koray

Autor: volltroll.de (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also
"ich schreibe grade an meiner Diplomarbeit. "
und
"Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die
Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln
detektiert?"

Passen nicht zusammen, auch nicht, wenn das direkt in nen FPGA soll, 
außer Du hast BWL Studiert.

Autor: Koray (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann arbeite ich eben an meiner Diplomarbeit.
Ich kanns echt nicht verstehen, wenn man postet um einfach nur was dazu 
gesagt zu haben. Kannst du mir helfen, dann bitte ich dich das zu tun, 
wenn nicht spar dir bitte deine Fehlererkennung.

Autor: A. M. (am85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Koray schrieb:
> Dann arbeite ich eben an meiner Diplomarbeit.
> Ich kanns echt nicht verstehen, wenn man postet um einfach nur was dazu
> gesagt zu haben. Kannst du mir helfen, dann bitte ich dich das zu tun,
> wenn nicht spar dir bitte deine Fehlererkennung.

Es tut mir leid, aber ich muss da "volltroll.de" leider Recht geben und 
auch all den anderen, aus deinem verlinkten Thread. Wenn deine 
Diplomarbeit im Zusammenhang mit deiner Frage steht, dann denke ich, 
hast du deine Hausaufgaben nicht richtig gemacht. Mit der Kritik wirst 
du dich leider abfinden müssen.

Zu deiner eigentlichen Frage:
Ich kenne mich nicht mit den grafischen Realisierungsmöglichkeiten aus, 
von daher kann ich dir da nicht helfen. Wie sieht es denn aber mit 
deinen VHDL/Verilog-Fähigkeiten aus?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Koray schrieb:
> Das Gute bei Altera ist es, dass die Software ein Schema-Aufbau direkt
> in den VHDL-Code umwandelt und ich dann das Programm direkt auf den FPGA
> laden kann.
Das können die anderen auch....
Aber es ist nicht "gut", Schaltungen mit FPGAs so beschreiben zu wollen. 
Damit werden Schaltungen ganz einfach sehr sehr schnell unübersichtlich.

Du solltest jetzt mal deine Zähler in einer brauchbaren 
Hardwarebeschreibungssprache machen (VHDL oder Verilog), dann kommst du 
auch mit der Mittelwertgeschichte weiter.
> Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die
> Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln
> detektiert?
Ich kann mir nicht vorstellen, dass das mit der Schaltplandarstellung 
sinnvoll möglich ist.

> Nun meine Frage: Wie kann ich eine weitere Schaltung realisieren, die
> Spannungspegel misst ein Durchschnitt bildet und abweichende Pegeln
> detektiert?
Das hat sich im Beitrag "µC Wahl für meine Dipmlomarbeit" noch 
irgendwie ganz anders angehört...  :-o
Weißt du denn jetzt genau, was du mit welcher Geschwindigkeit erledigen 
mußt?

Autor: Koray (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nach ein bisschen Zeit bin ich es noch mal. Ich habe jetzt noch bis Ende
September Zeit für meine Diplomarbeit.
Folgendes habe ich schon aufgebaut:

Ich habe das FPGA Board von Altera Cyclone II Starter Development Board
bestellt und programmiert.

Ich habe einen 6Bit Zähler mit einstellbaren Zählwert programmiert, der
den Takt extern bekommt. Den Wert bis zu dem er zählen soll, bekommt er
von Switch-Schaltern, die binär angelegt sind. Der externe Takt wird
durch ein User I/O eingegeben, welcher dem Zähler dann den Takt gibt.
Dieser Takt ist dann auch das Signal dass ich aus meinem Maximbaustein
bekomme
-> ein Rechtecksignal aus einem sinusförmigen Signal, wobei die
Nulldurchgänge detektiert werden.

Ich denke als Laie einen FPGA zum laufen zu bringen ein Programm
draufzuladen und dies auch in der Form, in der man es auch möchte
innerhalb 2,5 Wochen ist eine gute Leistung.

Nun stehe ich jedoch vor einem anderen Problem.

Es gibt aber auch Zahnräder die einen speziellen 1/rev Zahn haben.
deshalb muss ich jetzt noch drei verschiedene Signaltypen erkennen
können.
Dazu gehören Zahnräder die,
1. einen kürzeren Zahn
2. einen längeren Zahn
3. einen fehlenden Zahn
haben.
Der Sinn dabei ist, wenn ich die gesamte Anzahl der Zähne zähle noch ein
gleiches System parallel laufen zu lassen, falls diese 1/rev Zähne an
dem Zahnrad vorhanden sind. Dann später beide Signale miteinander in
Vergleich zu stellen.

Ich habe mir 2 verschiedene Lösungen überlegt:

1. Ich werde beim kurzen Zahn die Signale Triggern und der kurze ZAhn
wird nicht erkannt, so als ob ne Lücke wäre, und dadurch kann ich den
doppelten Signalabstand detektieren lassen. -> gleiche Lösung für die
Lücke.
Beim langen Zahn Shcmitt Trigger, sodass nur der lange Zahn erkannt wird
und dann den Zähler bis 1 zählen lassen.

Hierbei ist das Problem aber dass sich die Drehzahl ändert, und dadurch
auch die Amplituden, also muss ein adaptiver Schmitt-Trigger her ->
Vielleicht durch einen µC steuern lassen aber ich hab kaum noch Zeit.


2. Einen IC finden der bei einem bestimmten Takt aktiviert wird und aus
analogem Signal digitale macht und daraus den höchsten wert liest und an
den Ausgang gibt.
Das würd ich dann nach jedem Nulldurchgang laufen lassen und immer drei
miteinander vergleichen. Somit wird dann der kurze oder der Lange Zahn
erkannt.

Nur habe ich bisher weder einen IC gefunden noch weiss ob das
funktioniert.


Ich hoffe ich konnte euch mein Problem einigermaßen deutlich klarmachen
und hoffe auf hilfreiche Antworten.

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich geb ganz ehrlich zu: Verstanden habe ich die Aufgabenstellung und 
den Ansatz nicht. Aber vielleicht helfen dir meine wirren Gedanken 
trotzdem weiter.

Wenn es darum geht, Signale eines Sensors auszuwerten, der bestimmte 
Zähne eines unterschiedlich schnell drehenen Zahnrads erkennt, dann 
müsste man erstmal die Dauer des Sensorimpulses bei einem 
durchschnittlichen Zahn ermitteln. Denn die ändert sich ja mit der 
Drehzahl. Also bau einen Zähler zur Messung des Impulsdauer und takte 
dieses Zähler schnell genug damit vernünftige Zahlen entstehen. 
Jedesmal, wenn ein Impuls zu Ende ist, nimm die Zahl in ein 
Schiebreister in dem vielleicht immer die letzten 8 Werte durchgeschoben 
werden. Addiere die 8 Werte und teile das Ergebnis durch 8. (Geht 
natürlich auch mit anderen Zahlen, aber Zweierpotenzen bieten sich an). 
Nun vergleiche jeden Impuls, ob er größer oder kleiner als der 
Mittelwert ist. Für stabile Verhältnisse besser noch einen 
Sicherheitsabstand draufaddieren (für größer) bzw. abziehen (für 
kleiner).

Für einen fehlenden Zahl muss dann noch eine zweite Logik her, die die 
Abstände der Impulsse misst, nicht die Dauer, und ein Signal erzeugt, 
wenn nach eine Impulsabstand * Sicherheitsmarge kein neuer Impuls 
ankommt.

Lieg ich voll daneben?

Autor: Samuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das Gute bei Altera ist es, dass die Software ein Schema-Aufbau
> direkt in den VHDL-Code umwandelt
Stimmt, das gibt es nur bei Altera. :-)

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.