www.mikrocontroller.net

Forum: FPGA, VHDL & Co. nicht verwendete pins auf 0 setzen (lattice ispLever7.2)


Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich möchte wie oben schon erwähnt, nicht verwendete pins auf 0 setzen.
ich habe eine platine mit dem MachXO 2280 und habe gemerkt, dass die 
pins, die im design nicht verwendet werden alle auf 'high' sind.

wie kann ich das machen (mit dem ispLever7.2)?  im datasheet kann ich 
dazu nichts finden.

mfg

Andi

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

Bewertung
0 lesenswert
nicht lesenswert
> wie kann ich das machen (mit dem ispLever7.2)?
Du definierst einen Vektor mit genausovielen Bits, wie du freie Pins 
hast:
spare : out std_logic_vector(10 downto 0);
und weist dem einen Null-Vektor zu:
spare <= (others=>'0');

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

danke für die antwort.
an die methode habe ich auch schon gedacht. dachte vllt eher daran das 
über eines der tools zu machen oder ähnlich.


danke

mfg

Andi

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du definierst einen Vektor mit genausovielen Bits, wie du freie Pins
> hast:
> spare : out std_logic_vector(10 downto 0);

Und dann zieht Dir der MachXO über die standardmäfigen Pull-Ups die 
ganze Zeit Strom...

@Andi Z.:
Im DesignPlanner kannst Du pull-down einstellen...

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok das war mir alles schon klar. sieht dann wohl so aus als müsste ich 
das ganze dann manuell einstellen.

danke


mfg

Andi

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

Bewertung
0 lesenswert
nicht lesenswert
> Und dann zieht Dir der MachXO über die standardmäfigen Pull-Ups die
> ganze Zeit Strom...
Ein Ausgang sollte keine Pullups haben   :-o
Denn jeder Ausgang wird mal high oder low sein. Und wenn dann Pullups 
oder Pulldowns aktiv wären, fließt immer unnötiger Strom.

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich möchte wie oben schon erwähnt, nicht verwendete pins auf 0 setzen.

Eingangs- oder Ausgangspins ?


SuperWilly

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

Bewertung
0 lesenswert
nicht lesenswert
>> nicht verwendete pins auf 0 setzen.
> Eingangs- oder Ausgangspins ?
ROTFL  :-D
Nicht verwendet heißt doch, dass du damit machen kannst, was du willst.
Ich habe (schmerzlich) gelernt, dass offene Eingänge schlecht sind 
(Thema EMV/ESD). Besser ist es, einen Ausgang offen zu lassen und aktiv 
zu treiben.

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mh naja, ich würde die als eingangspins schalten. oder wäre das eher 
schlecht??

bin mir da nicht ganz sicher wie nicht verwendete pins geschaltet werden 
sollten.

mfg

Andi

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha ok.
 also sollte man die als output deklarieren und aktiv treiben?! egal mit 
welchem pegel?

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

Bewertung
0 lesenswert
nicht lesenswert
> ich würde die als eingangspins schalten.
> oder wäre das eher schlecht??
Du darfst dann aber niemals vergessen, in der Toolchain implizit nicht 
verwendete Pins mit einem Pullup/-down zu versehen. Denn das Schlimmste, 
was passieren kann, ist ein hochohmiger Eingang. Der pegelt sich dann so 
etwa bei halber Versorgungsspannung ein und es leiten beide FETs der 
Eingangsstufe. Ergebnis: unnötig hoher Stromverbrauch und ein warmer 
Baustein.

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ROTFL  :-D

Die Frage war, wie sich zeigt, doch nicht so witzig ;O)

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok.

ich würde die pins dann doch lieber als ausgang setzen und diese dann 
mit 0 treiben.
die pins werden ja ansich schon als ausgang gesetzt, nur eben mit einer 
1. und das stört mich da ja noch andere ic's drauf sind die davon ja 
auch gesteuert werden.
deshalb will ich das generell einstellen das der die pins automatisch so 
setzt wie ich möchte. also als ausgang mit '0'.

mfg

Andi

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Bemerkung:

Falls Du Eingangspins hast, die Du nicht verwendest, solltest du 
unbedingt verhindern, dass Ausgänge (ohne Pin-Constraint) dort hingelegt 
werden.
Ich habe (schmerzlich) gelernt, dass man alle Ausgänge mit einem 
Pin-Constraint versehen werden, ansonsten übernimmt das der Mapper ;O)

Gruß,
SuperWilly

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>versehen werden
besser: versehen sollte

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> die pins werden ja ansich schon als ausgang gesetzt, nur eben mit einer
> 1. und das stört mich da ja noch andere ic's drauf sind die davon ja
> auch gesteuert werden.

Nein die werden nicht automatisch als Ausgang gesetzt, sondern sind 
standardmäßig Eingänge mit Pull-Up. Daher Du kannst da mit einem anderen 
Ausgang dran, ohne dass diese gegeneinander Treiben. Die Pull-Ups sind 
dafür da, dass beim Power Up ein definierter Pegel anliegt und dass die 
Eingänge nicht irgendwo flowten und damit, wie schon erörtert, unnötige 
Querströme Verursachen.

Allerdings, wenn Du schreibst, dass an diversen Pins noch andere ICs 
hängen, die davon getrieben werden, dann sind ja wohl die Pins am FPGA 
sowieso als Ausgang vorgesehen. Ich vermute, dass das Hardware-Einheiten 
sind, die Du erst später mit in Dein Design einbeziehen möchtest. Da 
würde ich Dir aber dringend empfehlen diese schon im Top-Level Deines 
Designs vorzusehen und diesen dann erst mal mit definierten Pegeln zu 
Belegen.

Du solltest auch darauf achten, dass beim Power-Up keine Bausteine 
gegeneinander treiben. Das kann schon mal vorkommen wenn z.B. zwei 
Highaktive Enable-Signale vom FPGA generiert werden sollen. Beim Power 
Up sind diese nämlich über die Pull-Ups aktiv. Da sollte man dann einen 
"stärkeren" Pull-Down auf der Leiterplatte vorsehen, der den Pull-Up 
überschreibt. Zum Glück sind solche Signale aber meist High-Aktiv und 
man kann sich das dann sparen.

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.