Mehrere Schieberegister an SPI Bus über 74HCT259 auswählen

OP #1078999
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
Angehängte Dateien:
#1079037
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
Gast #1079055
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.
OP #1079071
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
#1079202
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
#1079473
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren