Forum: Mikrocontroller und Digitale Elektronik Bitbanging SPI / Linux


von Meino C. (mcc)


Lesenswert?

Hallo,

meine Platform ist ein Beaglebone mit 
Audio.cape/RS232.cape/LCD7.cape/Breadboard."cape" (letzteres ist im 
Sinne des Beaglebone nicht wirklich ein Cape).

Auf diesem Beaglebone läuft ein Gentoo mit Linuxkernel 3.2.33-psp26 von 
Robert Nelson.

Alle vom SoC zur Verfügung gestellten SPI-Leitungen sind durch die Capes 
belegt beziehungsweise "wegkonfiguriert".

Da der Beaglebone nicht über RTC verfügt, die nach Stromwegfall 
weiterläuft, habe ich mir eine RTC (DS3234) auf einem Breakoutboard 
besorgt. Die Peripherie ist bereits  auf dem Board (Quarz etc.)

Aufgrund der bereits belegten SPI-Leitungen werde ich die DS3234 wohl 
via Bitbanging bedienen müssen.
Der SPI-Bitbanging-Treiber ist bereits in der Kernel eincompiliert.

Ich kann nur leider keine Anleitung finden, wie man den Treiber zum 
Spielen bekommt?

Wer kann helfen?

Vielen Dank für jede Hilfe im Voraus!
Schönen Sonntag noch!
Gruß
mcc

von wierfjbvaöl (Gast)


Lesenswert?

>Aufgrund der bereits belegten SPI-Leitungen werde ich die DS3234 wohl
>via Bitbanging bedienen müssen.

Nicht notwendigerweise.

Ein einzelnes SPI Interface kann soviele Slaves bedienen,
wie Du GPIOs zuer Verfügung hast.

von Meino C. (mcc)


Lesenswert?

hi  wierfjbvaöl,

Doch...leider alles belegt.
Die SPI-Funktionen bzw. Pins sind sowohl für SPI0 als auch SPI1 mit
andere Funktionen (I2C/GPIO) belegt/weggeschaltet.

Ich muss mich wohl pder übel mit dem BitBanging mit dem 
Linux-Kernel-Treiber herumschlagen.

Ich kann nur leider keine Anleitung finden, wie man den Treiber zum
Spielen bekommt?

Wer kann helfen?

Vielen Dank für jede Hilfe im Voraus!
Schönen Sonntag noch!
Gruß
mcc

von µC-Bastler (Gast)


Lesenswert?

Meino Cramer schrieb:
> Doch...leider alles belegt.

Wie ist das zu verstehen? Entweder es sind IOs für BitBanging frei, dann 
sollten die doch auch für SPI als Slave Select nutzbar sein - oder eben 
nicht.

von hp-freund (Gast)


Lesenswert?


von Hmm (Gast)


Lesenswert?

Was man vielleicht etwas deutlicher betonen muss, ist das man am SPI Bus 
durchaus auch mehrere Teilnehmer haben kann.

D.h. die schon verwendeten MISO, MOSI und SCK kannst Du für weitere 
Slaves verwenden auch wenn da schon einer d'ran hängt.

Worauf wierfjbvaöl und µC-Bastler hinauswollen ist, das Du noch für 
jeden Slave eine zusätzliche I/O-Leitung für den CS benötigst.

Auch gibt es die Möglichkeit der Kaskadierung.

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

von Hmm (Gast)


Lesenswert?

Nachdem ich nochmal das Eröffnungspost gelesen habe, meine ich das:

>Alle vom SoC zur Verfügung gestellten SPI-Leitungen sind durch die Capes
>belegt beziehungsweise "wegkonfiguriert".

möglicherweise bedeutet, das die SPI-Pins für andere Zwecke als für SPI 
verwendet worden sind. (Offen gesagt, hätte ich mir dann eine klarere 
Ausdrucksweise als "wegkonfiguriert" oder "belegt" gewünscht).

Ich möchte gerne als weitere Bemerkung anfügen, das die Verwendung von 
Marketing-Begriffen wie "Cape" (was erstmal nur ein Umhängemantel, ein 
Kap oder ein Vorgebirge ist) oder auch "Shield" (ein Schild, in der 
Elektronik eine Abschirmung) behindert, das durchaus erfahrene 
Programmierer die auch den Chip kennen, etwas sinnvolles beitragen 
können. Also: Lieber die Fachbegriffe verwenden als das 
Marketing-Gesumms.

von hans wurst (Gast)


Lesenswert?

> Ich möchte gerne als weitere Bemerkung anfügen, das die Verwendung von
> Marketing-Begriffen wie "Cape" (was erstmal nur ein Umhängemantel, ein
> Kap oder ein Vorgebirge ist) oder auch "Shield" (ein Schild, in der
> Elektronik eine Abschirmung) behindert, das durchaus erfahrene
> Programmierer die auch den Chip kennen, etwas sinnvolles beitragen
> können. Also: Lieber die Fachbegriffe verwenden als das
> Marketing-Gesumms.

Cape werden im Beaglebone Sprachjargon die Zusatzplatinen genannt.
Also wenn schon kritisieren, dann bitte vorher informieren.

Hans

von me (Gast)


Lesenswert?

hans wurst schrieb:
> Cape werden im Beaglebone Sprachjargon die Zusatzplatinen genannt.

Eben - und sonst nirgends. Wer solche Marketingbegriffe verwendet, 
schränkt den Kreis der möglichen Ratgeber nur unnötig ein.

Nicht jeder hat Lust, erst diverse Begriffe zu recherchieren, um den 
eigentlichen Inhalt eines Postings zu verstehen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

hans wurst schrieb:
> Also wenn schon kritisieren, dann bitte vorher informieren.

Für Projekte eine eigene Kindersprache zu erfinden, scheint derzeit sehr 
en vogue zu sein, "shield", "cape" und auch "wing" ...

Das ist völlig entbehrlich.

von Hmm (Gast)


Lesenswert?

@ hans wurst

>>Cape werden im Beaglebone Sprachjargon die Zusatzplatinen genannt.
>Also wenn schon kritisieren, dann bitte vorher informieren.

Es war durchaus erkennbar, wenn auch offensichtlich nicht für Dich, das 
mir bekannt ist, das der Hersteller diesem Wort eine zusätzliche 
Bedeutung geben will.

Abgesehen davon hat das Wort "Cape" in diesem Zusammenhang nicht einmal 
im übertragenen Sinn oder metaphorisch oder bildlich irgendeinen 
funktionalen Sinn. Es ist also technisch unnötig dieses Wort zu 
verwenden. Der einzige Sinn ist sich ein "G'sichtle", oder Neu-Deutsch: 
"Image" zu verschaffen. Ich sehe nicht ein, dass die Techniker die 
Marketing-Strategien von Firmen unterstützen und dabei intellektuellen 
Unsinn von uns geben sollten.
Wenn sie schon Begriffe prägen wollen, dann wenigsten keine wo sich den 
Leuten die Fussnägel kräuseln.

Ein ähnliches Beispiel sind die sogenannten "Shields" zum Arduino die 
nichts "abschirmen"; die einzige sinnvolle Bedeutung dieses Wortes in 
der Technik.

>Eben - und sonst nirgends. Wer solche Marketingbegriffe verwendet,
>schränkt den Kreis der möglichen Ratgeber nur unnötig ein.

Genau. Das ist der Punkt.

Nun gut. Ich wollte den Thread nicht entführen sondern nur eine 
Bemerkung machen. Aber das meine Bemerkung auf mangelnde Information 
beruht wollte ich nicht so stehen lassen.

von mcc (Gast)


Lesenswert?

Hallo,

gut argumentiert!

Also noch einmal für die Allgemeinheit -- befreit von jedem "Gesums" und 
"Denglisch.

Ich benutze einen Einplatinen-Rechner, dessen 
Zentrale-Verarbeitungseinheit über Anschlüsse verfügt, die mittels 
Konfiguration verschiedentliche Aufgaben übernehmen kann.
Eine davon ist die Zurverfügungstellung eines Protokolls zur Anbindung 
anderer Fühler und Schalter oder auch weiterer Prozess-Einheiten.
Dieses spezielle Protokoll wird auch von einer Echtzeituhr verwendet, zu 
der ich gerne mittels Draht ein Verbindung zur 
Zenralen-Verarbeitungseinheit meines Einplatinen-Rechners herstellen 
möchte. Diese Protokoll ist das serielle Peripherie Anschlussschema.

Leider werden schon alle Anschlüsse der Zentralen-Verarbeitungseinheit, 
die dieses Protokoll beherrschen von anderen Aufgaben belegt, so dass 
ich dieses Protokoll händisch mittels 
Kleinste-Informationseinheiten-Knallerei über Ein-/Ausgabeanschlüsse für 
allgemeine Aufgaben nachbauen muss.
Im Linux-Kern befindet sich ein Treiber füë diesen Zweck, ich kann nur 
leider keine Anleitung für diesen finden.

Kann mir in dieser Sache jemand helfen?

Vielen Dank im Voraus für jede Hilfe!
Schönen Sonntag noch!
Gruß
mcc

PS: Vielleicht war es auch Absicht, diejenigen anzusprechen, die Ahnung 
vom Beaglebone haben, der Begrifflichkeiten mächtig sind und nicht 
ellenlang darüber diskutieren, wie ich was meinen könnte oder was ich 
hätte besser schreiben sollen?
Nur so eine Idee....

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

mcc schrieb:
> Vielleicht war es auch Absicht

Dann poste doch Deine Fragen in Foren, die von der entsprechenden 
Kindersprache durchdrungen sind. Hier sind Leute unterwegs, die sich mit 
den verwendeten ARMen und deren Peripherie auf detaillierterer Ebene 
auskennen, als sie so ein vorgefertigtes "smartes" Produkt im Rahmen 
seiner für einfache Anwendung ausgelegter Softwareumgebung bieten kann.

von Hmm (Gast)


Lesenswert?

>und nicht ellenlang darüber diskutieren,

Tut mir leid Dir zu widersprechen, aber Du diskutierst doch. Ich habe 
nur eine Bemerkung gemacht, von der ich meine, das sie nur einem 
Ungebildeten überhaupt Anlass zur Diskussion gibt.

>Also noch einmal für die Allgemeinheit -- befreit von jedem "Gesums" und
>"Denglisch.

Ich muss schon sagen, das ich Deinen Versuch mit der 
"Zwangs-Verdeutschung" Deiner Frage, das Thema und damit mich ins 
Lächerliche zu ziehen, für ziemlich kindisch halte. Meine Bemerkung 
bezog sich auf das Wort "Cape"; sonst auf nichts. Anstatt zu Deinem 
Nutzen zu verwenden, was diejenigen, die Du um Rat bittest, noch 
anzubieten haben, fühlst Du Dich angegriffen.

Ich habe mit keinem Wort gesagt, das ich die Verwendung von englischen 
Begriffen kritisch sehe (wenn ich auch einräumen muss, dass die 
Verwendung des Wortes "Neu-Deutsch" dies suggerieren könnte und dies zu 
einem gewissen Grad auch der Fall ist, aber dies geschah im Zusammenhang 
mit der Verwendung des Begriffes "Image" und nicht etwa "CPU" oder 
"Bit-Banging").

Als Techniker die Verwendung der englischen Sprache bei einem 
technischen Thema abzulehnen wäre geradezu absurd.


Na ich sehe schon, ich habe heute wieder mal meinen kritischen Tag und 
falle den Leuten auf den Wecker. Ich werde mich mal lieber wieder etwas 
'raushalten.

von Ingo D. (ingo2011)


Lesenswert?

Hi Meino,

wenn Du

>Die SPI-Funktionen bzw. Pins sind sowohl für SPI0 als auch SPI1 mit
>andere Funktionen (I2C/GPIO) belegt/weggeschaltet.

einen I2C Port hast, nimm doch eine I2C-RTC ...
Für die paar Bytes reicht es doch lange ...

Gruß Ingo

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.