Forum: Mikrocontroller und Digitale Elektronik Schaltermatrix Kurzschluss


von Eee E. (snake4)


Angehängte Dateien:

Lesenswert?

Hallo,

ich wollte eine Schaltermatrix machen. Allerdings bin ich mir nun 
unschlüssig, ob diese nicht einen Kurzschluss produzieren kann.

Ich habe ein Bild angehängt, das sagt wohl mehr als 1000 Worte. In Grün 
der Sollzustand: Ich drücke S3 und kann ihn dann abfragen.
In Rot: Wenn ich allerdings gleichzeitig S4 drücke. Dann hätte ich doch 
einen Kurzschluss bzw. könnte S3 garnicht auslesen?

Falls ich da jetzt keinen Denkfehler drin habe... würde dem eine Diode 
wie eingezeichnet abhelfen?
Oder andere Lösung: vielleicht kann mir da zufällig jemand helfen: Ich 
benutze zum auslesen einen PIC. Im Datenblatt ist die rede von PORTB als 
Tri-State. Allerdings konnte ich nur finden wie man ihn als Tri-State 
konfiguriert, nicht jedoch wie man den "Tri"tten state setzt?
Aber würde mir das auch helfen?

MfG

von Karl H. (kbuchegg)


Lesenswert?

Eee E. schrieb:
> Tri-State. Allerdings konnte ich nur finden wie man ihn als Tri-State
> konfiguriert, nicht jedoch wie man den "Tri"tten state setzt?

Den setzt du nicht.

Ein Pin der als Tri-State konfiguriert ist, treibt selbst die Leitung 
nicht auf Low oder High, sondern nimmt den zustand an, die die Leitung 
vno Aussen vorgibt. In µC Chargon ist das ein Eingang ohne Pullup oder 
Pulldown Widerstand.

Und so löst sich dann auch das Rätsel um deine Dioden. Du brauchst sie 
deswegen nicht, weil nur die Leitung, die du mit High bezeichnet hast 
auf aktiver Ausgang gesetzt ist. Alle anderen Port-Leitung werden auf 
Tri-State (also auf Eingang konfiguriert) und teiben somit keinen Pegel 
auf die waagrechten Leitungen, sondern die Leitung und der µC Pin kann 
den Pegel annehmen, der sich aus der restlichen Verschaltung ergibt. 
Deine mit low markierten Leitungen sind also in Wirklichkeit nicht low, 
sondern an diesen Leitungen wird vom µC kein Pegel vorgegeben.

PS: Je nachdem ob dein µC Pullup oder Pulldown Widerstände zuschalten 
kann, musst du eventuell die Logik umdrehen. Ich kenn die PIC nicht, 
daher weiß ich nicht ob die Pulldown Widerstände haben. Wenn es so ist, 
wie beim AVR, dass nur Pullup Widerstände zur Verfügung stehen, dann 
treiben diese Widerstände die Eingangsleitungen bei offenem Taster nach 
High. Du setzt dann die dich interessierende Zeile auf Low und nicht 
nach High, damit ein geschlossener Taster die zugehörige Eingangsleitung 
auf Low ziehen kann.

von MaWin (Gast)


Lesenswert?

>  wie man ihn als Tri-State

Einfach als Eingang schalten.

Um die von dir angesprochenen Kurzschlüsse auch ohne Dioden zu 
verhindern,
macht man folgendes:

Alle Eingänge von den Zeilen bekommen ihren PullUp eingeschaltet.
Von den Ausgängen zu den Spalten wird nur EINER auf Masse geschaltet,
die anderen Ausgänge schaltet man TRI-State in dem man sie einfach als 
Eingang schaltet - zur Vermeidung unerwünschter Zustände ebenfalls mit 
aktiviertem PullUp. Es ist also nur EIN Ausgang geschaltet, und der ist 
LOW.

Und schon ist alles ohne zusätzliche Bauteile gelöst.

von Eee E. (snake4)


Lesenswert?

Also wenn der PIC Port als Input definiert ist habe ich die HiZ die ich 
für die Matrix brauche?

Und nur wenn ich den Port als Ouput definiert habe, ist er je nachdem ob 
low oder high, mit Vdd bzw Vss verbunden?

Dann scheint mir das glaube ich logisch. Danke.

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.