www.mikrocontroller.net

Forum: FPGA, VHDL & Co. CPLD XC95xxx Unbeschaltete I/Os - hochohmig?


Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, kurze Frage...

(Bin noch recht unerfahren in Prog. Logik.)

Was für einen elektrischen Zustand nehmen I/Os von einen CPLD (XILINX 
95xxXL) ein wenn dieser "innen" sozusagen unbeschaltet ist. Z. B. ein 
Datenbuss D0..8 liegt am CPLD und ich verschalte nicht im inneren. 
Hochohmig, undef. ?
Möchte die erst später verwenden und will das diese nicht stören.

Kann man die I/O passive schalten.

(Am Rande: Verwende AltiumDesigner6.9)

Danke für Antworten.

mfg
Roland

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

Bewertung
0 lesenswert
nicht lesenswert
> Kann man die I/O passive schalten.
Warum nicht einfach als Ausgang deklarieren und 'Z' ausgeben?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise sind die nicht benutzten Pins hochohmig.
Es gibt aber eine Fitter Option "Create programmable GNDs on unused 
I/Os", welche aus den unbenutzten Pins GND Pin macht. Diese Option ist 
bei schnellen Design und Bussen sehr empfehlenswert, indem man zwischen 
die benutzten Pins immer ein unbenutztes legt, das als GND Pin wirkt.
Wenn man diese Option verwendet, muß man dem Fitter mitteilen, welche 
zusätzlichen Pins davon ausgenommen werden sollen. Dies macht man über 
das UCF File, indem man das Pin mit Prohibit kennzeichnet.

Klaus

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten.

Also unbeschaltet hochohmig.

Das mit dem Ausgang und TriState ist auch eine gute Idee.

mfg
Roland

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

Bewertung
0 lesenswert
nicht lesenswert
> Normalerweise sind die nicht benutzten Pins hochohmig.
Wie deckt sich das mit der Aussage vom Datenblatt:
Each IOB also provides for bus-hold circuitry (also called a
“keeper”) that is active during valid user operation. The
bus-hold feature eliminates the need to tie unused pins
either high or low by holding the last known state of the input
until the next input signal is present. ....
When the device is not in valid user operation, the bus-hold
circuit defaults to an equivalent 50k ohm pull-up resistor in
order to provide a known repeatable device state. This
occurs when the device is in the erased state, in program-
ming mode, in JTAG INTEST mode, or during initial
power-up. 

Und nach der Skizze vom DB sollte dieser Keeper sogar bei Ausgängen 
beteiligt sein. Allerdings steht da auch:
- Bus-hold circuitry on all user pin inputs

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, den Bus-Hold habe ich vergessen, aber der kann über den Fitter 
deaktiviert werden.
Dass er beim Power On aktiv ist, kann sein.
Der "Keeper" ist nur für Bus-Ausgänge relevant und verhindert dass ein 
Bus, der von keinem angeschlossenen Busstein niederohmig getrieben wird, 
undefiniert herum-"floatet".
Wenn man vergisst ihn auszuschalten, dann wundert man sich beim Messen 
warum das Signal nicht richtig hochohmig wird, aber im beschriebenen 
Anwendungsfall mit dem nichtverwendeten Pins würde er vielleicht gar 
nicht stören.

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin jetzt etwas verwirrt.
Trifft das auch für die XILINX 95xxxXL Familie zu?

Was muss ich nun tun?

Also Datenbus der aktiv ist liegt am CLPD der erstmal aber nix mit den 
Datenbus tut.


mfg
Roland

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such's Dir aus :
a) Nix tun. Dann werden unbenutzten Pins hochohmig.
b) Alle unbenutzten Pins auf GND legen.
   Dabei gibts wieder 2 Möglichkeiten um deine Bus-Pins auszunehmen.
   - Die Pins im UCF File mit PROHIBIT markieren.
   - In VHDL die Pins als out deklarieren und 'Z' zuweisen. Das hat den
     Vorteil, dass Du die Pins für eine spätere Verwendung schon 
vorbereitet
     hast, aber man muss kontrollieren, ob die Signale nicht 
wegoptimiert
     wurden, weil sie nicht verwendet werden. Das ist mir bei älteren 
ISE
     Versionen schon passiert, ich glaube die neuesten machen das nicht
     mehr.

In beiden Fällen sollte aber der Bus-Hold (Keeper) zum Zug kommen, das 
heisst der Pin ist nicht komplett hochohmig, sondern versucht den 
letzten Zustand '1' oder '0', der am Pin angelegt war (von innen oder 
außen ist egal) zu halten. Diese Schaltung ist nur schwach.
Wenn man das nicht will, muss man die Option in den Fitter Options 
deaktivieren.

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

Bewertung
0 lesenswert
nicht lesenswert
> In beiden Fällen sollte aber der Bus-Hold (Keeper) zum Zug kommen,
> das heisst der Pin ist nicht komplett hochohmig...
FULL ACK

Ich hatte an so einem CPLD schon mal offene Eingänge ohne Keeper.
Und was passiert dann?
Es stellt sich am Pin eine Spannung von ca. Vcc/2 ein  -->
beide Eingangstreiber-Transistoren leiten (P und N) -->
es fliesst ein deutlich wahrnehmbarer Strom, der bis zur 
Geruchsbelästigung führen kann... ;-)

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Erfahrung habe ich zwar nicht gemacht, aber ich habe eigentlich 
immer alle unbenutzten Ausgänge möglichst auf Programmable GND gelegt.
Wenn man den Fitter Report anschaut, sieht man bei den unbenutzten Pins 
sonst immer "TIE", was ich immer als Aufforderung verstanden habe, den 
Pin auf ein bekanntes Potential zu legen.
Was wir in unserer Firma auch immer machen, das ist die I/Os, welche an 
einen Stecker gehen, mit ESD Schutz zu versehen.

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.