Hallo Leute,
Ich habe hier im Forum diverse Schaltungen mit dem Schieberegister 4094
gefunden, und da ich selbst gerade mit dem guten Stück arbeite, hab ich
mir gedacht, vielleicht finde ich hier ja hilfe.
Also, ich habe ein Projekt am Laufen, dass mich sicher noch ewig viel
Zeit kosten wird, aber das ist erstmal egal. Ich würde gerne ähnlich dem
Little-Lights-Projekt ( www.littlelights.de ) ein einfaches, monochromes
LED-"Display" aufbauen. Nun habe ich weder Ahnung von C oder ASM, noch
von den Controllern, die hier so vorgestellt werden. Zwar habe ich vor,
mich damit zu beschäftigen, würde aber gerne erst einmal die Schaltung
ganz ganz einfach, ohne Computer oder Controller antreiben, in dem ich
mit Taktgebern und Schaltern(man kann also die Anzeige auf das Display
"morsen") die Register ansteuere. Ich stelle mir das ganze also so vor,
wie der Schaltplan im Anhang zeigt. Das blöde an diesem Schaltplan ist:
er funktioniert nicht. Ich habe erstmal zum Zwecke der Vereinfachung das
flackern ignoriert, was durch das nichtansteuern des Strobes entsteht
ignoriert, ich habe die LEDs mit 5V betrieben, d.H. sie leuchten nicht
hell, sie brauchen keine Vorwiderstände und sie halten die vom
Datenblatt vorgegebene Spannung ein, wenn man den IC mit 5V betreibt(
ist das eventuell nicht genug? Ich habe hier irgendwo angaben mit
wesentlich höherer Spannung gelesen...)
Eigentlich müsste diese Schaltung doch wenigstens dahingehend
funktionieren, dass die Dioden zu Anfang leuchten(wenn der IC nur mit
den Dioden, Vdd und Vcc verbunden ist, und die Inputs mal vollkommen
außer acht gelassen werden) oder? Oder liegt der Sache ein grundlegender
Fehler zugrunde? Was bei mir passiert, wenn ich diese Schaltung aufbaue,
ist etwas enttäuschen, nämlich NICHTS, überhaupt nichts. Aber genau so
wenig passiert, wenn ich die Dioden andersrum mit dem Register verbinde
und die Kathoden mit Masse verbinde. Das würde doch eigentlich bedeuten,
dass die Dioden nur leuchten, wenn die Ausgänge der Register auf Logisch
1 liegen oder? Ich für meinen Fall weis nicht mehr weiter, ans
Datenblatt hab ich mich zumindest vollständig gehalten...
Danke schonmal im Vorraus
Schandmaul
Hallo,
versuche mal zwischen den Schaltern und den D- und CLK-Leitungen einem
Pull-Down (Widerstand nach Masse) von 4.7K-Ohm einzubauen. Offene CMOS
Eingänge verhalten sich wie Antennen und fangen alles mögliche an
Störsignalen ein.
Die Vorwiderstände in den LED-Zweigen sind unbedingt notwendig. Eine LED
versucht, die Duchlass-Spannung konstant zu halten (ähnlich einer
Zener-Diode). Diese Spannung hängt von der Farbe ab und liegt zwischen
ca. 1.5 und 3V.
Ohne Vorwiderstand beaufschlagst Du die LEDs aber mit 5V (vom
Spannungsabfall in den Ausgangsstufen des 4094 mal abgesehen). Die
Konsequenz ist, daß der Strom durch die LEDs zu stark ist und entweder
die LEDs oder die Ausgangstreiber im Chip die Grätsche machen. Je nach
dem wer der Schwächere ist.
Gruß Bernd
mit 5V sollte man eigentlich so gut wie jede LED killen können. Wenn du
auf Widerstände verzichten tust, fang mal mit einer niedrigeren Spannung
an. z.B. 2V aber aus einem Konstantspannungsnetzteil, alles andere wird
eine zu hohe Leerlaufspannung liefern und die LEDs wieder killen.
Du wirst aber noch ein ganz andere Problem haben und zwar wird dein
schalter prellen das heist einmal Takten erzeugt vielleicht 50 Takte du
musst den Taktschalter also entprellen.
Bei 5V muss man wegen der Kurzschlussströme eines 4000er CMOS IC nicht
in Panik verfallen. Das Ding schafft laut Datenblatt gerade mal 1 LS TTL
(!) Last. Vorwiderstände wären also eher kosmetischer Natur.
Dein wirkliches Problem liegt aber daran das du die Funktion des IC
nicht verstanden hast. Bei OE an Masse schaltet das IC seine Ausgänge
ab. Das müsste also an die Stromversorgung gelegt werden.
Für Tests kannst du den Dateneingang auf Masse schalten. Außerdem müsste
noch ein Taster an den Strobe (=Datenübernahme) Eingang.
Pulldown-Widerstände sind auch Pflicht.
Kommt ganz auf den Typ des 4094 an:
Ich weiß jetzt nicht, wie gut das für den IC ist, aber die LEDs sollten
an nem CD4094 überleben.
Ganz anders sieht es aber bei einem HC/HCT4094 aus, da braucht man
unbedingt Vorwiderstände, sonst zünden dessen parasitäre Thyristoren.
Außerdem brauchen CMOS-Eingänge immer ein Signal und ein offener Draht
ist keins. Du brauchst also Pulldowns (z.B. 10k) an den Tasten.
Trotzdem wird nichts funktionieren, da Taster prellen.
Du brauchst also noch eine Entprellung, z.B. Tiefpaß mit ST (100k/100nF
und 1/6 HC14).
Peter
Okay, vielen Dank schonmal an alle die gepostet haben.
Also, ich habe folgendes erstmal verändert:
1. Pulldown eingebaut.
3. für die Versorgung der Dioden einen Spannungsteiler eingebaut, sodass
die Versorgungsspannung jetzt bei 2,5 V liegt, das sollte doch
unbedenklich sein(ist schaltungstechnisch einfach viel einfacher als vor
jede Diode nen Vorwiderstand zu löten...)
4. OE an Plus(hatte ich doch auf dem Schaltplan so !?)
Für den nächsten Versuch werde ich mal neue Dioden und auch ein neues
Register nehmen, für den Fall, dass ich es wirklich verbraten habe. Aber
ich will erst einmal dafür sorgen, dass es in der Theorie vollständig
richtig ist, also noch eins:
Was mir überhaupt nichts sagt: Was bedeutet "Taster entprellen" ? Bzw.
was muss ich dafür tun?
Danke,
Schandmaul
p. s.: sorry, ich bin nicht der beste im Schaltplan-Zeichnen ;)
Ah, ok, ich habe den letzten beitrag noch nicht gelesen gehabt, als ich
meinen gepostet habe, tut mir leid. Also für jeden der Taster noch einen
Tiefpass. Was bei einem Tiefpass die Phrase "1/6 HC14" bedeutet, ist mir
nicht ganz klar...
Ich habe einen HCT, also sind die Vorwiderstände angebracht.
Ansonsten Danke schonmal, ich werde das Ding morgen früh mal
zusammenbasteln(komme für heute abend nicht mehr vom Schreibtisch weg)
und mal hoffen, dass es funktioniert ;)
MfG
Schandmaul
>3. für die Versorgung der Dioden einen Spannungsteiler eingebaut, sodass>die Versorgungsspannung jetzt bei 2,5 V liegt, das sollte doch>unbedenklich sein(ist schaltungstechnisch einfach viel einfacher als vor>jede Diode nen Vorwiderstand zu löten...)
Das kannst du in die Tonne schmeissen.
Ein Vorwiderstand pro LED oder vergiss es.
Schandmaul wrote:
> Tiefpass. Was bei einem Tiefpass die Phrase "1/6 HC14" bedeutet, ist mir> nicht ganz klar...
Der HC14 ist ein 6-fach Schmitt-Trigger, also pro Taste 1/6-el davon.
Peter
Okay, ich gebe mich geschlagen und gebe jeder Diode ihren eigenen
Vorwiderstand.
Dann ist da nur noch der HC14 den habe ich zumindest nicht, d. H. ich
werde mich wohl auch noch auf den Weg zum nächstgelegenen Conrad machen,
um daran weiterarbeiten zu können.
Wird also vielleicht doch nicht morgen schon aufgebaut...
Stimmt davon abgesehen der Schalplan jetzt soweit, oder sieht noch
jemand ein Problem?
MfG
Schandmaul
Mir ist da gerade noch eine Idee gekommen, wie man die Entprellschaltung
anders realisieren könnte, und zwar so, dass ich sie auch mit den
Bauteilen realisieren kann, die ich gerade da habe. Der Nachteil dieser
Schaltung ist zwar, dass ich damit zwei Taktsignale nur mit einem
Zeitlichen Abstand geben kann, aber das dürfte bei der Vorgeschlagenen
Schaltung mit Tiefpass und Schmitt-Trigger ja nicht anders sein oder
seh' ich da was falsch? Zumal sich bei 100nF diese Zeitspanne doch sehr
in Grenzen halten dürfte...
Ist halt Schalttechnisch noch etwas komplizierter und ich weis nicht, ob
dieser zusammenimprovisierte Inverter funktionieren wird, aber wenn
wär's für mich halt viel einfacher das aufzubauen, anstatt mir noch
weitere Bauteile kaufen zu müssen...
Was meint ihr, kann das so funktionieren/warum nicht? (Ich will ja auch
was lernen ;) )
MfG
Schandmaul
ich habe für ein Lauflichtband einfach mehrere 74HC573 Latches parallel
geschaltet die können die LEDs problemlos treiben. Das kannst du auch
mit einem größeren DIP-Array Schalter per Hand testen. Außerdem kann man
hier einzelne LEDs ein/ausschalten, bei einem größerem Schieberegister
oder mehreren in Reihe muss man erst wieder alles durchschieben.
Wenn du einen Spannungsteiler in die Stromversorgung hängst sollte der
nicht zu hochohmig sein.
Interessante Sache...hast du Zufällig einen Schaltplan parat?^^
Das ist zwar auch etwas, was ich mal realisieren möchte, aber es kommt
nicht dem gleich, was ich hier vor habe. Hier geht es wirklich mehr um
die steuerung von den ganzen LEDs auf basis von möglichst wenigen
Schaltern bzw. später vielleicht mal PINs eines Controllers / Computers.
Trozdem vielen Dank für die Vorführung.^^
MfG
Schandmaul
p.s.: Ist nicht beim Spannungsteiler ein Verhältnis von 1:10 zwischen
Teilerwiderständen und der "Nutzlast" sinnvoll? Aber egal, den werde ich
ja nun doch nicht einsetzen.
nen Schaltplan habe ich nicht gezeichnet. Aber hier eine kurze
Erleuterung zur Funktion der Latch hat 8 Ein und gegenüber 8 Ausgänge.
Man kann seine Daten an die Eingänge des Latches(und beliebige viele
Latches parallel anschließen) geben und mit dem einen Signal an
Steuereingang1 sagt man ihm übernehme sie. Das macht man dann mit jedem
Latch und am Schluß gibt man an den anderen Steuereingang2 ein Signal
womit der Latch den gespeicherten Wert auf die Ausgänge gibt. Dafür wird
also nur 1 Pin des µC verwendet und an alle Latches gegeben. Und dann
braucht man noch je Latches einen Pin für dieses "Steuersignal1" oder
man nimmt einen "Binär-Dezimalwandler" so kann man mit 3 Pins 8 Latches
getrennt ansteuern oder mit 4 Pins 16 Latches....
Die Schaltung mit dem HC14 ist schon ok. Du kannst dir damit für Tests
auch sehr einfach einen Takt erzeugen. Die restlichen Eingänge des HC14
sollten aber an einem definierten Pegel liegen.
Der 4094 hat den Vorteil das man ihn sehr einfach kaskadiern kann. Du
kannst sie über den Qs* Ausgang koppeln und musst dann einfach nur mehr
Daten hineinschieben. Dabei kannst du dir beliebig Zeit lassen, es ist
möglich alle Ausgänge gleichzeitig mit einem Strobe-Impuls umzuschalten.
Beim 74HC573 braucht man immer ein weiteres Pin und muss den Bus
verlängern.
Naja klar, dass die Schaltung funktioniert wage ich ja nicht zu
bezweifeln, aber ich habe halt den HC14 nicht, und habe einfach
überlegt, ob ich das Ding nicht auch aufbauen kann, ohne mir noch einen
neuen IC zu kaufen. Aber wenn du sagst, dass es wahrscheinlich so wie
ich es oben beschrieben habe nicht funktionieren wird, muss ich wohl
losmarschieren und mir den HC14 doch kaufen.
Was anderes: Definierter Pegel heißt welche Ausmaße? Und mit welchem
Hintergrund macht man das, was bewirkt es bzw. warum ist es nötig?
Ja, die Sache mit der Kaskadierung ist genau der Grund, weswegen ich
dieses Register habe.
An Thomas O:
Was für Latches hast du für die Schaltung verwendet und noch eine blanke
Verständnisfrage:
Du gibst an jeden Eingang des Latches(ich geh' mal einfach von nur einem
einzigen Latch aus, um die Sache simpel zu halten) ein Signal und
gleichzeitig schickst du am Steuereingang 1 einen Impuls durch, der die
Daten aus den 8 eingängen ins latch übernimmt, und dann schickst du auf
dem Steuereingang2 noch das Signal durch, dass die Outputs
"einschaltet"...da brauchst du doch 10 Ausgänge vom Controller? 2x für
die Steuersignale und 8 für die eingänge...und das möchte ich ja genau
vermeiden...
Oder habe ich das Prinzip nur falsch verstanden?
MfG
Schandmaul
ja genau aber an die 8 Ausgänge kannst du mehrere Latches parallel
hängen, stell es dir so vor als würdest du sie Huckepack stecken. Das
eine Steuersignal um die Ausgänge zu aktivieren wird ebenfalls auf alle
Latches parallel gelegt. Nur das eine Steuersignal muss man getrennt pro
Latch übertragen damit man praktisch das Latches anspricht das die Daten
übernehmen soll. Man braucht im Endeffekt mehr Leitungen aber angenommen
du hast 5 8bit Schieberegister hintereinander und willst das 40 Bit
ändern dann musst du hallt alle 40 Bits neu durchschieben bei
ausgefalleren Mustern bist du ständig am schieben.
Bei soetwas ist es noch nicht so schlimm
0000000000000000000000000000000
1000000000000000000000000000000
0100000000000000000000000000000
0010000000000000000000000000000
aber wenn du dann soetwas machen willst muss jedesmal das komplette
Muster durchgeschoben werden
1000000000000000000000000000001
0100000000000000000000000000010
0010000000000000000000000000100
0001000000000000000000000001000
...
0010000000000000000000000000100
0100000000000000000000000000010
1000000000000000000000000000001
> Was anderes: Definierter Pegel heißt welche Ausmaße? Und mit welchem> Hintergrund macht man das, was bewirkt es bzw. warum ist es nötig?
Die unbenutzten Eingänge einfach an die Versorgungsspannung oder Masse
anschließen. Offene Eingänge sind sehr hochohmig und können irgendwelche
Ladungen einfangen und pegelmäßig "floaten". Dabei passieren dann
komische Dinge - von undefinierbaren Fehlfunktionen bis zur spontanen
Selbstzerstörung ;).
Thomas O. wrote:
> Man braucht im Endeffekt mehr Leitungen aber angenommen> du hast 5 8bit Schieberegister hintereinander und willst das 40 Bit> ändern dann musst du hallt alle 40 Bits neu durchschieben bei> ausgefalleren Mustern bist du ständig am schieben.
Bei 1MHz SPI-Takt sind das 40µs.
Da mußt Du also im Gegenteil noch massig Delays mit einbauen, denn ein
40µs-Bild kann kein menschliches Auge erfassen.
Ich lasse daher lieber die CPU 0,1% mehr ackern, als mir beim Layouten
die Finger zu verknoten.
Peter