mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI programmieren wie?


Autor: Tobias Tschech (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi@all,

ich bin ein absoluter neuling in sachen microcontroller. Ich versuche 
momentan 3 ATMEGA8515 über SIP zu vernetzen (1 Master 2 Slave). Ich habe 
mich schon durch das ganze Internet gewühlt aber nichts gefunden. Bzw. 
wenn ich was gefunden habe, habe ich es nicht wirklich verstanden. 
Vielleicht könntet ihr mir auf die sprünge helfe. Also was ich bisher 
weiß ist das ich folgende verkabelund machen muss:

MISO(Master) --> MISO(Slave)
MOSI(Master) --> MOSI(Slave)
SCK(Master)  --> SCK(Slave)
PB0(Master)  --> SS(Slave 1)
PB1(Master)  --> SS(Slave 2)

Zudem weiß ich wenn ich an Slave 1 senden will PB0 low sein muss.

So nun hört es aber schon auf mit meinem wissen. Vielleicht kennt jemand 
eine Gute anleitung wie ich jetzt was zu initialisieren habe bzw welche 
funktionen ich benutzen muss.

Schonmal danke für eure hilfe

Tobi

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
datenblatt, da müßte für beide eine beispielcode drinstehen

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau mal hier:
http://www.atmel.com/dyn/products/app_notes.asp?fa...

-> "AVR151: Setup and use of the SPI on tinyAVR and megaAVR devices"


Vielleicht helfen die Assembler/ C -Code Beispiele.

Gruss Uwe

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
Ich seh gerade, die Beispiele sind nur für C. Im DB der Controller 
sollte aber (AFAIK) auch ein Assembler Code-Happen zu finden sein.

Autor: Tobias Tschech (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

schonmal danke für eure Hilfe. Also ich hab vorhin vergessen zu erwähnen 
das ich das ganze in C programmieren will. Der Code im Datenblatt bringt 
mich schonmal etwas weiter nur will ich das der slave noch etwas zurück 
gibt. Wie schaffe ich das?

Tobi

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntst beispielsweise folgendes versuchen:

1. Master wählt den gewünscht Slave
2. Master sagt Slave, was er wissen will (z.B. Zustand PortB am Slave x)
3. Slave legt diese Info im SPI-Senderegister ab
4. Master holt sich diese Info, indem er Dummy-Daten in den Slave taktet 
und dabei den MISO-Pin abfragt.

Gruss Uwe

Autor: aeMKai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SPI ist wie eine lange Kette (Schieberegister), wenn du auf der einen 
Seite etwas reinschiebst (z.B. 3 Bit), kommt auf der anderen Seite etwas 
raus (dann auch 3 Bit).
Wenn du was vom Slave empfangen willst, musst du es bei diesem ins 
Senderegister schreiben. Dann vom Master was Beliebiges an den Slave 
senden - Hauptsache, du "schiebst was rein". Gleichzeitig sendet der 
Slave dann an den Master. Jetzt musst du nur noch dessen 
Empfangsregister auslesen.

Eine einfache Übersicht findest du hier:
http://www.uni-koblenz.de/~physik/informatik/MCU/SPI.pdf

MfG,

Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.