goof1980
14.03.2011, 13:54
Hallo,
ich plane derzeit ein kleines Projekt an denen mehrere SPI-Slaves an einem Master hängen. Diese will ich nicht alle hintereinander durchschleifen, sondern alle einzeln adressieren. Wenn ich jetzt aber z.B. 16 Slaves hätte, bräuchte ich ja vom Master kommend 16 Ausgänge für den Slave-Select bzw. Chip-Select. Deswegen würde ich das gern anders lösen.
16 Adressen sind für mich vollkommen ausreichend, deswegen dachte ich mir, ich nehm 4 Ausgänge vom Master und noch nen Dip-Schalter mit dem ich die Adresse einstellen kann, nen Vergleicher (hatte mir da den 74HC85 rausgesucht, der hat direkt nen Ausgang für Gleichheit) und fertig. Ich stelle also z.B. ne 5 bei den Dip-Schaltern ein, das ist die Adresse für den Slave. Wenn ich den Auslesen bzw. setzen will setzt der Master auf den 4 Ausgängen auch binär die 5, der Vergleicher sagt es ist gleich und setzt den CS bzw. SS und dann beginnt das Bitgeschiebe.
Ich denke vom Ansatz her sollte das gehen.
Jetzt hab ich aber das Problem, das der Vergleicher den ich rausgesucht habe bei Gleichheit ein HIGH-Signal liefert. CS bzw. SS werden aber fast immer mit LOW-Signal aktiv. Deswegen erste Frage: was kann ich da machen? Kennt jemand einen anderen Baustein für so einen Vergleich? Oder ein anderes Prinzip?
Ich habe leider etwas Platzprobleme, deswegen sollte der Baustein nicht größer werden.
Im schlimmsten Fall dachte ich schon, einen Tiny zu nehmen für diese Aufgabe, aber weiß nicht ob der dann eine bestimmte Geschwindigkeit haben muss oder ob das nicht relevant wäre.
Vielen Dank vorab.
Gruss Christian
ich plane derzeit ein kleines Projekt an denen mehrere SPI-Slaves an einem Master hängen. Diese will ich nicht alle hintereinander durchschleifen, sondern alle einzeln adressieren. Wenn ich jetzt aber z.B. 16 Slaves hätte, bräuchte ich ja vom Master kommend 16 Ausgänge für den Slave-Select bzw. Chip-Select. Deswegen würde ich das gern anders lösen.
16 Adressen sind für mich vollkommen ausreichend, deswegen dachte ich mir, ich nehm 4 Ausgänge vom Master und noch nen Dip-Schalter mit dem ich die Adresse einstellen kann, nen Vergleicher (hatte mir da den 74HC85 rausgesucht, der hat direkt nen Ausgang für Gleichheit) und fertig. Ich stelle also z.B. ne 5 bei den Dip-Schaltern ein, das ist die Adresse für den Slave. Wenn ich den Auslesen bzw. setzen will setzt der Master auf den 4 Ausgängen auch binär die 5, der Vergleicher sagt es ist gleich und setzt den CS bzw. SS und dann beginnt das Bitgeschiebe.
Ich denke vom Ansatz her sollte das gehen.
Jetzt hab ich aber das Problem, das der Vergleicher den ich rausgesucht habe bei Gleichheit ein HIGH-Signal liefert. CS bzw. SS werden aber fast immer mit LOW-Signal aktiv. Deswegen erste Frage: was kann ich da machen? Kennt jemand einen anderen Baustein für so einen Vergleich? Oder ein anderes Prinzip?
Ich habe leider etwas Platzprobleme, deswegen sollte der Baustein nicht größer werden.
Im schlimmsten Fall dachte ich schon, einen Tiny zu nehmen für diese Aufgabe, aber weiß nicht ob der dann eine bestimmte Geschwindigkeit haben muss oder ob das nicht relevant wäre.
Vielen Dank vorab.
Gruss Christian