Die Sparschweinschaltung - Pins am Prozessor sparen
und zum Abschluß eine kleine Schaltung die auch gerne zu Kopfzerbrechen
führt ...
Ich habe sie hier mit dem 74595 aus der guten alten 74er-Serie aufgebaut.
Mit einem 74HCT595 verkraftet die Schaltung immerhin locker über 30MHz.
Also hier erst einmal das Datenblatt ...
Anhang anzeigen 74_HCT_595_8Bit-SerInParOut-Latch.pdf
Ich mag dieses IC lieber als den vergleichbarfen Typ aus der
40/45er-CMOS-Reihe (siehe auch hier das Datenblatt) ...
Anhang anzeigen HEF4094B_BusRegister.pdf
da die Anschlüsse sehr gut sortiert sind. Wenn man einen ULN2803 oder
UDN2981 mit seinen Eingängen zu den Ausgängen des 74595 dreht dann
muß man die Pins nur noch einen nach dem anderen miteinander Verbinden
und hat im Layout keine Leiterbahnverknotungen
Aber zum besseren Verständnis des internen Aufbaus erst einmal zwei
Bilder aus dem Datenblatt ...
Wie man im linken Bild sieht, besteht der Baustein aus einem
8-Bit-Schieberegister, einem 8-Bit Latch (Zwischenspeicher) und einem
8-Bit Ausgangstreiber den man auch hochohmig (Tri-State) schalten kann.
Das ganze Funktionsprinzip eines Bausteins ist im Grunde recht einfach ..
Man stelle sich eine Eimerketten-Manschaft von der Feuerwehr vor.
Jetzt reicht jemand abwechselnd leere (0) und volle (1) Eimer an diese
Mannschaft und die befördert die Eimer dann Schritt für Schritt weiter.
Das ist im Grunde das Prinzip eines Schieberegisters. Die leeren und vollen
Eimer wandern also als Bits (0/1) von einem Feuerwehrmann (FlipFlop im
Schieberegister) zum nächsten. Und wenn man das jetzt noch mit einer
Trommel (wie in einer Galeere) synchronisiert dann hat man ein
Schieberegister mit Takteingang
Wenn man jetzt das Latch dazunimmt ist es auch nicht komplizierter.
Man stelle sich vor, man hat jetzt 8 Eimer in diese Manschaft eingeschoben.
Wenn man jetzt einen Impuls auf das Latch gibt, dann stellen alle
Feuerwehrmänner auf einmal Ihre Eimer vor sich auf einen Tisch.
Wenn man es genauso machen würde wie in dem Baustein müßten sie
eigentlich eine Kopie des Eimers auf den Tisch stellen (grins).
Nun sind also die Eimer auf dem Tisch (im Latch) gespeichert.
Wenn man jetzt weitere Eimer in die Manschaft einschiebt, dann ändert
sich an den Eimern auf dem Tisch (Latch) so lange nicht bis man wieder
den Speicher-Impuls gibt.
Der Ausgangstreiber gibt die Informationen aus dem Latch eigentlich nur
direkt weiter (wenn man in läßt). Sonst ist der Ausgang hochohmig.
Ich habe jetzt einfach mal zwei dieser Bausteine miteinander verbunden
und einen kleinen Schaltplan davon gekritzelt ...
Beim ersten Baustein habe ich mal eine Anzeige mit gemeinsamer Kathode und
einer LED pro Segment angeschlossen. Beim zweiten Baustein habe ich wie
vorher schon erklärt eine ULN2803 als Treiber angeschlossen um auch eine
Anzeige mit 4 LEDs pro Segment zum leuchten zu bringen. Hier ist die
Anzeige mit gemeinsamer Anode.
Links oben sind die drei Leitungen zum Prozessor zu sehen. Die Steuerung
ist recht einfach über Software umzusetzen.
Man legt z.B. eine 0 bei den Daten an und erzeugt am Takt eine positive
Flanke. Damit ist die 0 in das erste FlipFlop des Schieberegisters gelangt
(der erste Feuerwehrmann hat den Eimer angenommen). Das geht natürlich
auch mit einer 1 am Datenanschluß. Die wird auch mit einer positiven Flanke
am Takt in das erste FlipFlop übernommen. Gleichzeitig wandert die vorher
übernommene 0 um eine Position weiter. Wie bei der Eimerkette. Wenn wir
jetzt auf diese Art genügend Einsen und Nullen bis zum letzten Baustein
eingeschoben haben (in unserem Fall sind es 16 Bit) dann geben wir auf
den Latch-Anschluß eine positive Flanke und schon haben unsere 16
Feuerwehrmänner die Eimer auf unseren Tisch (das Latch) kopiert
Entsprechend den vorher eingeschobenen Bits leuchten jetzt manche
LEDs und manche nicht.
Die Bits sind jetzt im Latch gespeichert und bleiben für die LEDs so lange dort
bis wir eine neue positive Flanke auf dem Latch-Anschluß erzeugen würden.
Wir können also im Hintergrund ohne das sich an den LEDs was ändert schon
die nächsten 16 Bit einschieben. Erst wenn wir nun wieder die Flanke für das
Latch erzeugen werden unsere eingeschobenen Bits durch die LEDs sichtbar.
So, das war es erst mal mit dieser FAQ. Ich hoffe mal, ich konnte einige
Sachen erklären und einige Leute verwirren
Gruß
Dino