Forum: Mikrocontroller und Digitale Elektronik Addressbus Latch


von Martin (Gast)


Lesenswert?

Hallo,

ich möchte gern drei Platinen erstellen, die die selbe Ausstattung 
aufweisen.
Über den Address- und Datenbus des µC sollen jetzt die entsprechenden 
Daten geschickt werden - nacheinander werden die Daten für die erste, 
zweite und dritte Platine übertragen. Auf jeder der drei Platinen 
befindet sich zu Beginn ein Latch in dem die Daten zwischengespeichert 
werden, die vom Datenbus ankommen und für die jeweilige Platine bestimmt 
sind. Mit dem Addressubs hab ich aber noch meine Probleme bei der 
Realisierung.

Ziel ist es, dass die drei Platinen wirklich identisch sind, d.h. 
gegeneinander ausgetauscht werden können. Wenn ich jedoch einen 
3-to-8-Decoder verwende ist dies nicht der Fall, da bei jeder dieser 
drei Platinen natürlich ein anderer Ausgang mit dem Latch verbunden 
werden muss.

Welche Möglichkeiten gibt es noch?

Martin

von Klaus F. (kfalser)


Lesenswert?

- Für jede der 3 Karten ein getrenntes CS-Signal (Chip select) auf der 
Backplane zum selektieren.
- Jede Karte bekommt einen Jumper der für jeder Karte unterschiedlich 
gesetzt wird.
- Jede Karte liest von der Backplane 2 Pins ein, welche die Karte 
identizieren und konfigurieren.

Klaus

von Matthias (Gast)


Lesenswert?

Wie wäre es mit dem SPI bus?, der ist zwar seriell, das prinzip könnte 
aber auch auf 8bit aufgeweitet werden:

Master              Karte1             Karte2              Karte3
 => ------------------X-----------------X--------------------X-----o
                                                                   |
 <= ---------------------------------------------------------------o

X: Schieberegister zB 74xx595
Annahme: jede karte benötigt 1Byte eingang(vom µC zur Karte)
    und 1Byte Ausgang (von der Karte zum µC)

schiebt jetzt der µC der reihe nach Byte 1,2,3 heraus, so landet byte in 
der karte3, byte2 in der karte2 und byte3 in der kart1. und die bytes, 
die vorher im srg (also in der karte im schiebereg) waren, landen im µC

Somit landet immer das Byte, was zuerst gesendet wird an der "letzten" 
karte (die die am weitesten weg ist) usw. es bestimmt also die 
"steckreihenfolge" über die "adresse"

möchtest du daten explizit einer karte zuordnen, egal wo sie steckt, 
musst du mit adressen(schaltern) arbeiten, siehe Beitrag  Klaus Falser

von Martin (Gast)


Lesenswert?

danke für die sehr interessanten beiträge....

Martin

von Martin (Gast)


Lesenswert?

hab jetzt mal die Lösung mit dem Dip-Schalter umgesetzt... noch eine 
Frage hab ich aber, nachdem es sich um 3 Platinen handelt besitzt jeder 
Dip-Schalter drei Schalter... jetzt kann es passieren, dass zwei 
Dip-Schalter die gleiche Konfiguration aufweisen (sprich die gleiche 
Einstellung haben)...

welche Möglichkeit habe ich, dass im µC erkennen zu können? So dass ich 
den User drauf hinweisen kann...

Martin

von Matthias (Gast)


Lesenswert?

Zur Adressierung von drei Karten benötigt man nur zwei Schalter.

Ja, auf Anhieb fällt mir da nur ein, dass du das über das Erkennen von 
Kolissionen auf dem Bus machen musst. Wüsste sonst auch nicht wie..

von Falk (Gast)


Lesenswert?

@ Martin (Gast)

>hab jetzt mal die Lösung mit dem Dip-Schalter umgesetzt... noch eine


Hmm. Ich würde nochmal über die Lösung von Klaus via Backplane 
nachdenken. Deine drei Karten stecken ja in einer Art 
Motherboard/Backplane. Dort kannst du problemlos und ohne DIP-Schalter 
jedem Steckplatz eine individuelles Chip-Select Signal zur Verfügung 
stellen. Plug&Play. DIP-Schalter sind out, Gott sei Dank.

MFG
Falk

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.