Forum: Mikrocontroller und Digitale Elektronik Mehrere Schieberegister an SPI Bus über 74HCT259 auswählen


von Neb N. (bluemorph)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe ein Problem mit dem oben genannten IC (... 259). Das IC soll 
angeblich ein Multiplexer, ein adressierbares Latch und ein normaler 
Speicher sein. Ich hab das Datenblatt mit in den Anhang gepackt.

Also nun zu meinem Problem. Ich möchte mit der SPI Schnittstelle des 
8051 (AT89C5131) mehrere Schieberegister über das 74HCT259 ansteuern. 
Das Latch verfügt über 8 Ausgänge, von denen ich 3 nutzen möchte. An 
diese Ausänge sollen Schieberegister angeschlossen werden. Ein 
Schieberegister (Seriel in, parallel out)ist für ein DA - Wandler, die 
anderen beiden jeweils für eine 7-Segment-Anzeige.

Nun habe ich mit Hilfe der Steuereingänge des 74HCT259 den ersten 
Ausgang ausgewählt, an den der DA - Wandler angeschlossen ist. Ich sende 
die Daten über den SPI Bus. Der DA - Wandler stellt die gewünschte 
Spannung ein. Nun möchte ich den nächsten Ausgang einschalten und wähle 
in durch die Steuereingänge an. Jetzt passiert folgendes, die erste 
Siebensegmentanzeige zeigt den richtigen Wert an (der ja über den SPI 
Bus übermittelt worden ist) und der Ausgang des DA Wandlers folgt ebenso 
dem gesendeten Datenwort.

Ich bin nun davon ausgegangen, dass der 74HCT259 im "adressierbaren 
Latchmodus" einfach den nächsten Ausgang anschaltet, die vorher belegten 
Ausgänge jedoch einfach so belässt. Anscheinend ist dem aber nicht so. 
Vielleicht habe ich das Datenblatt ja auch falsch verstanden.

Ich habe euch eine kleine Zeichnung mit SwitcherCad gemacht und mein 
betreffenden Programmcode auch noch in den Anhang gepackt.

Ich hoffe ihr könnt mir helfen. MFG BlueMorph

von Michael U. (amiga)


Lesenswert?

Hallo,

was machst Du mit SCLK? Das ist doch das interessante dabei.
Die Daten können ja auch an allen Schieberegistern anliegen, solange nur 
das ausgewählte den Takt bekommt.

Gruß aus Berlin
Michael

von Bensch (Gast)


Lesenswert?

Der 259 ist ein schöner Baustein, aber für diesen Zweck wäre vielleicht 
ein 139 besser geeignet, oder?

von Peter D. (peda)


Lesenswert?

Benny Nestler wrote:

> diese Ausänge sollen Schieberegister angeschlossen werden. Ein
> Schieberegister (Seriel in, parallel out)ist für ein DA - Wandler, die
> anderen beiden jeweils für eine 7-Segment-Anzeige.


Warum schaltest Du nicht einfach alle 3 74HC595 hintereinander und gibst 
immer 3 Bytes aus?

Bzw. nimm auch gleich einen seriellen DA-Wandler.


Peter

von Kobaltchlorid (Gast)


Lesenswert?

Ich schliesse mich Michael an. Du solltest die Taktleitung multiplexen 
und die Datenleitung parallel an alle Schieberegister anlegen. Solange 
die Taktleitung den Pegel nicht wechselt, ist dem Schieberegister die 
Datenleitung völlig egal.

Was hat dich ausserdem gerade zum 74HCT259 bewogen? Du brauchst doch 
bloss einen Multiplexer und kein Latch. Ich hätte eher den 74HC4051 
genommen und je einen Pull-Down-(Pull-Up*)Widerstand an die Takteingänge 
der Schieberegister angeschlossen.

*Pull-Up oder Pull-Down je nach Ruhezustand der Taktleitung, abhängig 
vom SPI-Modus bzw. dem Schieberegister.

von Neb N. (bluemorph)


Lesenswert?

@Kobaltchlorid und @Michael

okay, dann versuch ich erstmal den Baustein wie ein Demultiplexer zu 
betreiben und dann einfach den Takt zu multiplexen. Das ist ne gute 
Idee! Und Mosi schließe ich einfach parallel an jedes Schieberegister 
an. Ich hoffe so klappt das! Ich mach mich gleich dran!

@Peter Dannegger
leider gab es bei Conrad in Hannover nur dieses DAC sonst hätte ich 
einen mit seriellem Eingang genommen!

Also danke erstmal!
MFG BlueMorph

von Peter D. (peda)


Lesenswert?

Benny Nestler wrote:
> okay, dann versuch ich erstmal den Baustein wie ein Demultiplexer zu
> betreiben und dann einfach den Takt zu multiplexen.

Die Frage bleibt, warum nicht einfach alle in Reihe?

Was ist der Reiz daran, noch nen zusätzlichen IC und einige IO-Pin mehr 
zu benutzen.


Peter

von Neb N. (bluemorph)


Lesenswert?

Das wäre wahrscheinlich die einfachste Variante. Für einen Anfänger aber 
wahrscheinlich nicht die ersichtlichste smile. Genau wie die Sache mit 
dem Takt, den man besser multiplexen sollte als die MOSI Leitung.

Klappt jetzt alles wunderbar!! Ich danke euch!!

von Peter D. (peda)


Lesenswert?

Benny Nestler wrote:
> Das wäre wahrscheinlich die einfachste Variante. Für einen Anfänger aber
> wahrscheinlich nicht die ersichtlichste smile.

Wenn man vorher etwas googled, dann schon:

http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
http://www.mikrocontroller.net/articles/Porterweiterungen


Mit Multiplexern habe ich dagegen nichts gefunden.


Peter

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.