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
>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
>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.
>Überall. z.B. Wikipedia:
Danke für den Link. Ich suchte nur nach SPI und nicht nach Serial
Peripheral Interface. Vielen Dank! Gibt es irgendwo beispiele für die
Implementierung in C oder muss man sich das selbst überlegen?
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
Florian Schuller schrieb: > Gibt es irgendwo beispiele für die > Implementierung in C oder muss man sich das selbst überlegen? Hier im Forum findest du massenhaft SPI Anwendungen, auch in C. Stichworte für die Suche wären z.B. LED-Cube oder 74HC595
>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.
Florian Schuller schrieb: > Danke für den Link. Ich suchte nur nach SPI und nicht nach Serial > Peripheral Interface. Vielen Dank! DER war gut !!
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
OK ich kenne mich jetzt halbwegs aus und werde mal das Datenblatt meines Controllers studieren. Danke für eure Antworten!
Florian Schuller schrieb: > meines > Controllers studieren Den du ja zum Glück schön geheim gehalten hast.
Peter S. schrieb: >> Danke für den Link. Ich suchte nur nach SPI und nicht nach Serial >> Peripheral Interface. Vielen Dank! > > DER war gut !! Wer nichts produktives zum Thema beitragen kann sollte es lassen etwas zu Posten! Nochmals vielen Dank an alle die etwas produktives zum Thema beigetragen haben.
Eumel schrieb: >> meines >> Controllers studieren > > Den du ja zum Glück schön geheim gehalten hast. Sorry war unbeabsichtigt ihn nicht zu erwähnen. Ich werde den ATmega32 verwenden.
Aber mal ehrlich, der ganze Thread hier war doch jetzt komplett für die Tonne.
Florian Schuller schrieb: > Sorry war unbeabsichtigt ihn nicht zu erwähnen. Ich werde den ATmega32 > verwenden. Dann schau einfach mal ins Datenblatt. Das ist beschrieben (inklusive Code) wie man das SPI Modul verwendet. Viel Spaß beim Basteln :)
Eumel schrieb: > Dann schau einfach mal ins Datenblatt. Das ist beschrieben (inklusive > Code) wie man das SPI Modul verwendet. > Viel Spaß beim Basteln :) Danke! Den werde ich haben :-).
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.
cyblord ---- schrieb: > Tja, diese Generation wird bald an den Knöpfen deines > Lebenserhaltungssystems rumspielen. Tolle Aussichten was? ;-) Wieso? Ich dachte das ist schon längst alles nach Korea ausgelagert worden...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.