Hallo, ich versuche Hardware-SPI zu verwenden und dabei einen Taster an PB2 als Eingang zu nutzen. Normalerweise ist PB2 ja SS bei SPI. Ich brauche ihn aber nicht. Deswegen habe ich schon NOSS=1 versucht. Leider bleibt der Controller trotzdem immer beim Senden hängen, wenn der Taster gedrückt ist (PB2 auf GND). Nutze ich Software-SPI funktioniert es einwandfrei. Ich würde aber gerne Hardware-SPI nutzen. Hat jemand eine Idee, wie ich das hin bekomme? Grüße, Klaus
>Hat jemand eine Idee, wie ich das hin bekomme?
Das wirst du nie hinbekommen. SS muss bei SPI Master
ein Ausgang sein. Egal wofür du den verwendest.
Aber wofür ist dann der Parameter NOSS gut? Wenn ich das in der Beschreibung so ansehe, sollte der Parameter doch genau dafür sein.
>Aber wofür ist dann der Parameter NOSS gut? Das weiss ich nicht. BASCOM kenne ich nicht. Fakt ist das SS als Eingang nicht verwendbar ist wenn man einen SPI Master betreiben möchte. Das steht auch so im Datenblatt vom AVR.
Klaus W. schrieb: > Aber wofür ist dann der Parameter NOSS gut? Steht in der Hilfe, in Master-Mode wird bei NOSS = 1 der SS-Pin von der SPI-Routine nicht angesteuert, d.h. Der SS-Pin kann als Ausgang beliebig für andere Zwecke verwendet werden. Klaus W. schrieb: > Hat jemand eine Idee, wie ich das hin bekomme? Setze NOSS = 1 und ersetze mit dem SS-Pin als Ausgang einen anderen Ausgangspin. Den gesparten Pin kannst Du dann als Eingang verwenden.
MWS schrieb: > Steht in der Hilfe, in Master-Mode wird bei NOSS = 1 der SS-Pin von der > SPI-Routine nicht angesteuert, d.h. Der SS-Pin kann als Ausgang beliebig > für andere Zwecke verwendet werden. Wie ich im ersten Post schon schrieb, das war auch meine Idee. Funktioniert leider nicht. Es macht gar keinen Unterschied, ob ich NOSS=1, NOSS=0 oder gar nix schreibe. Wird dann wohl nicht gehen. Aber dann mal eine Vertändnisfrage: Welchen Sinn macht es, dass beim Master ein Pin als SS zwingend festgelegt ist? Wenn ich nur einen Slave habe, ist eh klar, welcher gemeint ist. Wenn ich mehrere Slaves habe, brauche ich stattdessen mehrere SS-Pins. Beim Slave sehe ich da ja noch einen Sinn. Der kann nur als Ziel definiert sein, oder eben nicht. Es würde also beim Slave mehr Sinn machen, als beim Master. Stattdessen ist, wenn ich das richtig verstanden habe, beim Slave dieser Zwang nicht mal vorhanden.
" If the SS pin is driven low by peripheral circuitry when the SPI is configured as a Master with the SS pin defined as an input, the SPI system interprets this as another Master selecting the SPI as a Slave and starting to send data to it."
Justus Skorps schrieb: > " If the SS pin is driven low by peripheral circuitry when the SPI is > configured as a Master with the SS pin defined as an input, the SPI > system interprets this as another Master selecting the SPI as a Slave > and starting to send data to it." OK danke, damit macht das ganze wieder einen Sinn. Nur blöd, dass man das beim Hardware-SPI nicht einfach abschalten kann um einen Pin zu sparen, wenn es eh keinen anderen Master gibt. Da bleibt mir wohl nix anderes übrig, als Software-SPI zu nehmen.
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.