Forum: Mikrocontroller und Digitale Elektronik Adressdecodierung


von Michael S. (michael_s491)


Lesenswert?

Hallo zusammen,

ich habe vor einen Bus für den Slaveselect am SPI zu bauen.
Der Bus soll 8bit breit sein um damit bis zu 256 Teilnehmer auswählen zu 
können. Pro Decoder hätte ich gern 8 Teilnehmer, also ein IC mit 
mindestens 20 Pins (8 Bus,8 Teilnehmer, 2 Spannungsversorgung).

Jetzt ist die Frage auf welche Technologie ich setzen soll.
EEPROM, GAL, CPLD oder uC?
Hat schon mal jemad so eine Aufgabe in letzter Zeit abgeschlossen und 
kann mir eine Kosten/Nutzen Info geben.

Danke!

von Georg G. (df2au)


Lesenswert?

Keines davon. GAL ist ein Stromfresser und kaum noch zu bekommen. uC 
bringt dir Verzögerungszeit zwischen Wahl des Slaves und Aktivierung des 
passenden Ausgangs. CPLD kostet viel. EEPROM mit 256*8 und parallel 
Ansteuerung kenne ich nicht. Da musst du was größeres nehmen und das 
kostet Platz.

Ich würde mehrere 74HC138 nehmen. Hat 8 Ausgänge, aktiv Low.
3 Eingänge wählen 1/8 aus. Ein "Chef" 74HC138 wählt einen von 8 
Unterverteilern aus (macht 6 ausgewertete Bits). Die restlichen 2 Bit 
kannst du über die drei G-Eingänge der Chefs passend anschließen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Michael S. schrieb:
> ich habe vor einen Bus für den Slaveselect am SPI zu bauen.
> Der Bus soll 8bit breit sein um damit bis zu 256 Teilnehmer auswählen zu
> können.

Nimm einen Bus, an dem Du 256 Teilnehmer ohne Select einfach über 
Adressen im jeweils ersten Byte eines Datenframes anschließen kannst, 
wie zum Beispiel RS485 mit 1/8 Load Teibern und entsprechend 
konfigurierten Controllern als Transceiver. Spart einen Haufen Leitungen 
und ist ultrakompakt und störsicher. Mit 10Mbit-Treibern ist das Ganze 
auch noch pfeilschnell.

von Volle (Gast)


Lesenswert?

SPI ist kein Feldbus!

sonder ein Systembus der das Gerät nicht verlassen soll.
Deswegen hat er in unteren Schichten auch keine Absicherung.
ab 8 Teilnehmern und ca. 20cm  Länge  wird es schwierig
und die Taktrate muss auch stark reduziert werden.

von Michael S. (michael_s491)


Lesenswert?

@Volle
Ich habe nicht vor das Gerät zu verlassen!
Es geht darum auf einen Orange Pi 2 mehrere Extension Boards zu stacken 
und dabei einen Adressbus und einen Datenbus zu verwenden, wobei der SPI 
für z.B. ADCs und DACs verwendet werden soll.
Für die I/Os werde ich dann den I²C benutzen.
Das ganze soll Modular sein.
Busqualität bekomme ich dann schon in den Griff.

@Knut Ballhause
Option RS485... bis zu welcher Teilnehmerzahl welche Lösung die 
überlgene ist...?

@Georg G.
Das Hintereinanderschalten ergibt wieder Laufzeiten und mit Stacking 
wirds dann auch schwierig, da sich die Teilnehmer ja auf einer anderen 
Platine befinden und der Daten und Adressbus ja 1:1 weiter geleitet 
werden soll.

von Georg G. (df2au)


Lesenswert?

Michael S. schrieb:
> Das Hintereinanderschalten ergibt wieder Laufzeiten

Mit zwei 1/8 Decodern hintereinander hast du Laufzeiten von max 90ns. Da 
/SS nur einmal am Anfang der Übertragung aktiviert wird, sollte das 
tragbar sein. Aber viele Wege führen nach Rom.
Interessant wird, wie du das Fanout bei 256 Teilnehmern mit den 
Datenleitungen in den Griff bekommen willst.

von Michael S. (michael_s491)


Lesenswert?

@ Georg G.
Das wird ein anderes Thema.
Die 256 sind von mir vorerst angestrebt, im weiteren Verlauf wird sich 
dann zeigen bis zu welcher Anzahl von Teilnehmern das ganze 
Funktioniert.
Für mich ist momentan hauptsächlich von Interesse wie man die 
Adressierung umgesetzt bekommt. Sollte die maximale Teilnehmeranzahl 
geringer werden, dürfte das donwsizing sicherlich kein großes Problem 
darstellen.

Aber ich behalte deinen Ansatz mal im Auge ;)

: Bearbeitet durch User
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.