Tom M. schrieb:
> Soweit ich SPI verstanden habe, kann man an einen Master-Mikrochip
> mehrere Slave-Mikrochips hängen. Neben dem normalen SS-Pin (bei mir
> PORTB4) brauche dafür doch eigentlich nur weitere Pins dafür
> bereitstellen.
Nein. Du musst sie natürlich auch entsprechend steuern.
> Im Moment hängt eine 7-Segmen-Anzeige (MAX7219) an meinem ATmega. Die
> funktioniert auch über die Standard-SPI-Schnittstelle. Jetzt habe ich
> mal versucht, die Schnittstelle statt mit PORTB4 mit PORTB0 umzusetzen.
> Leider hat es nicht geklappt. Habe ich da zu einfach gedacht?
Irgendeinen anderen Pin "statt" des designierten SS-Pin zu verwenden,
geht nur eingeschränkt. Dieser Pin muss trotzdem entweder auf Ausgang
konfiguriert werden oder, wenn man ihn als Eingang konfiguriert, muss
zumindest von außen dauerhaft High anliegen.
Und natürlich musst du nun den alternative SS-Pin zusätzlich
konfigurieren und auch benutzen, um den Slave anzusprechen. Dieser Teil
kommt in deinem Programm überhaupt nicht vor, was soll der Unsinn, Code
zu posten, in dem genau der Teil nicht vorkommt, in dem offensichtlich
das Problem stecken muss?
> Da ich mit dem ADS7816p einen zweiten SLAVE hätte, müsste ich die
> SPI-Schnittstelle ja anders intilisiieren.
Sagt wer? Solange beide Slaves den gleichen SPI-Modus verwenden,
brauchst du an der SPI-Schnittstelle selber überhaupt nichts anders zu
initialisieren, sondern immer nur lustig im richtigen Moment mit dem
richtigen SS-Pin wackeln, nämlich mit dem, an dem der Slave hängt, mit
dem du gerade reden willst.
Aber ob es eine gute Idee ist, Display und AD-Wandler an den gleichen
SPI-Bus zu hängen, würde ich nach Lektüre des DB des ADS7816 sowieso mal
bezweifeln.