www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Pegelproblem am Spartan3 XC3S250-4VQG100CCS1


Autor: Martin Kohler (mkohler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich habe hier ein Board, bei welchem durch wahrscheinlich Überschwingen 
eines Signals Glitches entstehen.

Auf der Schaltung werden ab Optokoppler zwei parallel geschaltete 
OpenCollector Ausgänge direkt auf einen Input in Bank0 geführt. (z.B. 
PIN78, I/O_L01_0(Bank0) )

Die parallel geschalteten OpenCollector Ausgänge des Optokopplers haben 
einen Pull-Up Widerstand 1kOhm gegen 3.3V. (siehe Bild). SIGNAL_3.3V 
geht auf das FPGA.

Der Optokoppler spezifiziert Low Level Output als typ.0.4V, max.0.6V. 
Gemessen wurden ziemlich genau 0.4V für den Low-Pegel und 3.3V für High.

Beim Umschalten von High auf Low kann es nun vorkommen, dass FPGA-intern 
nach dem Abclocken Glitches von 1-3 Taktdauern Breite festgestellt 
werden können, auf dem KO ist jedoch nichts wirklich schlimmes zu sehen. 
Das Signal pendelt bei 0.4V gaaaanz leicht ein.

(Fortsetzung im Folgepost)

Autor: Martin Kohler (mkohler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gemäss dem Spartan 3E Datenblatt (siehe Bild) könnte der Signalpegel von 
0.4V zu Problemen bei einigen Logikfamilien führen.

Nun die Frage:
Welche Logikfamilie wird bei ISE8.1 als Standard gewählt? Bank0 wird mit 
3.3V gespeist. Es sind keine Constraints zur Logikfamilie angegeben.

Was kann getan werden, damit dieses Problem nicht mehr auftritt?

Ein Workaround besteht darin, einen 2.2nF Kondensator parallel zu den 
OpenCollector Ausgängen gegen GND zu hängen, dies führt zu einer sehr 
langsamen Signalflanke (Tfall=200ns) im Gegensatz zu 30ns ohne 
Kondensator.
Die Rise-Flanke ist dann jenseits von gut und böse (us-Bereich).

Falls sich dieser Weg als passend erweisen sollte: wie langsam darf eine 
Signalflanke beim Spartan 3E sein?

Gruss, Martin

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vergiss den Kondensator. Eine solide Lösung wäre der Einsatz eines 
Schmitt triggers (74HC14), dann ist es garantiert wasserdicht. 
Alternativ kann man auch einen digitalen Filter im FPGA bauen (einfach 
mehrere Samples zu einem zusammenfassen).

MFG
Falk

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.