Forum: Mikrocontroller und Digitale Elektronik /SS Konfiguration beim AVR


von hORST (Gast)


Lesenswert?

Im Datenblatt steht sinngemäß übersetzt folgendes:
Der SlaveSelect /SS pin muss im MASTER Mode auf High gehalten werden,
wenn man ihn als Input definiert hat. Ein Low würde den AVR in den
Slave-Zustand versetzen und folgendes würde von der Hardware
veranlasst:
1. das Master-Bit MSTR wird gelöscht, und der AVR ist Slave.
2. SPIF wird gesetzt..bla blah

Bei mir habe ich den /SS als Input gesetzt. Mein AVR soll immer Master
sein und einem Slave ab und zu Daten schicken.

Wie mach ich das dann im Code?
Bei mir siehts so aus:
cbi PortB, 4      ; /CS pull down
ldi temp, 0b11000000    ; RESET-Instruction
rcall spiout
sbi PortB, 4      ; release /CS

Laut o.g. Übersetzung müsste der AVR nach dem pull down im Slave
Zustand sein und nicht Master...

Hat das seine Richtigkeit? Muss ich das MSTR Bit villeicht irgendwo
zyklisch abfragen?

von Dirk B. (dirk-)


Lesenswert?

Hallo,

>Bei mir habe ich den /SS als Input gesetzt. Mein AVR soll immer
>Master sein und einem Slave ab und zu Daten schicken.

Setze /SS auf Ausgang und nutze diesen Pin um den Chip Select Pin
deines SPI Slaves zuaktivieren.

Gruß,
Dirk

von Dirk B. (dirk-)


Lesenswert?

PS.: Du schiebst dann 8 Bit ueber MOSI raus (z.B. 0xFF). Der AVR
generiert auf SCLK das Clocksignal und ueber MISO bekommst du die Daten
ins SPDR Register.

von hORST (Gast)


Lesenswert?

Genial, das war der Fehler!!!
Aber ich versteht nun überhaupt nicht warum....
denn:
1. Hat der Author von
http://www.kreatives-chaos.com/index.php?seite=mcp2515_reg
das auch nicht als Ausgang

2. Im Datenblatt: If /SS is configured as an output, the pin is general
output which does not affect the  SPI system......

Komisch
aber egal, jetzt geht die Übertragung auf einmal.

Vielen Dank!

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
Noch kein Account? Hier anmelden.