Problem mit SPI

Gast #1921076
Lesenswert?

Hallo,
ich befasse mich seit kurzem mit der SPI Schnittstelle und dem 
Portexpander Ic MCP23S17. Doch irgendwie bekomm ich dieses Teil nicht 
zum lauffen. Hab da auf ner seite im Internet n C-Beispiel gefunden und 
das mal in mein C-Programm übernommen.

Ziel ist es mit einem Taster Alle Portpins vom Port A des MCP23S17 
einzuschalten.

Hardwareseitig müsste alles passen.

Wär euch sehr dankbar wenn mal jemand über meinen C-Code drüberschauen 
würde.

Prozessor ist ATMEGA 32
AVR Studio und Win AVR
Angehängte Dateien:
Moderator Persönliche Seite #1921197
Lesenswert?

Ohne ins Datenblatt des ICs geguckt zu haben: wenn du die komplette
Adressierung in deinem SPI_Write() auskommentierst, was denkst du,
woher der IC dann noch weiß, was er mit den Daten anfangen soll?

DWIM-Programmierung ist noch nicht erfundne.  (DWIM: "do what I mean")

Falls du die  Adressierung schon mal drin hattest und das irgendwie
anders "nicht ging", dann wäre es hilfreich, wenn du uns mitteilst,
was du denn alles schon kontrolliert hast, und an welcher Stelle es
klemmt.
Gast #1923480
Lesenswert?

ich komm einfach nicht weiter. Meine Messungen haben ergeben:
aus SCL kommt der Takt. i. O.
aus MOSI der auf den PIN SO vom 23S17 geht hab ich auch Signal
und wenn ich am Pin MISO messe, der an Pin SI vom 23S17 geht auch.
Das komische ist nur wenn ich den 23S17 abstecke dann hab ich trotzdem 
an MISO signal... das dürfte doch gar nicht sein oder?

die CS Leitung funktioniert auch. Reset-Pin vom 23S17 ist auch auf 5V 
beschalten.
Gast #1923485
Lesenswert?

Jürgen schrieb:
> aus MOSI der auf den PIN SO vom 23S17 geht hab ich auch Signal
> und wenn ich am Pin MISO messe, der an Pin SI vom 23S17 geht auch.

Hast du dich hier vertippt?

MOSI = Master Out Slave In  muss an SI (Slave In) vom 23S17
MISO = Master In Slave Out muss SO (Slave Out) vom 23S17

Du hast es also genau verdreht!

- gerd
Gast #1923551
Lesenswert?

hab den fehler gefunden.
Also der SS Pin ist gleichzeitig auch CS pin...

also nicht:

// Set MOSI (PB5), SCK (PB7) and PB4 (SS) as output, others as input

sondern:

den SS Pin auf PB0

jetzt funktionierts :)

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