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


von Roland (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Klaus F. (kfalser)


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

von Roland (Gast)


Lesenswert?

Danke für die Antworten.

Also unbeschaltet hochohmig.

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

mfg
Roland

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

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

von Klaus Falser (Gast)


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.

von Roland (Gast)


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

von Klaus F. (kfalser)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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... ;-)

von Klaus F. (kfalser)


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.

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.