Cortex M0/M4 SPI nach CMSIS ?

OP #3225044
Lesenswert?
• ▲
▼
Hallo,

ich versuche verzweifelt, die SPI-Schnittstelle meines LPC4353 (LPC435x) 
zum Laufen zu bringen - wohlgemerkt: die "echte SPI-Schnittstelle", 
nicht per SSP!
Als Basis nutze ich z.Zt. die CMSISv2p10_LPC43xx von NXP.
dort existiert aber leider keine Definition bzw. keine Funktionen zum 
SPI ansich (also keine lpc43xx_spi.c oder lpc43xx_spi.h  :-( )

Also habe ich eine ähnliche Lib vom lpc18xx genommen und teilweise auf 
den 43xx angepasst (Anhang lpc43xx_spi.c / lpc43xx_spi.h). Anpassen 
musste ich ebenfalls die CGU-Implementierung, da dort der SPI-teil ganz 
und gar gefehlt hat, obwohl die passenden Adressen/Register im 
Datenblatt beschrieben sind - habs im Code mit dem Hinweis auf 
UM10503.pdf vermerkt...
(Anhang: lpc43xx_cgu.c / lpc43xx_cgu.h)

Vielleicht könnt ihr etwas damit anfangen, wenn meine Frage noch geklärt 
sein wird...

Mein Problem ist nun die Taktversorgung in der Initialisierung, da ich 
einfach nicht aus dem Datenblatt (UM10503.pdf) schlau werde und auch 
sonst wenig zur "echten" SPI gefunden habe.

(aus lpc43xx_spi.c - SPI_Init)
1
  CGU_EntityConnect(CGU_CLKSRC_XTAL_OSC, CGU_BASE_SPI);
2
  CGU_ConfigPWR(CGU_PERIPHERAL_SPI, ENABLE);

reicht das schon? oder müsste ich noch etwas anderes machen/die 
Reihenfolge tauschen?
Angehängte Dateien:
Persönliche Seite #3225197
Lesenswert?
• ▲
▼
Ich nehme CMSIS nur für die Core-Funktionalität, hauptsächlich NVIC.

Für den Rest gehe ich direkt auf die Register, die sind wenigstens 
einigermaßen gescheit dokumentiert.

CMSIS wird wohl auch von NXP nicht mehr weitergepflegt, die neue 
Baustelle heißt LPCOpen:

http://www.lpcware.com/content/forum/lpcware-cmsis-driver-development-now-dead-it-seems-all-development-work-lpcopen
Gast #3225201
Lesenswert?
• ▲
▼
Jürgen S. schrieb:
> CMSIS wird wohl auch von NXP nicht mehr weitergepflegt, die neue
> Baustelle heißt LPCOpen:
>

Ich sehe das genauso. Und wenn ich die Entwicklung verfolge, freue ich 
mich nichts verkehrt gemacht zu haben. Die Libs ändern sich ständig, die 
Register bleiben. Und es bleibt noch Platz in der Rübe für sinnvollere 
Dinge.
OP #3225236
Lesenswert?
• ▲
▼
hmm.. okay.. löst nicht wirklich mein Problem..

habt ihr denn dann vielleicht ein Beispiel für die Initialisierung des 
SPI am LPC43xx ohne Lib parat ? Im LPC_Open habe ich zwar auch Beispiele 
gefunden, allerdings NUR über die SSP - etwas was ich nicht gern möchte.

danke schonmal
Gast #3225363
Lesenswert?
• ▲
▼
Hallo,
also die CMSIS Geschichte kann ja mehr Probleme schaffen, als einem lieb 
ist.
Wenn man nur einmal die Verschachtelungen der Definitionen, die sich 
über mehrere Dateien verteilen ansieht, wird es sehr schwierig ein 
solches Projekt zu pflegen. Und dann will man ja gerade eine 
Schnittstelle auch so nutzen, wie sie der Hersteller mit ihren 
Eigenarten erschaffen hat. Also sage ich auch, ganz klar auf 
Registerebene gehen und gut dokumentieren.

PS. das Rad muss halt ständig neu erfunden werden.
Gruß Sascha

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.