Atmega8, Hardware-SPI und Taster an PB2 mit Bascom

OP #4166424
Lesenswert?

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
Angehängte Dateien:
Gast #4166450
Lesenswert?

>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.
Gast #4166471
Lesenswert?

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.
OP #4166735
Lesenswert?

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.
OP #4166760
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren