Umgang mit SPI Lernen

OP #3068768
Lesenswert?

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!
#3068776
Lesenswert?

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
#3068777
Lesenswert?

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.
#3068780
Lesenswert?

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
#3068783
Lesenswert?

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 #3068785
Lesenswert?

>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 #3068791
Lesenswert?

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
#3068793
Lesenswert?

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 #3068797
Lesenswert?

>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.
#3068801
Lesenswert?

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
#3068916
Lesenswert?

>... 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

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