www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI für Embedded Linux


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

mein Onkel hat mir ein Board mit einem ARM Prozessor geschenkt.

Auf dem Board läuft Embedded Linux.
Jetzt dachte ich mir, dass ich da ein MP3 Player draus mache.

Die MP3 Daten möchte ich über SPI an einen MAS schicken. Da ich noch
nicht sooo viel unter Linux gemacht habe wollte ich mal wissen, ob
jemand vielleicht ein Beispielprogramm hat, um den SPI Treiber der im
Embedded Linux integriert ist zu benutzen. Bzw. wo ich so ein Programm
finde.

Hat hier schon mal jemand den SPI über Embedded Linux angesteuert?

Für Hilfe und jede Info wäre ich dankbar ;-).

Viele Grüße

Johannes

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

viel spannender wäre zu wissen was das für ein ARM-Board ist. Ich
vermute mal das der SPI-Treiber über den üblichen PC-Parport geht und
den wird dein ARM-Board nicht haben.

Matthias

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viele ARMs haben DACs onboard, da kann doch der ARM das Dekodieren
selber machen und die Daten an den Analog-Ausgang geben.
Dekodierer gibt es als opensource im Netz.

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also selbst machen geht nicht, dafür ist er glaub ich zu langsam, da er
keine floating Points unterstützt. Und einen Decoder ohne Floating
Points also nur mit Int ist nur sehr schwer (kommerziell) zu bekommen.
Habe mich da schon informiert.

Softfloat wäre natürlich möglich ist aber in meiner Toolchain nicht
implementiert und selbst eine zu bauen... Da drau ich mich nicht ran.

Falls natürlich hier einer einen Decoder kennt der nur Int verwendet,
dann her damit ;-)

Bei dem Board sind die Ausgänge des SPI nach ausen auf eine
Steckerleiste geführt, also anschließen kann ich es!

Viele Grüße und Danke für die Hilfe

Johannes

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist das Problem?

Eine Suchmaschine bringt Hilfe:

http://www.underbit.com/products/mad/

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die MAD Lib benutzt auch Floating Points!

Ist also ohne umschreiben nicht verwendbar!

Viele Grüße

Johannes

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Johannes:

Kannst Du Deine Aussage mit dieser hier

  Because MAD uses integer computation rather
  than floating point, it is well suited for
  architectures without a floating point unit.
  All calculations are performed with a 32-bit
  fixed-point integer representation.

in irgendeinen Zusammenhang bringen?

(Quelle: http://www.underbit.com/products/mad/)

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LOL!

Lesen BILDet... ;)

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da sagt deren hp was anderes ;)

<<<<<<<<<<<snip>>>>>>>>>>
MAD has the following special features:

24-bit PCM output
100% fixed-point (integer) computation
completely new implementation based on the ISO/IEC standards
available under the terms of the GNU General Public License (GPL)
<<<<<<<<<<<snip>>>>>>>>>>

73

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Johannes:

Der MAD-Player kann wirklich reine INT werte.
Allerdings ist dieser nicht gerade gut kommentiert und auch nicht
sonderlich gut kommentiert.
Aber mit etwas Arbeit bekommt man es hin.

@Rest:

Ihr habt ja recht, aber die eigentliche Frage wurde bis jetzt nicht
beantwortet. Mich würde dies nämlich auch Interessieren, da ich ein
bald ein Projekt mit einem ARM anfange und da ich Daten messen soll
evtl auch die SPI Schnittstelle benötige!

Viele Grüße

Georg

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kann zwar nicht mit einem beispielcode dienen, glaube aber trotzdem
helfen zu können ;)


spi wird am arm wahrscheinlich wie beim avr über lustige register
anzusprechen sein... also brauchst du eigentlich ja nur auf diese
register zugreifen... also gibts 2 möglichkeiten:
=> entweder ein userland app, das auf die speicherstellen zugreift(wie
z.b paralellport zugriffe die nicht über fread udgl laufen)
=> oder einen netten kernel-hack, der dir funktionen für spi in den
userspace gibt

wie das mit driver im kernel ausschaut weis ich nicht..

direkte speicherzugriffe aus dem userland benötigen root
privilegien...

mir kommt aber vor, dass ich sowas schon irgendwo gesehen habe.. schau
dir doch mal einen uclinux port für einen pda an... die müssten die
sd-karten doch auch am spi hängen haben...

hoffe geholfen zu haben.... ich werd mir jetzt noch einen kaffee holn
und mich dann in den höhrsaal begeben ;)

73

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Infos.

Eine Frage noch:
Wenn ich einen Treiber habe.
Geht dann nicht sowas wie ein Chipselect?

Viele Grüße

Georg

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vieles hängt davon ab, was für ein ARM es denn nun genau ist und was für
eine Linux-Variante denn auf diesem ARM läuft.

Hat der ARM beispielsweise keine MMU (was für ARM7-Varianten zutrifft),
dann treffen die Aussagen von Hans über Userland und Privilegien nicht
zu, da ohne MMU derartiges gar nicht überwacht werden kann. Obendrein
läuft dann wohl nur noch ucLinux oder ähnliches; ein "richtiges"
Linux braucht nämlich 'ne MMU.

@Georg:
"Wenn ich einen Treiber habe. Geht dann nicht sowas wie ein
Chipselect?"

Was meinst Du damit?

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich werde wohl was mit eineme ARM9 machen (Atmel AT91RM9200)!

Es gibt wohl schon eine Studienarbeit die auf einem Demo-Board
embedded Linux aufgespielt hat. In diesem Linux soll ein Treiber für
die SPI Schnittstelle implementiert sein, soweit ich das der Doku
entnehme.

Für mich wäre jetzt interessant, wie ich von C auf den Treiber
zugreifen kann um Daten über die SSC Schnittstelle zu senden bzw. zu
empfangen.

Viele Grüße und Danke für die Hilfe

Georg

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus:
"Hat der ARM beispielsweise keine MMU (was für ARM7-Varianten
zutrifft),"

Leider falsch, nicht alle ARM7-Derivate sind ohne MMU, wie kommst Du
denn darauf?

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist mir neu; welche ARM7-Implementierungen haben denn eine?

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STR720 von ST und kostet etwa 5,50 EUR.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ein ARM720, kein ARM7.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"STR720 von ST und kostet etwa 5,50 EUR"

Wo?

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Das ist ein ARM720, kein ARM7."

Das sieht die ARM-Webseite aber anders, ist alles die ARM7-Familie...

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok schön, aber das beantwortet leider die Frage noch nicht!

Viele Grüße

Georg

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.