Nabend zusammen, ich hoffe mir kann jemand helfen. Ich brauche für ne Schaltung ne einfache Verknüpfung (A^C)v(B^D) und das mehrmals, quasi nen 2to1-Multiplexer. Ich suche eigentlich den hier: http://focus.ti.com/lit/ds/symlink/sn74lv157a.pdf Das ist genau das was ich brauche, wenn die zwei ANDs und den Inverter ganz unten nicht da wären. Gibt es sowas als IC? Ich könnte das zwar auch auch mit zwei ICs aufbauen (74x08 und 74x32), jedoch möchte ich das möglichst klein aufbauen. Von daher wäre es von Vorteil, wenn das alles in einem IC wäre. MfG Daniel
3 NAND-Gatter aus einem 74x00 richtig verschaltet. Grüße, Peter
oder als einzelne Mux: NC7SB3257 klein genug sind sie auch...
Gab es in der Anfangsphase der TTLs mal als AND/OR und AND/OR/INV Gates, Nummernkreis SN7450-55, sind aber wohl ausgestorben.
Peter Roth schrieb: > 3 NAND-Gatter aus einem 74x00 richtig verschaltet. Jau prima Idee, danke. Leider brauche ich das mindestens zwei mal, also sechs Gatter, sodass ich mit einem IC nicht hinkomme. Aber auf jeden Fall besser, da ich dann nur noch einen Typ IC brauche. hp-freund schrieb: > NC7SB3257 Das ist doch genau das Gegenteil von dem was ich will, oder? Und auch da sind die drei Gatter drin, die ich nicht haben will. A. K. schrieb: > Gab es in der Anfangsphase der TTLs mal als AND/OR und AND/OR/INV Gates, > Nummernkreis SN7450-55, sind aber wohl ausgestorben. Danke auch für den Tipp. Aber ich habe nichts Verfügbares in der Richtung gefunden.
Daniel schrieb: > A. K. schrieb: >> Gab es in der Anfangsphase der TTLs mal als AND/OR und AND/OR/INV Gates, >> Nummernkreis SN7450-55, sind aber wohl ausgestorben. > > Danke auch für den Tipp. Aber ich habe nichts Verfügbares in der > Richtung gefunden. Der 74x51 geht ja schon in die richtige Richtung und ist auch noch erhältlich, nur dass sein Ausgang invertiert ist. Kannst du nicht im nachfolgenden Schaltungsteil etwas ändern, damit das nicht mehr stört? Wenn du sonst überhaupt nichts findest und der Platzbedarf höchste Priorität hat, bleibt noch ein GAL.
Oh, vollkommen übersehen, dass jemand geantwortet hat. Ich hatte falsch gesucht und deswegen nichts gefunden... Der 7451 ist in der Tat fast das was ich suche, jedoch leider nur fast ;) Um mal ein wenig Licht in die Sache zu bringen: Ich möchte für nen Freund ne kleine Adapterplatine für eine Art Selbstbaufernbedienung (FB) bauen. Die Platine ist dafür da widerstandscodierte Schalter an die FB anzubinden. Es geht um diese hier: http://www.frank-geier.de/ PDF: http://mitglied.multimania.de/looserschnecke/index/bau/BZ_Bauanleitung_2_01_OS.pdf Schaltplan für den Sender ist auf Seite 10 im PDF. Die Auswertung der Schalter usw. ist alles kein Problem. Das mache ich mit nem attiny um später noch komplexere Schalterfunktionen einprogrammieren zu können. Im ersten Schritt gibt es drei Signale (jeweils eins pro Schalter) die an die FB anzuschließen sind. Die Anschlüsse dafür sind im Schaltplan unten rechts. Zunächst hatte ich überlegt PC2 und PC3 jeweils an einen Interrupt zu hängen und dann die Ausgänge entsprechend zu schalten. Da ich aber nicht weiß wie schnell die FB den Schalterport abfragt, wollte ich auf Nummer sicher gehen und die Logik dazwischenpacken, sodass die Verarbeitung im tiny nicht zeitkritisch ist und ich 100% auf der sicheren Seite bin. An einen GAL/(C)PLD hatte ich auch schon gedacht, jedoch müsste ich mir dann noch die Programmer kaufen, was das ganze teuer machen würde. Oder gibt es da günstige Möglichkeiten? Ich kenne mich da absolut nicht aus... Vorschläge und Hinweise sind immer gerne gesehen ;)
"Bahnhof". Müsste wahrscheinlich erstmal die ganze Doku vor und zurück lesen, vestehen was das eigentlich en detail sein soll (meist fängt eine Doku damit an, die aber nicht), dann versuchen rauszukriegen ob du da mit einem eigenen Selbstbauprojekt ein Selbstbauprojekt von jemand anderem modifizieren willst, oder was auch immer du vorhast. Jedenfalls habe ich von deinem letzten Posting so ungefähr nichts verstanden. Hoffentlich verstehen es die Anderen.
Deine Gatterkombo hilft dir da aber auch nicht weiter, da auch die nicht verhindert, dass du ggf. genau in dem Moment umschaltest, wenn die FB die Schalter ausliest. Das ist aber auch nicht das Problem. Wenn ich das im PDF richtig sehe, dann werden da im Normalfall einfach ganz normale Kippschalter angeschlossen. Logischerweise muss die Firmware der Fernbedienung dann eine Entprellung für die Schalter drin haben. Damit sollte es dann aber nichts ausmachen, wenn ein einzelnes "Sample" beim Umschalten nicht sauber rüberkommt. Du musst nur dafür sorgen, dass der jeweilige Wert mindestens solange stabil anliegt, wie die Entprellung abwartet (ggf. ausprobieren). Das eigentliche Problem ist, dass du das Multiplexing von PORTB auf der Fernbedienung nicht durcheinanderbringen darfst. Die Schalter sind mit den beiden äusseren Anschlüssen an Pinne des Controllers gelegt, damit sie zwischen den Abfragen auf hochohmig geschaltet werden können, um den zentralen Bus auf PORTB nicht zu beeinflussen. Zur Abfrage wird dann entweder PC2 auf high und PC3 auf low oder umgekehrt gelegt, dazwischen werden beide auf Eingang geschaltet. Was du also eigentlich brauchst sind Tristate-Treiber (z.B. 74HC125) an deinen Ausgängen, deren Enable über PC2 oder PC3 von der Fernbedienung bedient werden (welcher der beiden passt musst du mit dem Oszi rausfinden, oder ausprobieren). Ausserdem muss noch ein Pullup (oder Pulldown bei positivem Enable an deinen Treibern) dran, damit die Treiber abschalten, wenn PC2/PC3 auf hochohmig schalten. Und wieder einmal bewahrheitet sich Punkt 3 aus der Netiquette... Andreas
PS: vergiss das mit den Interrupts. Vermutlich wird die Fernbedienung die Schalter höchstens eine handvoll Takte nach dem Schalten von PC2/PC3 abfragen. Selbst wenn dein eigener Controller mit höherem Takt läuft, wirst du die Werte nicht zuverlässig rechtzeitig ausgeben können, zumal du ja erst noch den Port auf Ausgang schalten musst, wegen Tristate. Ausserdem müsstest du auch noch mitbekommen, wenn PC2/PC3 wieder auf hochohmig schalten, um dann sofort auch deinen Port wieder auf Eingang zu schalten. Letzteres ist erst recht unmöglich. Allenfalls könntest du das Abschalten der Treiber als Interrupt nehmen, um dann den nächsten Wert auszugeben, da du dann etwas länger Zeit hast, während die Fernbedienung mit ihren anderen Schaltern, dem LCD etc. beschäftigt ist. Andreas
Ui, ich dachte ich bringe mit meinem Posting etwas mehr Klarheit in die Sache. Scheinbar extrem falsch gedacht. Von daher Entschuldigung. Bin wohl zu sehr im Thema drin... Dann versuche ich mal ein wenig mehr Licht ins Dunkel zu bringen. Im Normalfall ist an jedem "Dreierstecker" ein Umschalter dran, der vom mittleren Pin zu einem der äußeren Pins herstellt. In der Anleitung steht soweit ich gelesen habe nichts überraschendes drin. Den Schaltplan interpretiere ich wie folgt. Zum Abfragen der Schalter macht der Controller folgendes: 1. Enable vom Display auf low (Display nimmt keine Befehle an) 2. PC2 auf high 3. Port B abfragen 4. PC2 auf low 5. PC3 auf high 6. Port B abfragen 7. PC3 auf low Ein Bild sagt ja mehr als tausend Worte. Ich hoffe auch bei mir... So wie im angehangenen Bild sehen ungefähr meine Gedanken aus. Das war der Grund für die eigentliche Frage, denn so müsste es ja vom Prinzip einwandfrei funktionieren. Fehlen natürlich noch der ein oder andere Schutzwiderstand. Wenn man dann das obige durchgeht, schalten aus Sicht der Fernbedienung die Gatter wie ein normaler Schalter es tun würde die mittleren Pins nur auf high wenn PC2 oder PC3 auf high sind und der tiny die entsprechenden Ausgänge auf high hat. Das mit dem Umschalten usw. sollte damit kein Problem sein. "Mein" Teil verhält sich gegenüber der Fernbedienung ja wie ein ganz normaler Schalter und den kann man ja auch zu jeder beliebigen Zeit umschalten. Ob beide Positionen gleichzeitig eingeschaltet sein dürfen muss man noch prüfen, aber das kann man ja notfalls per Software abfangen. Andreas Ferber schrieb: > PS: vergiss das mit den Interrupts. Vermutlich wird die Fernbedienung > die Schalter höchstens eine handvoll Takte nach dem Schalten von PC2/PC3 > abfragen. Selbst wenn dein eigener Controller mit höherem Takt läuft, > wirst du die Werte nicht zuverlässig rechtzeitig ausgeben können, zumal > du ja erst noch den Port auf Ausgang schalten musst, wegen Tristate. > Ausserdem müsstest du auch noch mitbekommen, wenn PC2/PC3 wieder auf > hochohmig schalten, um dann sofort auch deinen Port wieder auf Eingang > zu schalten. Letzteres ist erst recht unmöglich. Das habe ich mir auch gedacht, dass das zeitlich wahrscheinlich nicht hinhauen wird. Wegen der Dioden könnte ich jedoch die Pins am Controller ständig auf Ausgang stehen lassen. Es müssen nur alle low sein, solange PC2/PC3 low sind, damit nicht in den Bus reingefuscht wird. Bei Pin Change auf PC2/PC3 nach high müsste ich die jeweiligen Werte auf den Port laden und wenns wieder nach low geht wieder alles auf low setzen. Mit Assembler sollte das mit 2 Takten gehen(einer um in den Interrupt zu springen, einer um den Port zu setzen). Jedoch habe ich kein Bock auf Assembler und außerdem ist mir das wie gesagt zu unsicher. So, ich hoffe dass das jetzt ein wenig klarer ist. Funktioniert das so wie ich das auf dem Bild gezeichnet habe oder ist da noch ein grober Schnitzer drin? Ich sehe nämlich nichts was dagegen spricht. Falls noch was unklar ist, bescheid sagen, dann versuche ich das zu erklären. Besten Dank für die Geduld Daniel
> Den Schaltplan interpretiere ich wie folgt.... > 5. Port B abfragen Das ist schlecht, denn der Port B kann als Eingang entweder nur Pullups haben oder hochohmig sein. Beides wäre für eine zuverlässige Abfrage schlecht, denn wegen der Dioden ist ja kein definierter Low-Pegel an den Eingangspin zu bekommen. Ich würde das anders machen: 1. Enable vom Display auf low (Display nimmt keine Befehle an) 2. Port C auf Eingang mit Pullup 3. Port B0 auf low 4. Pins C3..0 abfragen 5. Port B1 auf low 6. Pins C3..0 abfragen 5. Port B2 auf low 6. Pins C3..0 abfragen : : Dann passt allerdings deine Schaltung nicht, weil die Signalrichtung schon nicht stimmt :-o Warum nimmst du nicht einfach Analogschalter CD4066 o.ä.?
Moin, dass die Abfrage andersrum ist, habe ich auch schon gedacht. Jedoch wären dann die Dioden falsch rum. Die geben ja die Richtung vor, also kann das nicht sein. Normalerweise müssten daher am kompletten PortB Pulldowns dran. Scheinbar funktioniert das zufällig richtig, da die Pins ja in der Luft hängen. Das ist jedoch nicht der einzige Fehler. Der Reset ist lustigerweise komplett unbeschaltet... Wobei, das könnte gehen, wenn man RSTDISBL setzt... Habe leider keine Platine hier. Von daher kann ich momentan nicht sagen wie das in echt aussieht. Vielleicht kriege ich aber heute noch eine, dann werde ich berichten. Gruß Daniel
> dass die Abfrage andersrum ist, habe ich auch schon gedacht. Jedoch > wären dann die Dioden falsch rum. Nein, mach mal Schritt für Schritt durch, was ich geschreiben habe. Da gibt es nirgends undefinierte Pegel: Port C3..0 sind Eingänge mit Pullups. Port B ist Ausgang. Immer nur 1 Pin von Port B ist Low, die anderen sind High. Eine gedrückte Taste zieht über die Diode den entsprechenden Pin C auf Low.
Ja, ich lese schon das was ich will. So geht es natürlich und das ohne undefinierte Pegel... Ich glaube ich höre jetzt erstmal auf zu spekulieren und warte bis ich die Platine habe...
>Das ist jedoch nicht der einzige Fehler. Der Reset ist lustigerweise >komplett unbeschaltet... Wobei, das könnte gehen, wenn man RSTDISBL >setzt... Der Rest braucht auch nicht angeschlossen sein. Die AVR haben (fast) alle einen internen Power-On-Reset. Es gibt auf dem Chip einen Pullup Widerstand, der den RESET Pin mit VCC verbindet. Deshalb ist eine Beschaltung des Reset unnötig. Einfach mal das Datenblatt lesen ... Eigentlich wird der Reset Pin nur dann extern beschaltet, wenn man ISP machen möchte, den Chip aus irgendwelchen Gründen mit einer externen Schaltung Resetten möchte oder eine größere Sicherheit gegen EMV Störungen erreichen möchte. Wenn du RSTDISBL setzt, dann kanst du den Chip nicht mehr per ISP Programmieren. Das ist in den meisten Fällen sehr schlecht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.