Nutzung bidirektionaler Pins

OP #704457
Hallo,

für ein Projekt möchte ich einen 1x16-Zeichen-Punktmatrix-Display 
(HD44100-Controller) über ein FPGA (Spartan 3E) ansteuern.
Dafür möchte ich nach jeder Anweisung an das Display dessen Busy-Flag 
abfragen.
Daher habe ich die 8 Daten-Signale als "inout" definiert. Diese 8 Pins 
werden über einen Pegelwandler (SN74LVC4245A) mit dem Display verbunden.
Nun muss ja, denke ich mal, der Ausgang am FPGA hochohmig geschaltet 
werden, bevor das Display seine Daten auf den Bus legt. Aber wie 
funktioniert das? Wenn ich data <= "ZZZZZZZZ" setze, kann ich die Daten 
doch nicht mehr abfragen, oder? Was würde überhaupt passieren, wenn auf 
einer Leitung noch ein High-Signal vom FPGA anliegt, zugleich aber der 
Ausgang vom Pegelwandler auf Low geht, kann dabei das FPGA Schaden 
nehmen?
Sorry, wenn diese Fragen vielleicht etwas trivial sind, ich habe aber 
nach 3 Stunden googlen keine wirkliche Lösung gefunden - die 
Display-Ansteuerungen, die ich gefunden habe, schreiben immer nur aufs 
Display.

Gruß
Tobias
Gast
> Wenn ich data <= "ZZZZZZZZ" setze, kann ich die Daten
> doch nicht mehr abfragen, oder?

Doch das kannst du.

> Was würde überhaupt passieren, wenn auf einer Leitung noch ein High-Signal
> vom FPGA anliegt, zugleich aber der Ausgang vom Pegelwandler auf Low geht,
> kann dabei das FPGA Schaden nehmen?

Ja, er kann, wahrscheinlich hast du aber Glück und es passiert 
nichts(der Strom vom FPGA ist begrenzt). Also keine allzugrosse Angst.

Mit einem Testbench (das Beste an VHDL!) kannst du alles gut im 
Simulator durchtesten damit es dann ohne Probleme im FPGA läuft.
OP
Falk Brunner wrote:
> @ Tobias W. (eagle2010)
>
>>Display-Ansteuerungen, die ich gefunden habe, schreiben immer nur aufs
>>Display.
>
> Und? Das reicht doch. Machen 99% aller Anwender so und das sehr
> erfolgreich.

Ok, möglicherweise kann ich mir das Abfragen des Busy-Flags sparen, aber 
es wäre trotzdem interessant zu wissen, wie es funktioniert.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.