Zu schneller Singalabfall / CMOS

Hallo.

Ich gebe zu ich habe nicht besonders viel Ahnung vom Entwurf elektrischer Schaltungen. Trotzdem müsste ich folgendes Problem lösen, auch wenn ich denke es ist nicht besonders schwer:

Es geht um ein CMOS Speicherregister / Latch, das aus 8 D Flip-Flops und einem "Output Enable" Pin besteht. Ist dieser Pin HIGH so folgen die Ausgänge den Eingängen und ist er LOW ist der letzte anliegende Wert gespeichert und liegt weiter an. Ich brauche das Latch, um es zu schaffen, von 4 möglichen Signalen jeweils nur genau eines (per Fußtaster) zu aktivieren. Dazu ist jeder Fußtaster (die Schaltung ist nicht von mir, ich habe sie aus dem Internet) mit einem Inverter verbunden und wenn man ihn betätigt, zieht er dessen Einang auf 0 -> der Inverter Ausgang wird HIGH. Diese Ausgänge sind mit jeweils einem Eingang im Latch sowie, über eine normale Diode mit dem OE Pin verbunden. In der Theorie sollte also, immer wenn man einen Fußtaster betätigt, die Ausgänge aktiviert werden, ein einzelner der 4 Ausänge auf HIGH sein und dann die Ausgänge wieder gelatcht werden, wodurch eben jedesmal nur genau eines der 4 Signale (die vom Latch aus abgehen) auf HIGH sein sollte. In der Praxis ist es leider so, dass sie Ausgänge immer auf 0 sind, da das HIGH an den Eingängen zu schnell abfällt, also, wenn das Latch speichert ist HIGH immer schon wieder weg. Der Rest funktioniert, denn wenn ich OE und Eingang getrennt steuere und erst OE auf LOW, dann Eingang auf LOW setzte funktioniert alles wie es soll.

Es muss doch bestimmt einen einfachen Weg geben um zu erreichen, dass das Signal auf jeden Fall am OE schneller als am Eingang abfällt (ich nehme an, die Diode sollte genau das erreichen, aber offensichtlich tut sie es nicht).

Irgendwelche Tipps oder Ideen?

MfG, Andy

Reply to
Andy M.
Loading thread data ...

"Andy M." schrieb im Newsbeitrag news: snipped-for-privacy@posting.google.com...

Wenn etwas unlogisch und undurchdacht ist, wird man es mit Logikschaltungen nicht hinbekommen. Die denken das auch nicht fuer dich zuende.

Was ist, wenn man einen Taster (A) drueckt, danach einen Taster (B) drueckt, und dann den Taster (A) wieder loslaesst, obwohl Taster (B) noch gedrueckt bleibt ?

Soll dann Ausgang B aktiv werden, oder nicht ?

Und was heisst 'danach' ? 1 Nanosekunde, 1 Mikrosekunde oder

1 Sekunde spaeter ? Nein, es gibt keine 0, weil das 'gleichzeitig' heisst.

So lange also die Funktionsbeschreibung unlogisch ist, wird es keine logische Loesung geben.

Normalerweise heisst das IC zur Loesung der Aufgabe 'Prioritaetsencoder' (74xx148) und nicht 'Latch'.

Desweiteren:

Was soll das bewirken ? Eine ODER Schaltung ?

A --|>|--+ | B --|>|--+ | C --|>|--+-- OE | D --|>|--+

Woher bekommt der OE-Eingang dann 'LOW' ? Die Dioden leiten je bekanntlich nur wenn A, B, C, D auf hoher Spannung liegen (HI, +5V) und liefern dann ca. 4.5V am Ausgang, aber was passiert, wenn alle Eingaenge (A, B, C ,D) nicht HI sind, sondern auf niedriger Spannung (0V, LOW) ? Dann leitet keine Diode, also ist OE nicht angeschlossen. Was soll ein nicht-angeschlossener Eingang machen ? Denk dran, er ist nicht mal mit Masse verbunden, sondern offen.

A --|>|--+ | B --|>|--+ | C --|>|--+-- OE | D --|>|--+ | 4k7 | Masse

Zumindest ein Pull-Down muss her, besser verbindet man die Eingaenge aber ueber ein echtes ODER-Gatter (spart als NAND auch gleich deine Inverter ein).

Die richtige Loesung waere das trotzdem nicht, denn der Eingang ist schon aus, wenn das OE Signal auf 'halten' geht. Also muesste man jeden Eingang einzeln verzoegern.

Das geht mit RC-Gliedern

A --1k--+-- Latch | 10nF | Masse

aber damit wird aus dem digitalen Signal ein analoges Signal, das langsam seinen Pegel aendert, also muesste man erst mal mit einem Schmitt-Trigger das digitale Signal wieder herstellen

|\ A --1k--+--|S>-- Latch | |/ 10nF | Masse

und da die meisten Schmitt-Trigger auch noch intertieren, muesste dann noch ein extra Inverter her |\ |\ A --1k--+--|S>o--| >o-- Latch | |/ |/ 10nF | Masse

das ist viel Auswand fuer den falschen Ansatz, denn GARANTIEREN das nur ein Ausgang aktiv wird, kann die Schaltung nicht, kommen die Taster kurz nacheinander, kann die Schaltung das nicht auseinanderhalten, eben weil sie unlogisch ist.

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin

Am 8 Mar 2005 02:28:01 -0800 hat Andy M. geschrieben:

Was du hier beschreibst, ist die Wirkung des "Latch Enable", LE. OE schaltet normal nur zwischen aktiven Logikpegeln und hochohmigem Tri-State der Ausgänge hin und her. Das willst du möglicherwiese ständig aktiv haben.

MaWins Vorschlag mit Prioritätsenkoder macht etwas anderes, als du beschreibst (realisieren willst?), der macht aus 2^n Eingängen eine n-Bit Binärzahl, n ist meist gleich 3 oder 4. Seine restlichen Ausführungen, besonders der Pull-Down, passen schon, den brauchst du unbedingt. Das Problem der langsamen Flanken würde ich hier nicht so eng sehen, wenn gespeichert wird, dann passt der Pegel schon. Im allgemeinen sollte man bei solchen RC-Gliedern Schmitt-trigger verwenden, insbesondere wenn es ein schneller Takteingang ist, sonst kann es an der Flanke Schwingungen geben. Hier denke ich aber, daß es auch ohne funktionieren wird, die RC-Glieder alleine also ausreichen.

--
Martin
Reply to
Martin Lenz

Ok, deine Einw=E4nde sind nat=FCrlich korrekt, aber keine Angst, dar=FCber habe ich schon nachgedacht. Die 4 Schalter sind, wie gesagt, Fu=DFtaster, diese Logikschaltung dient dazu einen Singal-Router anzusteuern. Da ich nicht vorhabe auf mehr als einen Taster auf einmal su steigen, bzw. das technisch auch kaum m=F6glich ist (so wie sie angeordnet sind), ist das kein Problem f=FCr mich. Und sie werden auch nicht schneller bet=E4tigt als das Latch es verarbeiten k=F6nnte.

Ich brauche lediglich eine Schaltung die genau eines der 4 Signale aktiviert unter der Annahme dass ich auch immer nur auf einen Fu=DFtaster trete. Das h=E4tte ich vielleicht erw=E4hnen sollen.

Der OE ist nat=FCrlich der Latch Enable das war mein Fehler. Sorry.

Falls dich der Schaltplan interessiert:

formatting link

etwa bei der H=E4lfte unter "7. Footswitch Logic".

Im Grunde ist die Baubeschreibung dort ziemlich =E4hnlich zu dem, was ich auch machen will. Ein Fu=DFschalter (mit mehreren Tastern) steuert Relais in dem Router an, wobei sinnvollerweise dort immer nur eine Loop an sein soll, deshalb kommen konventionelle Fu=DF-(Um-)schalter nicht in Frage, da man damit ja nur jede Loop getrennt an/aus schalten k=F6nnte

- ich brauche aber etwas, das beim Anschalten der Einen die vorherige Loop ausschaltet.

Ich entnehme also deinem Post (und Martins Post):

-Ich benutze einen Pull-Down Widerstand f=FCr den LE Pin, oder ein OR Gatter.

-Ich benutze ein RC Glied um den Abfall zu verlangsamen

-Wenn es dann immer noch nicht funktioniert, versuche ich es mit Schmitt-Triggern.

K=F6nnte man das so in etwa sagen, bzw. jetzt wo der Schaltplan vorliegt, =E4ndert sich was daran?

Danke f=FCr die Hilfe!

MfG, Andy

Reply to
andy.mailbox

schrieb im Newsbeitrag news: snipped-for-privacy@l41g2000cwc.googlegroups.com...

Aha, also ein gegenseitig ausloesendes Tastenaggregat aber aus Einzeltastern aufgebaut, also was anderes als ich aus deiner Beschreibung entnommen hatte.

Nein, du nimmst immer einen Schmitt-Trigger, weil klar ist, das das Signal sonst nicht den Anspruechen genuegt, die im Datenblatt drin stehen, also deine Schaltung sonst eher nur zufaellig funktioniert.

Mir waere das zu viel Aufwand. Du hast 4 Taster. Du hast dort 4 Schmitt-Trigger (74HC14) zur Tastenentprellung mit 8 Widerstaenden und 4 Kondensatoren. Du hast weitere 4 Widerstaende und 4 Kondensatoren und 4 Schmitt-Trigger (74HC14) zur Verzoegerung der Datenleitungen, eventuell noch 4 Inverter damit die Polaritaet wieder passt (restliche Gatter der beiden 74HC14). Und du hast 4 Dioden und einen Widerstand um LE zu erzeugen. Und du hast dein Latch (74HC175) Und du hast einen 4-fachen Relaistreiber (ULN2003) Und du hast 4 Relais. Und die Versorgungsspannung fuer ICs und Relais, wohl als stabilisiertes Netzteil (7805).

Wenn du Relais mit 2 Umschaltkontakten statt 1 Umschaltkontakt nimmst, ein Steckernetzteil das viel mehr Spannung liefert als die Relais brauchen, dann kommt man mit selbsthaltenden Relais aus ganz ohne Elektronik (nun ja, zur Sicherheit mit Dioden, koennte man weglassen und durch geschickte Widerstandskombinationen ersetzen aber dann muessen die Spannungen, bei denen das Relais anzieht und wieder loslaesst, sehr genau definiert sein).

  • --------------+--+--+--+ haufenweise | | | | Dioden V V V V Vorwiderstand, so bemessen das an ihm 1N4001 | | | | bei Nennstrom des Relais der Rest der +-|
Reply to
MaWin

Gut. Danke f=FCr die Hilfe.

Aber ich denke ich werde mein Gl=FCck mit dem bisherigen Aufbau weiter probieren, denn der Router ist etwas komplizierter als 4 Relais (da es in Wirklichkeit eine Kombination aus 2 Loopern und einem A/B Schalter ist, der auch unbenutze Ausg=E4nge erdet, etc. und au=DFerdem bereits fertig ist und funktioniert). Mein bisheriger Fu=DFschalter erlaubt mir den A/B Teil und die Looper einzeln zu steuern (also 5 Fu=DFschalter) und jetzt will ich eben noch einen dazu bauen, der mir direkten Zugriff auf 4 Signalketten liefert. Darum f=FChrt f=FCr mich kein Weg an einer Logik Schaltung vorbei, aber ich habe jetzt ja schon einige Anhaltspunkte um diese doch noch zum Laufen zu kriegen.

MfG, Andy M.

Reply to
andy.mailbox

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.