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!
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.
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.
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.
@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.
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.
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.