Forum: Mikrocontroller und Digitale Elektronik Problem - SPI mit AVR STK500 und Atmega16


von Michael K. (michaelkollmann)


Lesenswert?

Hallo,

im Rahmen eines Unterrichtprojektes beschäftige ich mich mit 
µC-Programmierung mit Hilfe von AVR STK 500-Boards und Atmega16 µC.

Mein Ziel ist es, Daten zwischen 2 Atmega 16 zu übertragen, welche beide 
noch auf einem STK 500 sitzen (bin mit dem Bau von Schaltungen nicht 
betagt, will bei den Boards bleiben). Als Programmgrundlage benutze ich 
dieses Beispiel in unveränderter Form:

Beitrag "SPI Atmega8"

Beide µC sind baugleich, jeweils mit dem Code des Master und des Slave 
bespielt, von der SPI-Verbindung des Boards welches zum Programmieren 
verwendet wird getrennt und untereinander über die angegebenen Ports 
verbunden. Eine Datenübertragung kommt jedoch nicht zu Stande. (Es 
sollten die Lämpchen am Board des Slave aus- und eingeschaltet werden 
sobald ein Signal übermittelt wurde).

Beide Boards benutzen sogar die gleiche Stromversorgung.

Die Verbindungen sind wie im Quellcode der Beispiele angegeben gesetzt:
  MISO(Master) --> MISO(Slave)
  MOSI(Master) --> MOSI(Slave)
  SCK(Master)  --> SCK(Slave)
  PB0(Master)  --> SS(Slave)

https://skydrive.live.com/redir.aspx?cid=752a4f33120924a7&resid=752A4F33120924A7!606&parid=752A4F33120924A7!331&authkey=!AGr73FW2OGXVnbg 
Hier ist nochmal die Verkabelung zu sehen.

Ich hoffe ihr könnt mir helfen, drehe nämlich schön langsam am Rad und 
bald wird meine RFID-Hardware geliefert.

Mit freundlichsten Grüßen,
Michael

von Jonas B. (jibi)


Lesenswert?

Glaskugel ist kaputt...wie wär's mit Code?

Gruß Jonas

von Jonas B. (jibi)


Lesenswert?

MISO(Master) --> MISO(Slave)
  MOSI(Master) --> MOSI(Slave)
  SCK(Master)  --> SCK(Slave)
  PB0(Master)  --> SS(Slave)

Das stimmt auch nicht...überleg mal selber....


Gruß Jonas

von Jonas B. (jibi)


Lesenswert?

MISO(Master) --> MISO(Slave) Ausgang zu Ausgang?
  MOSI(Master) --> MOSI(Slave)  Eingang zu Eingang?

"dat Mopped kann so net renn Jung"

Gruß Jonas

von spien (Gast)


Lesenswert?

Jonas Biensack schrieb:
> MISO(Master) --> MISO(Slave) Ausgang zu Ausgang?
>
> MOSI(Master) --> MOSI(Slave)  Eingang zu Eingang?

Kommt darauf an wie es geschalten ist (und dafür gibt es nur einen Weg):
Am Master müssen MOSI und SCK als Ausgang geschaltet werden (also in SW 
natürlich) und am Slave darf nur MISO als Ausgang geschaltet werden.

Dann gilt folgendes (wie der Name eigentlich schon sagt):
MISO (Master Input) --> MISO (Slave Output)
MOSI (Master Output) --> MOSI (Slave Input)

Außerdem:
SCK (Master Output)  --> SCK (Slave Input)
PB0(Master Output)  --> /SS (Slave Input)

/SS muss vom Master auf low geschaltet werden, damit der Slave aktiv 
ist!
Es muss übrigens nicht unbedingt PB0 am Master sein. Du könntest ja auch 
4 Slaves am Master haben....

Gruß

von spien (Gast)


Lesenswert?

spien schrieb:
> Es muss übrigens nicht unbedingt PB0 am Master sein. Du könntest ja auch
> 4 Slaves am Master haben....

Da fällt mir gerade ein, dass es schon nötig ist /SS am Master als 
Ausgang - und somit sinnvollerweise als /SS Input am Slave - zu 
benutzen, da sonst dein Master nach einiger Zeit in den Slave-Mode 
fällt. Was aber nichts daran ändert, dass du an anderen Pins noch 
zusätzliche Slaves verwenden kannst.

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.