Umgang mit SPI Lernen

OP #3068768
Ich habe für ein Projekt einen AD Wandler mit SPI-Interface bestellt. 
Ich habe mich jedoch mit SPI recht wenig befasst. Deshalb meine Frage: 
Wie kann ich den Umgang mit SPI am besten lernen? Vor allem geht es mir 
auch um die Programmierung in C. Kennt jemand ein gutes Tutorial oder 
sonstiges? Vielen Dank im Voraus!
Das sind 2 Schritte:

1.) Verstehen was SPI ist und wie es funktioniert.
2.) Implementieren auf einem bestimmten Controller in einer bestimmten 
Sprache

Bist du mit 1.) schon durch?

Zu 2.)
Diese Sprache sollte man schon beherrschen. Und den Controller natürlich 
kennen. Wenn nicht, dann erstmal ab an die Grundlagen und SPI 
zurückstellen. Alles auf einmal geht nicht.

gruß cyblord
Na. Das datenblatt des ADC sollte genuegend drueber sagen was benoetigt 
wird. Das Datenblatt des Controller sollte genuegend sagen was moeglich 
ist. Zu beginn wuerd ich den ADC per einzelpin ansteuerung in betrieb 
nehmen. Man muss sowieso allen nachmessen bis es geht. Da sollte man 
nicht zuviele Baustellen aufs Mal haben.
Und SPI ist so ziemlich die einfache Datenübertragung die man sich 
vorstellen kann. Man muss noch nichtmal die Datenrichtung der Ports 
ändern weil für jede Richtung schon ne eigene Leitung vorgesehen ist. 
Wackeln an 2 Pins, am 3. Pin evt. noch lesen und das wars. Dafür muss 
man das ganze jetzt wirklich nicht monatelang studieren.

gruß cyblord
OP
>Bist du mit 1.) schon durch?

Ich habe mich bei SPI erst mit den Grundlagen befasst (Welche Leitungen 
giebt es und was sind MISO und MOSI) aber weteres habe ich darüber noch 
nicht gelesen. Wo kann man am besten die Basics lernen?
Florian Schuller schrieb:
>>Bist du mit 1.) schon durch?
>
> Ich habe mich bei SPI erst mit den Grundlagen befasst (Welche Leitungen
> giebt es und was sind MISO und MOSI) aber weteres habe ich darüber noch
> nicht gelesen. Wo kann man am besten die Basics lernen?

Überall. z.B. Wikipedia:

http://de.wikipedia.org/wiki/Serial_Peripheral_Interface

Was willst du denn da groß lernen? Ist dir im Prinzip klar wie da Bytes 
hin und her gesendet werden? Beschreib doch mal in deinen eignen Worten 
in 2 Sätzen was du glaubst was SPI tut.

gruß cyblord
OP
>Zu 2.)
>Diese Sprache sollte man schon beherrschen. Und den Controller natürlich
>kennen. Wenn nicht, dann erstmal ab an die Grundlagen und SPI
>zurückstellen. Alles auf einmal geht nicht.

Mikrocontroller in C programmieren beherrsche ich schon ziemlich gut und 
habe auch bereites einige Projekte damit gemacht.
Gast
FFlorian Schuller schrieb:
> Ich habe mich bei SPI erst mit den Grundlagen befasst (Welche Leitungen
> giebt es und was sind MISO und MOSI) aber weteres habe ich darüber noch
> nicht gelesen. Wo kann man am besten die Basics lernen?

Nimm einen Duden und das Datenblatt deines zu steuernden ADC.
MISO und MOSI sind nur zwei der Leitungen, die es gibt. Dazu kommt noch 
Clock und manchmal CS.
http://www.mikrocontroller.net/articles/Serial_Peripheral_Interface
Florian Schuller schrieb:
>>Zu 2.)
>>Diese Sprache sollte man schon beherrschen. Und den Controller natürlich
>>kennen. Wenn nicht, dann erstmal ab an die Grundlagen und SPI
>>zurückstellen. Alles auf einmal geht nicht.
>
> Mikrocontroller in C programmieren beherrsche ich schon ziemlich gut und
> habe auch bereites einige Projekte damit gemacht.

Dann einfach mal die Gegenfrage. Was ist dir an SPI unklar? Sogar der 
Wikipedia Artikel ist ultrakurz. Eigentlich sollte danach klar sein was 
SPI ist und wie es funktioniert. Und wenn man C auf nem Controller kann 
dann sollte klar sein wie man das von Hand, also per Pin-Wackeln 
implementieren müsste.
Abgesehen davon haben viele Controller einen Hardware-SPI eingebaut.

gruß cyblord
OP
>Abgesehen davon haben viele Controller einen Hardware-SPI eingebaut.

Über SPI grundsätzlich ist mir jetzt alle klar. Ich wollte eben nur 
wissen ob man sich das alles Softwaremäßig zusammenbasteln muss oder ob 
das nicht auch über Hardware-SPI geht. Mein Controller besitzt nämlich 
eine Hardware-SPI Schnittstelle.
Peter S. schrieb:
> Florian Schuller schrieb:
>> Danke für den Link. Ich suchte nur nach SPI und nicht nach Serial
>> Peripheral Interface. Vielen Dank!
>
> DER war gut !!

Jetzt klings nach Troll.


> Über SPI grundsätzlich ist mir jetzt alle klar. Ich wollte eben nur
> wissen ob man sich das alles Softwaremäßig zusammenbasteln muss oder ob
> das nicht auch über Hardware-SPI geht. Mein Controller besitzt nämlich
> eine Hardware-SPI Schnittstelle.
Das war überhaupt nicht deine Frage. Und natürlich kannst du einen 
HW-SPI nutzen wenn dein Controller einen solchen hat. Was für eine Frage 
ist das? Wie das geht? Kommt auf den Controller an und steht dort im 
Datenblatt. Ansonsten konkret nachfragen wenn dort was unklar sein 
sollte.

gruß cyblord
gandalf schrieb im Beitrag #3068834:
> irgendwann werden sie zu faul zum aufs klo gehen und verenden in ihren
> exkrementen...
>
> traurig wie das alles wird

Tja, diese Generation wird bald an den Knöpfen deines 
Lebenserhaltungssystems rumspielen. Tolle Aussichten was? ;-)
>... Ich wollte eben nur wissen ob man sich das alles Softwaremäßig 
zusammenbasteln muss oder ob das nicht auch über Hardware-SPI geht. Mein 
Controller besitzt nämlich eine Hardware-SPI Schnittstelle.

Das zeigt das Studium des Datenblattes des anzusteuerndes Bauteils. Es 
gibt solche, dia passen, und andere, die passen nicht. Ich kann mich 
leider nicht an das Bauteil erinnern, aber da war die kleine 
Unpaesslichkeit, dass das CS im letzten Datenbit hochgehen musste. Ja. 
wenn man das erkennt, beschreibt man die paar Leitungen halt per 
software.
Beim Hardware SPI gibt es noch zu beachten, dass der Unterschied 
zwischen Poll Mode und Interrupt Mode eher klein ist wenn man mit 
maximaler Geschwindigkeit arbeitet. Denn das Byte ist in 16 click 
rausgeclockt. Der Interrupt kommt in dieser Zeit nicht grad weiter, denn 
er muss pushen, poppen und noch etwas rumspringen, dann sind die 16 
clocks auch weg, ohne dass etwas erreicht wurde.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.